<?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>149348</bug_id>
          
          <creation_ts>2015-09-18 11:52:23 -0700</creation_ts>
          <short_desc>Drop support for legacy EntityReference DOM Node type</short_desc>
          <delta_ts>2015-09-28 11:44:37 -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>DOM</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=149239</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1127167</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 11:52:23 -0700</bug_when>
    <thetext>Drop support for legacy EntityReference DOM Node type.

EntityReference has been dropped from the DOM specification:
- https://dom.spec.whatwg.org/#dom-core-changes

EntityReference is not supported in Firefox:
- https://developer.mozilla.org/en-US/docs/Web/API/EntityReference
- https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.expandEntityReferences
- https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.expandEntityReferences

Chrome dropped support for EntityReference a while back (May 2013):
- EntityReference: https://code.google.com/p/chromium/issues/detail?id=226628
- NodeFilter / TreeWalker.expandEntityReferences: https://groups.google.com/a/chromium.org/d/msg/blink-dev/-ZO3eja4maA/86T13XJwQpUJ / https://src.chromium.org/viewvc/blink?view=rev&amp;revision=185771</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127169</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 11:56:27 -0700</bug_when>
    <thetext>This is not supported in Internet Explorer either:
https://msdn.microsoft.com/library/ff974819(v=vs.85).aspx (Remarks section)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127180</commentid>
    <comment_count>2</comment_count>
      <attachid>261509</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 12:26:11 -0700</bug_when>
    <thetext>Created attachment 261509
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127181</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-18 12:28:36 -0700</bug_when>
    <thetext>Attachment 261509 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127195</commentid>
    <comment_count>4</comment_count>
      <attachid>261509</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-09-18 13:06:32 -0700</bug_when>
    <thetext>Comment on attachment 261509
WIP Patch

Attachment 261509 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/183983

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127196</commentid>
    <comment_count>5</comment_count>
      <attachid>261511</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-09-18 13:06:37 -0700</bug_when>
    <thetext>Created attachment 261511
Archive of layout-test-results from ews102 for mac-mavericks

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews102  Port: mac-mavericks  Platform: Mac OS X 10.9.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127197</commentid>
    <comment_count>6</comment_count>
      <attachid>261512</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 13:07:12 -0700</bug_when>
    <thetext>Created attachment 261512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127200</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-18 13:10:46 -0700</bug_when>
    <thetext>Attachment 261512 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/ChangeLog:21:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WebCore/ChangeLog:22:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 3 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127201</commentid>
    <comment_count>8</comment_count>
      <attachid>261515</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 13:11:26 -0700</bug_when>
    <thetext>Created attachment 261515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127203</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-18 13:15:25 -0700</bug_when>
    <thetext>Attachment 261515 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127211</commentid>
    <comment_count>10</comment_count>
      <attachid>261519</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 13:37:57 -0700</bug_when>
    <thetext>Created attachment 261519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127216</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-18 13:42:43 -0700</bug_when>
    <thetext>Attachment 261519 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127256</commentid>
    <comment_count>12</comment_count>
      <attachid>261519</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-09-18 15:35:33 -0700</bug_when>
    <thetext>Comment on attachment 261519
Patch

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

&gt; Source/WebCore/dom/Document.idl:99
&gt; -    [ObjCLegacyUnnamedParameters, RaisesException, NewObject] NodeIterator createNodeIterator(Node root,
&gt; +#if defined(LANGUAGE_OBJECTIVE_C) &amp;&amp; LANGUAGE_OBJECTIVE_C
&gt; +    [ObjCLegacyUnnamedParameters, RaisesException] NodeIterator createNodeIterator(Node root,

Why are you removing NewObject?

&gt; Source/WebCore/dom/Document.idl:103
&gt; -    [ObjCLegacyUnnamedParameters, RaisesException, NewObject] TreeWalker createTreeWalker(Node root,
&gt; +    [ObjCLegacyUnnamedParameters, RaisesException] TreeWalker createTreeWalker(Node root,

Ditto.

&gt; Source/WebCore/dom/EntityReference.h:29
&gt; +class EntityReference : public ContainerNode {

This is no longer final??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127261</commentid>
    <comment_count>13</comment_count>
      <attachid>261532</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 15:50:03 -0700</bug_when>
    <thetext>Created attachment 261532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127265</commentid>
    <comment_count>14</comment_count>
      <attachid>261534</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 15:53:56 -0700</bug_when>
    <thetext>Created attachment 261534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127269</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-18 15:59:58 -0700</bug_when>
    <thetext>Attachment 261534 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127270</commentid>
    <comment_count>16</comment_count>
      <attachid>261519</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 16:00:58 -0700</bug_when>
    <thetext>Comment on attachment 261519
Patch

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

&gt;&gt; Source/WebCore/dom/Document.idl:99
&gt;&gt; +    [ObjCLegacyUnnamedParameters, RaisesException] NodeIterator createNodeIterator(Node root,
&gt; 
&gt; Why are you removing NewObject?

[NewObject] has no effect on ObjC bindings, only JS ones.

&gt;&gt; Source/WebCore/dom/EntityReference.h:29
&gt;&gt; +class EntityReference : public ContainerNode {
&gt; 
&gt; This is no longer final??

It can no longer be final because it is abstract.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127272</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 16:03:24 -0700</bug_when>
    <thetext>Still working on getting GTK and Windows building...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127321</commentid>
    <comment_count>18</comment_count>
      <attachid>261553</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-18 18:24:02 -0700</bug_when>
    <thetext>Created attachment 261553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127327</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-18 18:28:48 -0700</bug_when>
    <thetext>Attachment 261553 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127437</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-19 16:57:56 -0700</bug_when>
    <thetext>Will try again to fix the GTK build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127438</commentid>
    <comment_count>21</comment_count>
      <attachid>261592</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-19 17:01:13 -0700</bug_when>
    <thetext>Created attachment 261592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127439</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-19 17:04:41 -0700</bug_when>
    <thetext>Attachment 261592 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127585</commentid>
    <comment_count>23</comment_count>
      <attachid>261592</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-09-21 00:26:10 -0700</bug_when>
    <thetext>Comment on attachment 261592
Patch

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

&gt; Source/WebCore/bindings/gobject/webkitdom.symbols:-71
&gt; -WebKitDOMEntityReference* webkit_dom_document_create_entity_reference(WebKitDOMDocument*, const gchar*, GError**)

This is not correct, it breaks the API. I&apos;m quite busy today, but I&apos;ll try to find some time to provide a proper fix. If you are in a hurry, feel free to land any patch that doesn&apos;t break the build and I&apos;ll fix the API in a follow up when I find the time. Thanks again for trying to keep GTK port working :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127647</commentid>
    <comment_count>24</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-21 09:07:15 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Comment on attachment 261592 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=261592&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/gobject/webkitdom.symbols:-71
&gt; &gt; -WebKitDOMEntityReference* webkit_dom_document_create_entity_reference(WebKitDOMDocument*, const gchar*, GError**)
&gt; 
&gt; This is not correct, it breaks the API. I&apos;m quite busy today, but I&apos;ll try
&gt; to find some time to provide a proper fix. If you are in a hurry, feel free
&gt; to land any patch that doesn&apos;t break the build and I&apos;ll fix the API in a
&gt; follow up when I find the time. Thanks again for trying to keep GTK port
&gt; working :-)

I see. I wrongly assumed it was OK to alter the generated GObject API as long as it made sense. I will upload another iteration that attempts to keep the corresponding GObject API, like I did not ObjC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127649</commentid>
    <comment_count>25</comment_count>
      <attachid>261659</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-21 09:13:55 -0700</bug_when>
    <thetext>Created attachment 261659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127651</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-21 09:17:41 -0700</bug_when>
    <thetext>Attachment 261659 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127652</commentid>
    <comment_count>27</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-09-21 09:20:09 -0700</bug_when>
    <thetext>Thanks a bunch for helping. The API is divided into stable and unstable portions. If it&apos;s stable API, it can be deprecated but we have to keep it functional. Unstable API like WebKitDOMHTMLMediaElement requires defining WEBKIT_DOM_USE_UNSTABLE_API to get the declarations, is completely undocumented, and can be broken willy-nilly.

The stable API is documented here: http://webkitgtk.org/reference/webkitdomgtk/stable/index-all.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127656</commentid>
    <comment_count>28</comment_count>
      <attachid>261661</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-21 09:37:49 -0700</bug_when>
    <thetext>Created attachment 261661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127657</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-21 09:41:31 -0700</bug_when>
    <thetext>Attachment 261661 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127660</commentid>
    <comment_count>30</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-09-21 09:49:34 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; Thanks a bunch for helping. The API is divided into stable and unstable
&gt; portions. If it&apos;s stable API, it can be deprecated but we have to keep it
&gt; functional.

Well, not necessarily functional, if the implementation is removed from WebCore we can keep the function in the API, mark it a deprecated, leave it as a no-op and maybe show a warning to let the user know the function is a no-op because it has been removed from the DOM spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127661</commentid>
    <comment_count>31</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-09-21 09:51:05 -0700</bug_when>
    <thetext>Chris, I won&apos;t have time until Thursday, so don&apos;t worry about GTK+ port as long as it builds, I&apos;ll fix any API break on Thursday. Thanks again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127662</commentid>
    <comment_count>32</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-21 09:51:57 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; Chris, I won&apos;t have time until Thursday, so don&apos;t worry about GTK+ port as
&gt; long as it builds, I&apos;ll fix any API break on Thursday. Thanks again.

Well, as you can see it doesn&apos;t anymore and I have no idea why :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127667</commentid>
    <comment_count>33</comment_count>
      <attachid>261663</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-21 10:45:15 -0700</bug_when>
    <thetext>Created attachment 261663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127668</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-21 10:49:21 -0700</bug_when>
    <thetext>Attachment 261663 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127685</commentid>
    <comment_count>35</comment_count>
      <attachid>261668</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-21 11:31:33 -0700</bug_when>
    <thetext>Created attachment 261668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127687</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-21 11:36:02 -0700</bug_when>
    <thetext>Attachment 261668 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127765</commentid>
    <comment_count>37</comment_count>
      <attachid>261688</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-21 15:00:05 -0700</bug_when>
    <thetext>Created attachment 261688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127768</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-21 15:04:14 -0700</bug_when>
    <thetext>Attachment 261688 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127897</commentid>
    <comment_count>39</comment_count>
      <attachid>261716</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-09-21 19:29:39 -0700</bug_when>
    <thetext>Created attachment 261716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127899</commentid>
    <comment_count>40</comment_count>
      <attachid>261716</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-21 19:32:58 -0700</bug_when>
    <thetext>Comment on attachment 261716
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm:293
&gt; +    # FIXME: This is skipped because I don&apos;t know how to fix the build any better way.

Thanks for the help Michael! It was hard to get this building without being able to build the GTK port locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127900</commentid>
    <comment_count>41</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-21 19:33:03 -0700</bug_when>
    <thetext>Attachment 261716 did not pass style-queue:


ERROR: Source/WebCore/dom/Node.h:136:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127903</commentid>
    <comment_count>42</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-09-21 19:43:37 -0700</bug_when>
    <thetext>I was watching the GTK EWS take upwards of an hour to process your patches, and realized that was just not going to work. :(

Anyway, I don&apos;t know how to fix this properly either, but after a few tries, I added this in SkipFunction in CodeGeneratorGObject.pm:

    # FIXME: This is skipped because I don&apos;t know how to fix the build any better way.
    # https://bugs.webkit.org/show_bug.cgi?id=149348
    if ($functionName eq &quot;webkit_dom_document_create_entity_reference&quot;) {
        return 1;
    }

And now the build works for me. I will have to bully Carlos into doing some DOM bindings training, because right now our bus factor is 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128018</commentid>
    <comment_count>43</comment_count>
      <attachid>261716</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-22 10:17:35 -0700</bug_when>
    <thetext>Comment on attachment 261716
Patch

Clearing flags on attachment: 261716

Committed r190120: &lt;http://trac.webkit.org/changeset/190120&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128019</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-22 10:17:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128461</commentid>
    <comment_count>45</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-09-24 03:19:18 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; I was watching the GTK EWS take upwards of an hour to process your patches,
&gt; and realized that was just not going to work. :(
&gt; 
&gt; Anyway, I don&apos;t know how to fix this properly either, but after a few tries,
&gt; I added this in SkipFunction in CodeGeneratorGObject.pm:
&gt; 
&gt;     # FIXME: This is skipped because I don&apos;t know how to fix the build any
&gt; better way.
&gt;     # https://bugs.webkit.org/show_bug.cgi?id=149348
&gt;     if ($functionName eq &quot;webkit_dom_document_create_entity_reference&quot;) {
&gt;         return 1;
&gt;     }
&gt; 
&gt; And now the build works for me. I will have to bully Carlos into doing some
&gt; DOM bindings training, because right now our bus factor is 1.

Proper fix landed in r190199</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128499</commentid>
    <comment_count>46</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-24 09:09:06 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; (In reply to comment #42)
&gt; &gt; I was watching the GTK EWS take upwards of an hour to process your patches,
&gt; &gt; and realized that was just not going to work. :(
&gt; &gt; 
&gt; &gt; Anyway, I don&apos;t know how to fix this properly either, but after a few tries,
&gt; &gt; I added this in SkipFunction in CodeGeneratorGObject.pm:
&gt; &gt; 
&gt; &gt;     # FIXME: This is skipped because I don&apos;t know how to fix the build any
&gt; &gt; better way.
&gt; &gt;     # https://bugs.webkit.org/show_bug.cgi?id=149348
&gt; &gt;     if ($functionName eq &quot;webkit_dom_document_create_entity_reference&quot;) {
&gt; &gt;         return 1;
&gt; &gt;     }
&gt; &gt; 
&gt; &gt; And now the build works for me. I will have to bully Carlos into doing some
&gt; &gt; DOM bindings training, because right now our bus factor is 1.
&gt; 
&gt; Proper fix landed in r190199

Thanks a lot Carlos!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129048</commentid>
    <comment_count>47</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-09-28 11:44:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/22882599&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261509</attachid>
            <date>2015-09-18 12:26:11 -0700</date>
            <delta_ts>2015-09-18 13:07:08 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>drop_EntityReference_wip.patch</filename>
            <type>text/plain</type>
            <size>123359</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25s
eS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJl
ZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMGFjM2Q5Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UZXN0IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVu
Y2Ugbm9kZXMgYXJlIGFsd2F5cyB0cmVhdGVkIHJlYWRvbmx5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1QQVNTIHhtbERvYzIuYWRvcHROb2RlKGVudGl0eVJlZmVyZW5jZSkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uub3duZXJEb2N1bWVudCBpcyB4bWxEb2MKLVBB
U1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSA9ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50
aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVm
aXggPSAnZm9vJyB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5hbWVzcGFjZUVycm9yOiBET00gRXhj
ZXB0aW9uIDE0LgotUEFTUyBlbnRpdHlSZWZlcmVuY2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50
aXR5UmVmZXJlbmNlLnRleHRDb250ZW50ID0gJ2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBO
b01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotRkFJTCBlbnRpdHlS
ZWZlcmVuY2UudGV4dENvbnRlbnQgc2hvdWxkIGJlID4uIFdhcyAuCi1GQUlMIGNoaWxkcmVuQmVm
b3JlRmFpbGVkQXBwZW5kIHNob3VsZCBiZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNl
LmFwcGVuZENoaWxkKHRleHQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmNoaWxk
Tm9kZXMubGVuZ3RoIGlzIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kCi1GQUlMIGNoaWxkcmVu
QmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBiZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJl
bmNlLmluc2VydEJlZm9yZSh0ZXh0LCBlbnRpdHlSZWZlcmVuY2UuZmlyc3RDaGlsZCkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlv
biA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGggaXMgY2hpbGRyZW5C
ZWZvcmVGYWlsZWRBcHBlbmQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZl
cmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50
aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2ZiMTY0MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9F
bnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNl
L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5
UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0YmVlZDkzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vu
dGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9IllP
VVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVh
ZG9ubHktZXhjZXB0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5j
ZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYWYyNDY1Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9F
bnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdCB0byBtYWtlIHN1cmUg
RW50aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBhbHdheXMgdHJlYXRlZCByZWFkb25seSIpCi0KLXZh
ciB4bWxEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7Ci12YXIgeG1sRG9jMiA9IGRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZhciBlbnRpdHlSZWZlcmVuY2UgPSB4bWxEb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotCi1zaG91bGRUaHJvdygieG1sRG9jMi5hZG9w
dE5vZGUoZW50aXR5UmVmZXJlbmNlKSIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5vd25l
ckRvY3VtZW50IiwgInhtbERvYyIpCi0KLS8vIG5vZGVWYWx1ZSBpcyBkZWZpbmVkIHRvIGJlIG51
bGwgZm9yIEVudGl0eSBSZWZlcmVuY2Ugbm9kZXMsIGFuZCB0aHVzIHNob3VsZCBzaWxlbnRseSBm
YWlsIHRvIG1vZGlmeQotLy8gU3BlYyBpcyBhbWJpZ2lvdXMgYXMgdG8gaWYgd2Ugc2hvdWxkIHRo
cm93IGhlcmUgb3Igbm90LiAgSSd2ZSByZXF1ZXN0ZWQgY2xhcmlmaWNhdGlvbjoKLS8vIGh0dHA6
Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAwOEphbk1hci8wMDA5Lmh0
bWwKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlID0gJ2ZvbyciKTsKLXNo
b3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQotc2hvdWxkVGhy
b3coImVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJl
ZmVyZW5jZS5wcmVmaXgiLCAibnVsbCIpOwotCi1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNl
LnRleHRDb250ZW50ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UudGV4dENv
bnRlbnQiLCAiJz4nIik7Ci0KLXZhciBjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCA9IGVudGl0
eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3VsZEJlKCJjaGlsZHJlbkJlZm9yZUZh
aWxlZEFwcGVuZCIsICIxIik7Ci12YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJG
QUlMIik7Ci1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIik7
Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIiwgImNoaWxkcmVu
QmVmb3JlRmFpbGVkQXBwZW5kIik7Ci0KLWNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kID0gZW50
aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hvdWxkQmUoImNoaWxkcmVuQmVmb3Jl
RmFpbGVkQXBwZW5kIiwgIjEiKTsKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2UuaW5zZXJ0
QmVmb3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENoaWxkKSIpOwotc2hvdWxkQmUoImVu
dGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCIsICJjaGlsZHJlbkJlZm9yZUZhaWxlZEFw
cGVuZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFsLXZh
bHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFs
dWVzLWV4cGVjdGVkLnR4dAppbmRleCAyNmYwZWMyLi4xYzk4MWZiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dApAQCAt
MTEzLDEyICsxMTMsNiBAQCBQQVNTIGVsZW1lbnQubmFtZXNwYWNlVVJJIGlzICdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJwogUEFTUyBlbGVtZW50LnByZWZpeCBpcyAnaHRtbCcKIFBBU1Mg
ZWxlbWVudC5ub2RlVmFsdWUgaXMgbnVsbAogUEFTUyBlbGVtZW50LmF0dHJpYnV0ZXMudG9TdHJp
bmcoKSBpcyAnW29iamVjdCBOYW1lZE5vZGVNYXBdJwotUEFTUyBkb2N1bWVudC5jcmVhdGVFbnRp
dHlSZWZlcmVuY2UoJ2d0JykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJv
cjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZU5hbWUgaXMgJ2d0
JwotUEFTUyBlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIGlzIG51bGwKLVBBU1MgZW50aXR5UmVm
ZXJlbmNlLm5hbWVzcGFjZVVSSSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXgg
aXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIGlzIG51bGwKIFBBU1MgcHJv
Y2Vzc2luZ0luc3RydWN0aW9uLm5vZGVOYW1lIGlzICd4bWwtc3R5bGVzaGVldCcKIFBBU1MgcHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmxvY2FsTmFtZSBpcyBudWxsCiBQQVNTIHByb2Nlc3NpbmdJbnN0
cnVjdGlvbi5uYW1lc3BhY2VVUkkgaXMgbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1ZXMuanMgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwppbmRleCA3MzFhODA2
Li45YjEyYTk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10
ZXN0cy9pbml0aWFsLXZhbHVlcy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3Nj
cmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwpAQCAtMTU2LDE2ICsxNTYsNiBAQCBzaG91bGRC
ZSgiZWxlbWVudC5wcmVmaXgiLCAiJ2h0bWwnIik7CiBzaG91bGRCZSgiZWxlbWVudC5ub2RlVmFs
dWUiLCAibnVsbCIpOwogc2hvdWxkQmUoImVsZW1lbnQuYXR0cmlidXRlcy50b1N0cmluZygpIiwg
Iidbb2JqZWN0IE5hbWVkTm9kZU1hcF0nIik7CiAKLS8vIE5vdCBwb3NzaWJsZSB0byBjcmVhdGUg
RW50aXR5IG5vZGVzIHZpYSB0aGUgRE9NLCBXZWJLaXQgZG9lc24ndCBjcmVhdGUgdGhlbSBmcm9t
IHBhcnNpbmcKLQotc2hvdWxkVGhyb3coImRvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgn
Z3QnKSIpOwotdmFyIGVudGl0eVJlZmVyZW5jZSA9IHhtbERvYy5jcmVhdGVFbnRpdHlSZWZlcmVu
Y2UoImd0Iik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5vZGVOYW1lIiwgIidndCciKTsK
LXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIiwgIm51bGwiKTsKLXNob3VsZEJl
KCJlbnRpdHlSZWZlcmVuY2UubmFtZXNwYWNlVVJJIiwgIm51bGwiKTsKLXNob3VsZEJlKCJlbnRp
dHlSZWZlcmVuY2UucHJlZml4IiwgIm51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uu
bm9kZVZhbHVlIiwgIm51bGwiKTsKLQogLy8gTm90IHBvc3NpYmxlIHRvIGNyZWF0ZSBOb3RhdGlv
biBub2RlcyB2aWEgdGhlIERPTSwgV2ViS2l0IGRvZXNuJ3QgY3JlYXRlIHRoZW0gZnJvbSBwYXJz
aW5nCiAKIHZhciBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSBkb2N1bWVudC5jcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oJ3htbC1zdHlsZXNoZWV0JywgJ3R5cGU9XCJ0ZXh0L3hzbFwiIGhyZWY9
XCJtaXNzaW5nLnhzbFwiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDc3MTNmYzkuLjc0
N2NkN2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9n
ZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0zMyw4ICszMyw2IEBAIFBBU1M6IGNh
bkdldCgnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5T
ZXQoJ0RvY3VtZW50VHlwZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0
KCdFbGVtZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0VsZW1l
bnQnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KLVBBU1M6IGNhbkdldCgnRW50aXR5UmVmZXJl
bmNlJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCi1QQVNTOiBjYW5TZXQoJ0VudGl0eVJlZmVy
ZW5jZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFdmFsRXJyb3In
KSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhblNldCgnRXZhbEVycm9yJykgc2hv
dWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ0V2ZW50Jykgc2hvdWxkIGJlICd0
cnVlJyBhbmQgaXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0
LXNldC1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNl
dC1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggZmZmNWM0YS4uNDQzMTZhYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbApAQCAtODQs
NyArODQsNiBAQCB2YXIgd2luZG93UmVhZFdyaXRlUHJvcGVydGllcyA9IFsKICAgICAiRG9jdW1l
bnRGcmFnbWVudCIsIAogICAgICJEb2N1bWVudFR5cGUiLCAKICAgICAiRWxlbWVudCIsIAotICAg
ICJFbnRpdHlSZWZlcmVuY2UiLCAKICAgICAiRXZhbEVycm9yIiwgCiAgICAgIkV2ZW50IiwgCiAg
ICAgIkhUTUxBbmNob3JFbGVtZW50IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy93aW5kb3ctcHJvcGVydGllcy5qcwppbmRleCBmOWM3MDky
Li45ZDQzMGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3Vy
Y2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9yZXNvdXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMKQEAgLTU2LDcgKzU2LDYgQEAgdmFyIHBy
b3BlcnR5SW5mbyA9IFsKICAgICBbIkRvY3VtZW50RnJhZ21lbnQiLCAib2JqZWN0Il0sCiAgICAg
WyJEb2N1bWVudFR5cGUiLCAib2JqZWN0Il0sCiAgICAgWyJFbGVtZW50IiwgIm9iamVjdCJdLAot
ICAgIFsiRW50aXR5UmVmZXJlbmNlIiwgIm9iamVjdCJdLAogICAgIFsiRXZlbnQiLCAib2JqZWN0
Il0sCiAgICAgWyJFdmVudEV4Y2VwdGlvbiIsICJvYmplY3QiXSwKICAgICBbIkhUTUxBbmNob3JF
bGVtZW50IiwgIm9iamVjdCJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRl
eCA2N2QzMDJjLi4xMTIyMTRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApA
QCAtMTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBE
b2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUn
XSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2lu
WydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFT
UyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVl
Ci1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNl
Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tv
YmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZl
bnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2
ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydF
dmVudEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBp
cyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKaW5kZXggMzAyYTA5Yi4u
YWJmNjdhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dApAQCAtOTYsOCAr
OTYsNiBAQCBQQVNTOiBDb21tZW50IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogQ0RBVEFT
ZWN0aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3Nm
dWxseSBzaGFkb3dlZAogUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1QQVNT
OiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1QQVNTOiBFbnRpdHlSZWZlcmVuY2Ugc3Vj
Y2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gc3VjY2Vzc2Z1
bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRG9jdW1lbnQgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQ
QVNTOiBIVE1MRWxlbWVudCBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy5odG1s
CmluZGV4IDliNDZlYWMuLmNiNzRmYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcuaHRtbApAQCAtMjE1LDEw
ICsyMTUsNiBAQAogICAgICAgICBsb2coRG9jdW1lbnRUeXBlID09IDEgPyAiUEFTUzogRG9jdW1l
bnRUeXBlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRG9jdW1lbnRUeXBlIHdhcyBu
b3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIE5vdGF0aW9uID0gMTsKICAgICAgICAgbG9nKE5v
dGF0aW9uID09IDEgPyAiUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJG
QUlMOiBOb3RhdGlvbiB3YXMgbm90IHNoYWRvd2VkIik7Ci0gICAgICAgIHZhciBFbnRpdHkgPSAx
OwotICAgICAgICBsb2coRW50aXR5ID09IDEgPyAiUEFTUzogRW50aXR5IHN1Y2Nlc3NmdWxseSBz
aGFkb3dlZCIgOiAiRkFJTDogRW50aXR5IHdhcyBub3Qgc2hhZG93ZWQiKTsKLSAgICAgICAgdmFy
IEVudGl0eVJlZmVyZW5jZSA9IDE7Ci0gICAgICAgIGxvZyhFbnRpdHlSZWZlcmVuY2UgPT0gMSA/
ICJQQVNTOiBFbnRpdHlSZWZlcmVuY2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBF
bnRpdHlSZWZlcmVuY2Ugd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAgICB2YXIgUHJvY2Vzc2lu
Z0luc3RydWN0aW9uID0gMTsKICAgICAgICAgbG9nKFByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9PSAx
ID8gIlBBU1M6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDog
IkZBSUw6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiB3YXMgbm90IHNoYWRvd2VkIik7CiAgICAgICAg
IHZhciBIVE1MRG9jdW1lbnQgPSAxOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
ZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20t
Y29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRleCA0YTE4YWRmLi4zN2MzNTQxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dApA
QCAtOCw3ICs4LDYgQEAgUEFTUyBUcnlBbGxvY2F0ZSgnQ2hhcmFjdGVyRGF0YScpIGlzICdleGNl
cHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdDREFUQVNlY3Rpb24nKSBpcyAnZXhjZXB0aW9uJwog
UEFTUyBUcnlBbGxvY2F0ZSgnRG9jdW1lbnRUeXBlJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5
QWxsb2NhdGUoJ0VsZW1lbnQnKSBpcyAnZXhjZXB0aW9uJwotUEFTUyBUcnlBbGxvY2F0ZSgnRW50
aXR5UmVmZXJlbmNlJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0V2ZW50VGFy
Z2V0JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0hUTUxEb2N1bWVudCcpIGlz
ICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdOb2RlJykgaXMgJ2V4Y2VwdGlvbicKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbAppbmRleCBmMjQ5OWRjLi43
OTUzYjYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3Jz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCkBA
IC0xOCw3ICsxOCw2IEBAIHZhciBvYmplY3RzX2V4Y2VwdGlvbiA9IFsKICAgICAnQ0RBVEFTZWN0
aW9uJywKICAgICAnRG9jdW1lbnRUeXBlJywKICAgICAnRWxlbWVudCcsCi0gICAgJ0VudGl0eVJl
ZmVyZW5jZScsCiAgICAgJ0V2ZW50VGFyZ2V0JywKICAgICAnSFRNTERvY3VtZW50JywKICAgICAn
Tm9kZScsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVj
dGVkLnR4dAppbmRleCA3ODhjYWJlLi42OTJiYTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQKQEAgLTQ3LDkgKzQ3LDYgQEAgUEFT
UyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKS5jb25zdHJ1
Y3RvcikgaXMgJ0NEQVRBU2VjdGkKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3Jl
YXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpKSBpcyAnRWxlbWVudCcKIFBBU1MganNXcmFwcGVy
Q2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLl9fcHJvdG9f
XykgaXMgJ0VsZW1lbnRQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKS5jb25zdHJ1Y3RvcikgaXMgJ0VsZW1lbnRD
b25zdHJ1Y3RvcicKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCkpIGlzICdFbnRpdHlSZWZlcmVuY2UnCi1QQVNTIGpzV3JhcHBlckNsYXNzKHht
bERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpLl9fcHJvdG9fXykgaXMgJ0VudGl0eVJl
ZmVyZW5jZVByb3RvdHlwZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCkuY29uc3RydWN0b3IpIGlzICdFbnRpdHlSZWZlcmVuY2VDb25zdHJ1
Y3RvcicKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCkpIGlzICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nCiBQQVNTIGpzV3JhcHBlckNs
YXNzKHhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLl9fcHJvdG9fXykg
aXMgJ1Byb2Nlc3NpbmdJbnN0cnVjdGlvblByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3Mo
eG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuY29uc3RydWN0b3IpIGlz
ICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Db25zdHJ1Y3RvcicKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
d3JhcHBlci1jbGFzc2VzLmh0bWwKaW5kZXggOGJlOGZlMy4uZmY4MWQ4ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKQEAgLTkwLDcgKzkwLDYgQEAgZnVuY3Rp
b24gcnVuVGVzdCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9jdW1lbnQiKTsKICAgICB0
ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJDREFUQVNlY3Rpb24iKTsK
ICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykiLCAi
RWxlbWVudCIpOwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgp
IiwgIkVudGl0eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpOwogCiAgICAgZGVi
dWcoJycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKaW5kZXggNjNlMjQy
YS4uZWE5NjIyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CkBAIC0y
MzUsNyArMjM1LDYgQEAgUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRG9jdW1lbnRGcmFnbWVu
dCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93
LkRvY3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgn
dGFyZ2V0V2luZG93LkVsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBj
YW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHknKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCi1Q
QVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQgYmUgJ2Zh
bHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FdmFsRXJyb3InKSBzaG91
bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FdmVudCcp
IHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkhU
TUxBbmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1n
ZXQuaHRtbAppbmRleCAzODAwYTBiLi5jY2U1ZjdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbApA
QCAtMjAsNyArMjAsNiBAQAogICAgICAgICAgICAgIkRvY3VtZW50VHlwZSIsIAogICAgICAgICAg
ICAgIkVsZW1lbnQiLCAKICAgICAgICAgICAgICJFbnRpdHkiLCAKLSAgICAgICAgICAgICJFbnRp
dHlSZWZlcmVuY2UiLCAKICAgICAgICAgICAgICJFdmFsRXJyb3IiLCAKICAgICAgICAgICAgICJF
dmVudCIsIAogICAgICAgICAgICAgIkhUTUxBbmNob3JFbGVtZW50IiwgCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVj
dGVkLnR4dAppbmRleCBlNDU4NWFiLi4xZWE1YmRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQK
QEAgLTc4LDcgKzc4LDYgQEAgUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdE
b2N1bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0
b3IodGFyZ2V0V2luZG93LCAnRG9jdW1lbnRGcmFnbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFu
ZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRG9jdW1lbnRUeXBl
Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJn
ZXRXaW5kb3csICdFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgotUEFTUzogY2Fu
R2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQgYmUg
J2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0V2
YWxFcnJvcicpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0
b3IodGFyZ2V0V2luZG93LCAnRXZlbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNT
OiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0hUTUxBbmNob3JFbGVtZW50Jykgc2hv
dWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbAppbmRleCBkZWEwMTdkLi4zMDY2YjNhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iu
aHRtbApAQCAtMTksNyArMTksNiBAQAogICAgICAgICAgICAgIkRvY3VtZW50RnJhZ21lbnQiLCAK
ICAgICAgICAgICAgICJEb2N1bWVudFR5cGUiLCAKICAgICAgICAgICAgICJFbGVtZW50IiwgCi0g
ICAgICAgICAgICAiRW50aXR5UmVmZXJlbmNlIiwgCiAgICAgICAgICAgICAiRXZhbEVycm9yIiwg
CiAgICAgICAgICAgICAiRXZlbnQiLCAKICAgICAgICAgICAgICJIVE1MQW5jaG9yRWxlbWVudCIs
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQKaW5kZXggNDdmZDU0My4uYzRh
MDNiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0CkBAIC0xNCw4ICsx
NCw2IEBAIEFMRVJUOiBQQVNTOiB3aW5kb3cuRE9NRXhjZXB0aW9uIHNob3VsZCBiZSAnW29iamVj
dCBET01FeGNlcHRpb25Db25zdHJ1Y3Rvcl0nIGFuCiBBTEVSVDogUEFTUzogd2luZG93LkRPTUlt
cGxlbWVudGF0aW9uIHNob3VsZCBiZSAnW29iamVjdCBET01JbXBsZW1lbnRhdGlvbkNvbnN0cnVj
dG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5ET01QYXJzZXIgc2hvdWxkIGJlICdb
b2JqZWN0IERPTVBhcnNlckNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRv
dy5FbGVtZW50IHNob3VsZCBiZSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBhbmQgaXMu
Ci1BTEVSVDogUEFTUzogd2luZG93LkVudGl0eSBzaG91bGQgYmUgJ3VuZGVmaW5lZCcgYW5kIGlz
LgotQUxFUlQ6IFBBU1M6IHdpbmRvdy5FbnRpdHlSZWZlcmVuY2Ugc2hvdWxkIGJlICdbb2JqZWN0
IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRv
dy5FdmFsRXJyb3Igc2hvdWxkIGJlICdmdW5jdGlvbiBFdmFsRXJyb3IoKSB7ICAgIFtuYXRpdmUg
Y29kZV19JyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LkV2ZW50IHNob3VsZCBiZSAnW29i
amVjdCBFdmVudENvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5IVE1M
QW5jaG9yRWxlbWVudCBzaG91bGQgYmUgJ1tvYmplY3QgSFRNTEFuY2hvckVsZW1lbnRDb25zdHJ1
Y3Rvcl0nIGFuZCBpcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKaW5kZXggYWMwMjRmOC4uYTJiNmI4
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtcHV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKQEAgLTUwLDcgKzUwLDYgQEAgZnVuY3Rpb24gdGVz
dCgpIHsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJET01JbXBsZW1l
bnRhdGlvbiIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgIkRPTVBh
cnNlciIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgIkVsZW1lbnQi
KTsKLSAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJFbnRpdHlSZWZlcmVu
Y2UiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJFdmFsRXJyb3Ii
KTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJFdmVudCIpOwogICAg
IHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgIkhUTUxBbmNob3JFbGVtZW50Iik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9j
cm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0
bWwKaW5kZXggMzZmODI2Yi4uZDk3YzJjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3Nz
LWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRtbApAQCAtNTksNyArNTksNiBAQAogICAgICAg
ICB2YXIgRE9NUGFyc2VyT2xkID0gd2luZG93LkRPTVBhcnNlcjsKICAgICAgICAgdmFyIEVsZW1l
bnRPbGQgPSB3aW5kb3cuRWxlbWVudDsKICAgICAgICAgdmFyIEVudGl0eU9sZCA9IHdpbmRvdy5F
bnRpdHk7Ci0gICAgICAgIHZhciBFbnRpdHlSZWZlcmVuY2VPbGQgPSB3aW5kb3cuRW50aXR5UmVm
ZXJlbmNlOwogICAgICAgICB2YXIgRXZhbEVycm9yT2xkID0gd2luZG93LkV2YWxFcnJvcjsKICAg
ICAgICAgdmFyIEV2ZW50T2xkID0gd2luZG93LkV2ZW50OwogICAgICAgICB2YXIgSFRNTEFuY2hv
ckVsZW1lbnRPbGQgPSB3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQ7CkBAIC0yNjIsNyArMjYxLDYg
QEAKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRE9NUGFyc2VyIiwgIkRPTVBhcnNlck9s
ZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbGVtZW50IiwgIkVsZW1lbnRPbGQi
KTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRW50aXR5IiwgIkVudGl0eU9sZCIpOwot
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbnRpdHlSZWZlcmVuY2UiLCAiRW50aXR5UmVm
ZXJlbmNlT2xkIik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkV2YWxFcnJvciIsICJF
dmFsRXJyb3JPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZlbnQiLCAiRXZl
bnRPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQi
LCAiSFRNTEFuY2hvckVsZW1lbnRPbGQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5k
ZXggMmQ4ZGM4ZS4uNzk4OTU4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMx
MywxMSArMzEzLDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2Un
KS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFs
dWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFz
T3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYmFhYjQ5OC4uNDU3ZTk5MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0
dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzEzLDEx
ICszMTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0Jykg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScp
LnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vu
dGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVu
dW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBp
cyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Q
cm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBhMGM2ZmY0Li5lNjgxYTQ2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMTgsMTEgKzMx
OCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1l
bnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFs
dWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVy
YWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVy
cm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
cnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYzE1YjY2NS4uZTE4NDI5
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0
dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMwOCw2IEBAIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHko
J2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVu
dCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScp
LmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IDAwZmJjNGIuLjk0ZDc4MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1p
dGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAg
LTMwOCwxMSArMzA4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUK
LVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZl
cmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgn
Z2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50Jyku
dmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50Jyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMDQ0ZjE0Zi4uYzFhNDIyZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4
LDExICszMDgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5j
ZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQn
KSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScp
LmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1
ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwODNhMDcxLi42ZWJhYWFmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0
cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0yMzgsMTEg
KzIzOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vs
ZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJyku
dmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlz
IGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50
aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51
bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlz
IEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blBy
b3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IGQz
ZWI1MTcuLjM0M2E4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTE0OSw3ICsx
NDksNiBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93LmNwcCIKICNpbmNsdWRlICJKU0RPTVdpbmRv
d0NTUy5jcHAiCiAjaW5jbHVkZSAiSlNFbGVtZW50LmNwcCIKLSNpbmNsdWRlICJKU0VudGl0eVJl
ZmVyZW5jZS5jcHAiCiAjaW5jbHVkZSAiSlNFcnJvckV2ZW50LmNwcCIKICNpbmNsdWRlICJKU0V2
ZW50LmNwcCIKICNpbmNsdWRlICJKU0V2ZW50RXhjZXB0aW9uLmNwcCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDA4YzQ0OTYuLjA3N2Q3
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agpAQCAtMTgzMiwyMCArMTgzMiw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1
cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmNwcCI+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNFcnJvckV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CkBAIC0xOTg1OSw3ICsxOTg0NSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01VUkwuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0
ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RPTVdpbmRvdy5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxh
dGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRWxlbWVu
dC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRW50aXR5UmVmZXJlbmNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNFcnJvckV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFdmVudC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRl
Y3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXZlbnRFeGNlcHRpb24uaCIg
Lz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycwppbmRleCA5Nzg3YmM4Li44YmVlMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC01
MjU3LDkgKzUyNTcsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTRWxlbWVudC5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmNwcCI+Ci0gICAgICA8RmlsdGVy
PkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVj
dHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFcnJvckV2ZW50LmNwcCI+CiAg
ICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0xMjY0Niw5ICsxMjY0Myw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNFbGVtZW50LmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmgiPgotICAgICAgPEZpbHRl
cj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRl
Y3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5oIj4KICAg
ICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBjOTBkMTUxLi4zYmM1MDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTg3LDggKzM1ODcsNiBAQAogCQk5M0Y5QjY1ODBC
QTBGMzVFMDA4NTQwNjQgLyogRE9NSFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2NTUwQkEwRjM1RTAw
ODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJOTNGOUI2
RTAwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERTBCQTBGQjcyMDA4NTQwNjQgLyogSlND
b21tZW50LmNwcCAqLzsgfTsKIAkJOTNGOUI2RTEwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2
REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oICovOyB9OwotCQk5M0Y5Qjc3NDBCQTVG
RERDMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3NzIwQkE1RkREQzAwODU0MDY0IC8qIEpT
RW50aXR5UmVmZXJlbmNlLmNwcCAqLzsgfTsKLQkJOTNGOUI3NzUwQkE1RkRERDAwODU0MDY0IC8q
IEpTRW50aXR5UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0Y5Qjc3MzBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2Uu
aCAqLzsgfTsKIAkJOTNGOUI3QTAwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzlF
MEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgKi87IH07CiAJCTkzRjlCN0Ex
MEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3OUYwQkE2MDMyNjAwODU0MDY0IC8qIEpT
Q0RBVEFTZWN0aW9uLmggKi87IH07CiAJCTkzRkRBRkNBMEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0
b3JJbnNlcnRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRkRBRkM5MEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRBY3Rpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTA5NTks
OCArMTA5NTcsNiBAQAogCQk5M0Y5QjY1NTBCQTBGMzVFMDA4NTQwNjQgLyogRE9NSFRNTENhbnZh
c0VsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01I
VE1MQ2FudmFzRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzRjlCNkRFMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb21tZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NvbW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTNGOUI3NzIwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJl
bmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRW50aXR5UmVm
ZXJlbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGOUI3NzMwQkE1RkRE
QzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRW50aXR5UmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NEQVRBU2VjdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NE
QVRBU2VjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NEQVRBU2Vj
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0ZEQUZDOTBCMTEzMDc0MDBF
Mjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFZGl0b3JJbnNlcnRBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIwMDQ3LDggKzIwMDQzLDYgQEAKIAkJCQlCQzY0NjQ5NjExRDgyMzQ5MDA2NDU1QjAgLyog
SlNET01TdHJpbmdNYXAuaCAqLywKIAkJCQk2NURGMzFFNTA5RDFDQzYwMDAwQkUzMjUgLyogSlNF
bGVtZW50LmNwcCAqLywKIAkJCQk2NURGMzFFNjA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVtZW50
LmggKi8sCi0JCQkJOTNGOUI3NzIwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNl
LmNwcCAqLywKLQkJCQk5M0Y5Qjc3MzBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVu
Y2UuaCAqLywKIAkJCQlGRTgwREE1RjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbi5j
cHAgKi8sCiAJCQkJRkU4MERBNjAwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCAq
LywKIAkJCQlGRTgwREE2MTBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5jcHAgKi8s
CkBAIC0yNTU3OSw3ICsyNTU3Myw2IEBACiAJCQkJRkQ3ODY4QkExMzZCOTk5MjAwRDQwM0RGIC8q
IEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMxRkEw
OUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQURFQzc4
RjgxOEVFNTMwODAwMTMxNUMyIC8qIEpTRWxlbWVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJOTNGOUI3NzUwQkE1RkRERDAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRUNGN0FERDEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhh
bmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTgzNzhFMDlGODVENEYwMEI4NUFFNCAvKiBK
U0V2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5MTM5LDcgKzI5MTMyLDYgQEAKIAkJCQlGRDc4
NjhCOTEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTY1REYzMUY5MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyRUQ1NTUwQzZCOUJEMzAwOTIwQkZGIC8qIEpTRWxlbWVu
dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5M0Y5Qjc3NDBCQTVGRERDMDA4NTQwNjQg
LyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVDRjdBREMxMDE2
MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGM0Q0
NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTRFODM3ODQwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERP
TVByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Q
cml2YXRlLmNwcAppbmRleCA1OWNmNjhjLi5lM2I5NzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAKQEAgLTkzLDggKzkz
LDYgQEAgV2ViS2l0RE9NTm9kZSogd3JhcChOb2RlKiBub2RlKQogICAgICAgICByZXR1cm4gV0VC
S0lUX0RPTV9OT0RFKHdyYXBUZXh0KGRvd25jYXN0PFRleHQ+KG5vZGUpKSk7CiAgICAgY2FzZSBO
b2RlOjpDREFUQV9TRUNUSU9OX05PREU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUo
d3JhcENEQVRBU2VjdGlvbihzdGF0aWNfY2FzdDxDREFUQVNlY3Rpb24qPihub2RlKSkpOwotICAg
IGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAgICByZXR1cm4gV0VCS0lU
X0RPTV9OT0RFKHdyYXBFbnRpdHlSZWZlcmVuY2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNl
Kj4obm9kZSkpKTsKICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToK
ICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwUHJvY2Vzc2luZ0luc3RydWN0aW9u
KHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KG5vZGUpKSk7CiAgICAgY2FzZSBO
b2RlOjpDT01NRU5UX05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3Vz
dG9tLmNwcAppbmRleCBhZWFjMDg3Li5iMjdhOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJEb2N1
bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRW50
aXR5LmgiCi0jaW5jbHVkZSAiRW50aXR5UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkhUTUxBdWRpb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ2Fu
dmFzRWxlbWVudC5oIgpAQCAtNTEsNyArNTAsNiBAQAogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJKU0RvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJKU0RvY3VtZW50VHlw
ZS5oIgotI2luY2x1ZGUgIkpTRW50aXR5UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiSlNFdmVudExp
c3RlbmVyLmgiCiAjaW5jbHVkZSAiSlNIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgpAQCAtMjA5LDkgKzIwNyw2IEBAIHN0YXRpYyBBTFdBWVNf
SU5MSU5FIEpTVmFsdWUgY3JlYXRlV3JhcHBlcklubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqCiAjZW5kaWYKICAgICAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9X
UkFQUEVSKGdsb2JhbE9iamVjdCwgRG9jdW1lbnRGcmFnbWVudCwgbm9kZSk7CiAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6Ci0gICAg
ICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRW50aXR5
UmVmZXJlbmNlLCBub2RlKTsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIE5v
ZGUsIG5vZGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KaW5kZXggOGUx
ZmJlMS4uZTgzOTY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T00ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KQEAgLTMxMSw4
ICszMTEsNiBAQCBDbGFzcyBraXRDbGFzcyhXZWJDb3JlOjpOb2RlKiBpbXBsKQogICAgICAgICAg
ICAgcmV0dXJuIFtET01UZXh0IGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpD
REFUQV9TRUNUSU9OX05PREU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTUNEQVRBU2VjdGlvbiBj
bGFzc107Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RF
OgotICAgICAgICAgICAgcmV0dXJuIFtET01FbnRpdHlSZWZlcmVuY2UgY2xhc3NdOwogICAgICAg
ICBjYXNlIFdlYkNvcmU6Ok5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAg
ICAgICAgIHJldHVybiBbRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNsYXNzXTsKICAgICAgICAg
Y2FzZSBXZWJDb3JlOjpOb2RlOjpDT01NRU5UX05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQXR0ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKaW5kZXggYWM3
YjY2Zi4uOTZkN2VlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcApAQCAtMTQ4LDEzICsxNDgsNyBAQCBSZWY8
Tm9kZT4gQXR0cjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBD
bG9uaW5nT3BlcmF0aW9uKQogLy8gRE9NIFNlY3Rpb24gMS4xLjEKIGJvb2wgQXR0cjo6Y2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogewotICAgIHN3aXRjaCAodHlwZSkgewot
ICAgICAgICBjYXNlIFRFWFRfTk9ERToKLSAgICAgICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05P
REU6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9CisgICAgcmV0dXJuIHR5cGUgPT0gVEVYVF9OT0RFOwog
fQogCiB2b2lkIEF0dHI6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0
dHIuaAppbmRleCAxMjRjNmQ3YS4uZjZmMzYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBAIC0zMyw3ICszMyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFz
cyBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOwogCi0vLyBBdHRyIGNhbiBoYXZlIFRleHQgYW5kIEVu
dGl0eVJlZmVyZW5jZSBjaGlsZHJlbgorLy8gQXR0ciBjYW4gaGF2ZSBUZXh0IGNoaWxkcmVuCiAv
LyB0aGVyZWZvcmUgaXQgaGFzIHRvIGJlIGEgZnVsbGJsb3duIE5vZGUuIFRoZSBwbGFuCiAvLyBp
cyB0byBkeW5hbWljYWxseSBhbGxvY2F0ZSBhIHRleHRjaGlsZCBhbmQgc3RvcmUgdGhlCiAvLyBy
ZXN1bHRpbmcgbm9kZXZhbHVlIGluIHRoZSBhdHRyaWJ1dGUgdXBvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuY3BwCmluZGV4IGM5NjM0YjAuLjNmNGZlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGFpbmVyTm9kZS5jcHAKQEAgLTE4MCw3ICsxODAsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2Vw
dGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUm
IG5ldwogewogICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUuCiAg
ICAgaWYgKChuZXdDaGlsZC5pc0VsZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQuaXNUZXh0Tm9kZSgp
KSAmJiBuZXdQYXJlbnQuaXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFy
ZW50LmlzUmVhZE9ubHlOb2RlKCkpOwogICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3Vt
ZW50VHlwZU5vZGUoKSk7CiAgICAgICAgIEFTU0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFy
ZW50LCBuZXdDaGlsZCkpOwogICAgICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVt
ZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKQEAgLTE5Myw4ICsxOTIsNiBAQCBzdGF0aWMgaW5s
aW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJl
bnQsIE5vZGUmIG5ldwogICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQuaXNS
ZWFkT25seU5vZGUoKSkKLSAgICAgICAgcmV0dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
UjsKICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3
UGFyZW50KSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIApAQCAtMjA5
LDcgKzIwNiw2IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxk
KENvbnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3CiAKIHN0YXRpYyBpbmxpbmUgYm9v
bCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBuZXdQ
YXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlQo
IW5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0Rv
Y3VtZW50VHlwZU5vZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJl
bnQsIG5ld0NoaWxkKSk7CiAgICAgaWYgKG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7
CkBAIC01MjEsMTIgKzUxNyw2IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9k
ZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMgPSAwOwogCi0gICAgLy8g
Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgdGhpcyBub2RlIGlzIHJlYWRv
bmx5LgotICAgIGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAg
Ly8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRo
aXMgbm9kZS4KICAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAg
ICAgZWMgPSBOT1RfRk9VTkRfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjE3OTNj
Mi4uNmNmMGVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC05MDksMTcgKzkwOSwxMCBA
QCBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBEb2N1bWVudDo6Y3JlYXRlUHJvY2Vzc2lu
Z0luc3RydWN0aW9uKGNvbnN0IFN0cmluZwogICAgIHJldHVybiBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b246OmNyZWF0ZSgqdGhpcywgdGFyZ2V0LCBkYXRhKTsKIH0KIAotUmVmUHRyPEVudGl0eVJlZmVy
ZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmIG5hbWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNy
ZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICBpZiAoIWlzVmFsaWROYW1lKG5hbWUpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9DSEFS
QUNURVJfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgaWYgKGlzSFRN
TERvY3VtZW50KCkpIHsKLSAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0
ZSgqdGhpcywgbmFtZSk7CisgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAogUmVmPFRleHQ+IERvY3VtZW50OjpjcmVhdGVFZGl0aW5nVGV4dE5vZGUo
Y29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtOTQ0LDcgKzkzNyw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1
bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wgZGVlcCwgRXhjZXB0aW9u
Q29kZSYKICAgICBjYXNlIEVMRU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBj
YXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBjYXNlIENPTU1FTlRf
Tk9ERToKICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC05NzQsMTEgKzk2Niw2
IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291
cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
Ci0gICAgaWYgKHNvdXJjZS0+aXNSZWFkT25seU5vZGUoKSkgewotICAgICAgICBlYyA9IE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
CiAgICAgRXZlbnRRdWV1ZVNjb3BlIHNjb3BlOwogCiAgICAgc3dpdGNoIChzb3VyY2UtPm5vZGVU
eXBlKCkpIHsKQEAgLTE3MTAsNTIgKzE2OTcsNTIgQEAgUmVmPFJhbmdlPiBEb2N1bWVudDo6Y3Jl
YXRlUmFuZ2UoKQogICAgIHJldHVybiBSYW5nZTo6Y3JlYXRlKCp0aGlzKTsKIH0KIAotUmVmUHRy
PE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9v
bCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2Rl
SXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwg
d2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGVjKTsKK30KKworUmVmUHRyPE5vZGVJdGVy
YXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIE5vZGVJdGVyYXRvcjo6Y3Jl
YXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzKTsKKyAgICByZXR1cm4gTm9kZUl0ZXJhdG9yOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hv
dywgV1RGOjptb3ZlKGZpbHRlcikpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVu
dDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0
cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1
cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
LCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRv
U2hvdywgbnVsbHB0ciwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6
Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywg
RXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRl
Tm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVy
biBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZmFsc2UsIGVj
KTsKKyAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIDB4RkZGRkZGRkYsIG51bGxw
dHIsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJ
dGVyYXRvcihOb2RlKiByb290LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2Vy
PiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdo
YXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCAweEZGRkZGRkZG
LCBudWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3Qs
IHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBlYyk7CiB9CiAKLVJlZlB0cjxUcmVlV2Fs
a2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRp
dHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1
bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0
VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7Ci19Ci0K
LVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwg
d2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIFRy
ZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSk7CiB9
CiAKIFJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiBy
b290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIG51bGxwdHIsIGZhbHNl
LCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgbnVs
bHB0ciwgZWMpOwogfQogCiBSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVX
YWxrZXIoTm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0
ZVRyZWVXYWxrZXIocm9vdCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICBy
ZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBlYyk7CiB9
CiAKIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKQpAQCAtMzM0OCw3
ICszMzM1LDYgQEAgYm9vbCBEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBl
KSBjb25zdAogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRf
RlJBR01FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX05PREU6Ci0gICAgY2FzZSBFTlRJVFlf
UkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2FzZSBYUEFUSF9OQU1F
U1BBQ0VfTk9ERToKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzM3Niw3ICszMzYyLDYgQEAg
Ym9vbCBEb2N1bWVudDo6Y2FuQWNjZXB0Q2hpbGQoY29uc3QgTm9kZSYgbmV3Q2hpbGQsIGNvbnN0
IE5vZGUqIHJlZkNoaWxkLCBBY2NlcHQKICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgIGNh
c2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICBjYXNl
IEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIFhQ
QVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IDc0Y2VhYTkuLjJjYWE4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01MzUs
MTIgKzUzNSwxMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8UmFuZ2U+IGNy
ZWF0ZVJhbmdlKCk7CiAKLSAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0
b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRl
cj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJik7CisgICAg
UmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlv
bkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4g
Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywg
UmVmUHRyPE5vZGVGaWx0ZXI+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8Tm9kZUl0
ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0
VG9TaG93LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRl
Tm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFJlZlB0cjxU
cmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hh
dFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNl
cywgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0
ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAg
UmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fs
a2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsCmluZGV4IDgxYjEwYWUuLmJhOWVjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmlkbApAQCAtMzksNyArMzksMTAgQEAKICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0
ZXJzLCBOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERP
TVN0cmluZyB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmlu
ZWRdIG9wdGlvbmFsIERPTVN0cmluZyBkYXRhKTsKICAgICBbTmV3T2JqZWN0LCBSYWlzZXNFeGNl
cHRpb25dIEF0dHIgY3JlYXRlQXR0cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwg
RE9NU3RyaW5nIG5hbWUpOwotICAgIFtOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gRW50aXR5
UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlv
bmFsIERPTVN0cmluZyBuYW1lKTsKKworI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0Mp
ICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gRW50aXR5UmVm
ZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IERPTVN0cmluZyBuYW1lKTsKKyNlbmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJ
VkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICBbSW1wbGVtZW50ZWRBcz1nZXRFbGVt
ZW50c0J5VGFnTmFtZUZvck9iakNdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKFtEZWZh
dWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHRhZ25hbWUpOwpAQCAtOTIsMTQgKzk1
LDIzIEBACiAKICAgICAvLyBET00gTGV2ZWwgMiBUcmFudmVyc2FsIGFuZCBSYW5nZSAoRG9jdW1l
bnRUcmF2ZXJzYWwgaW50ZXJmYWNlKQogCi0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVy
cywgUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRl
cmF0b3IoTm9kZSByb290LAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExB
TkdVQUdFX09CSkVDVElWRV9DCisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFp
c2VzRXhjZXB0aW9uXSBOb2RlSXRlcmF0b3IgY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9vdCwK
ICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwK
ICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyLAogICAgICAgICBvcHRpb25hbCBi
b29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBh
cmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBUcmVlV2Fsa2VyIGNyZWF0ZVRy
ZWVXYWxrZXIoTm9kZSByb290LAorICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJh
aXNlc0V4Y2VwdGlvbl0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwKICAg
ICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKICAg
ICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyLAogICAgICAgICBvcHRpb25hbCBib29s
ZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworI2Vsc2UKKyAgICBbUmFpc2VzRXhjZXB0aW9u
LCBOZXdPYmplY3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAor
ICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cgPSAweEZGRkZGRkZGLAor
ICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIpOworICAgIFtSYWlzZXNFeGNlcHRp
b24sIE5ld09iamVjdF0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwKKyAg
ICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKKyAg
ICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyKTsKKyNlbmRpZgogCiAgICAgLy8gRE9N
IExldmVsIDIgQWJzdHJhY3QgVmlld3MgKERvY3VtZW50VmlldyBpbnRlcmZhY2UpCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCBmOWIzOGEwLi5hNjcwMDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC02MCw3ICs2MCw2IEBA
IGJvb2wgRG9jdW1lbnRGcmFnbWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBj
b25zdAogICAgICAgICBjYXNlIENPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBURVhUX05PREU6
CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9S
RUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDhi
ZTMzNzcuLmY1MzMxYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE3NTEsNyArMTc1MSw2
IEBAIGJvb2wgRWxlbWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAog
ICAgIGNhc2UgQ09NTUVOVF9OT0RFOgogICAgIGNhc2UgUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9O
T0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVS
RU5DRV9OT0RFOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKaW5kZXggN2U5MWE0Ni4u
ZTU4MjRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKQEAgLTI1LDMw
ICsyNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIEVudGl0eVJlZmVyZW5j
ZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBlbnRp
dHlOYW1lKQoraW5saW5lIEVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJikKICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQp
Ci0gICAgLCBtX2VudGl0eU5hbWUoZW50aXR5TmFtZSkKIHsKIH0KIAotUmVmPEVudGl0eVJlZmVy
ZW5jZT4gRW50aXR5UmVmZXJlbmNlOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIGVudGl0eU5hbWUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW50aXR5UmVm
ZXJlbmNlKGRvY3VtZW50LCBlbnRpdHlOYW1lKSk7Ci19Ci0KLVN0cmluZyBFbnRpdHlSZWZlcmVu
Y2U6Om5vZGVOYW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbnRpdHlOYW1lOwotfQotCi1O
b2RlOjpOb2RlVHlwZSBFbnRpdHlSZWZlcmVuY2U6Om5vZGVUeXBlKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gRU5USVRZX1JFRkVSRU5DRV9OT0RFOwotfQotCi1SZWY8Tm9kZT4gRW50aXR5UmVmZXJl
bmNlOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdP
cGVyYXRpb24pCi17Ci0gICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgbV9lbnRpdHlO
YW1lKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbnRpdHlSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2Uu
aAppbmRleCA4NmRmZWIzLi4xOGMyZWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RW50aXR5UmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5j
ZS5oCkBAIC0yNiwxOCArMjYsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVu
dGl0eVJlZmVyZW5jZSBmaW5hbCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPEVudGl0eVJlZmVyZW5jZT4gY3JlYXRlKERvY3VtZW50JiwgY29uc3QgU3Ry
aW5nJiBlbnRpdHlOYW1lKTsKLQorY2xhc3MgRW50aXR5UmVmZXJlbmNlIDogcHVibGljIENvbnRh
aW5lck5vZGUgewogcHJpdmF0ZToKICAgICBFbnRpdHlSZWZlcmVuY2UoRG9jdW1lbnQmLCBjb25z
dCBTdHJpbmcmIGVudGl0eU5hbWUpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBj
b25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQm
LCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKLQotICAgIFN0cmluZyBtX2VudGl0eU5hbWU7
CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50
aXR5UmVmZXJlbmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRs
CmluZGV4IDZkMDUzNWYuLjI3MzFkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bnRpdHlSZWZlcmVuY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVu
Y2UuaWRsCkBAIC0xNyw4ICsxNywxMiBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CiAgKi8KIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09C
SkVDVElWRV9DCisKIFsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBKU0dlbmVyYXRlVG9K
U09iamVjdAogXSBpbnRlcmZhY2UgRW50aXR5UmVmZXJlbmNlIDogTm9kZSB7CiB9OwogCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAppbmRleCA0MzYyZDY1Li5kZWYyNGNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
CkBAIC0xMDMsNyArMTAzLDYgQEAgdm9pZCBOb2RlOjpkdW1wU3RhdGlzdGljcygpCiAgICAgc2l6
ZV90IHRleHROb2RlcyA9IDA7CiAgICAgc2l6ZV90IGNkYXRhTm9kZXMgPSAwOwogICAgIHNpemVf
dCBjb21tZW50Tm9kZXMgPSAwOwotICAgIHNpemVfdCBlbnRpdHlSZWZlcmVuY2VOb2RlcyA9IDA7
CiAgICAgc2l6ZV90IGVudGl0eU5vZGVzID0gMDsKICAgICBzaXplX3QgcGlOb2RlcyA9IDA7CiAg
ICAgc2l6ZV90IGRvY3VtZW50Tm9kZXMgPSAwOwpAQCAtMTY4LDEwICsxNjcsNiBAQCB2b2lkIE5v
ZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICAgICAgICAgICAgICArK2NvbW1lbnROb2RlczsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgRU5U
SVRZX1JFRkVSRU5DRV9OT0RFOiB7Ci0gICAgICAgICAgICAgICAgKytlbnRpdHlSZWZlcmVuY2VO
b2RlczsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGNhc2UgRU5USVRZX05PREU6IHsKICAgICAgICAgICAgICAgICArK2VudGl0eU5vZGVzOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjExLDcgKzIwNiw2IEBAIHZvaWQgTm9kZTo6ZHVtcFN0
YXRpc3RpY3MoKQogICAgIHByaW50ZigiICBOdW1iZXIgb2YgVGV4dCBub2RlczogJXp1XG4iLCB0
ZXh0Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgQ0RBVEFTZWN0aW9uIG5vZGVzOiAl
enVcbiIsIGNkYXRhTm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgQ29tbWVudCBub2Rl
czogJXp1XG4iLCBjb21tZW50Tm9kZXMpOwotICAgIHByaW50ZigiICBOdW1iZXIgb2YgRW50aXR5
UmVmZXJlbmNlIG5vZGVzOiAlenVcbiIsIGVudGl0eVJlZmVyZW5jZU5vZGVzKTsKICAgICBwcmlu
dGYoIiAgTnVtYmVyIG9mIEVudGl0eSBub2RlczogJXp1XG4iLCBlbnRpdHlOb2Rlcyk7CiAgICAg
cHJpbnRmKCIgIE51bWJlciBvZiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbm9kZXM6ICV6dVxuIiwg
cGlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBEb2N1bWVudCBub2RlczogJXp1XG4i
LCBkb2N1bWVudE5vZGVzKTsKQEAgLTM4NCwxNCArMzc4LDggQEAgU3RyaW5nIE5vZGU6Om5vZGVW
YWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12b2lkIE5vZGU6OnNldE5v
ZGVWYWx1ZShjb25zdCBTdHJpbmcmIC8qbm9kZVZhbHVlKi8sIEV4Y2VwdGlvbkNvZGUmIGVjKQor
dm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiAvKm5vZGVWYWx1ZSovLCBFeGNl
cHRpb25Db2RlJikKIHsKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNl
ZCB3aGVuIHRoZSBub2RlIGlzIHJlYWRvbmx5Ci0gICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkpIHsK
LSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KICAgICAvLyBCeSBkZWZhdWx0LCBzZXR0aW5nIG5vZGVWYWx1ZSBoYXMgbm8g
ZWZmZWN0LgogfQogCkBAIC04OTAsMTEgKzg3OCw2IEBAIHZvaWQgTm9kZTo6Y2hlY2tTZXRQcmVm
aXgoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAg
ZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KICAgICAvLyBGSVhNRTogUmFpc2UgTkFNRVNQQUNFX0VSUiBpZiBwcmVmaXggaXMgbWFsZm9y
bWVkIHBlciB0aGUgTmFtZXNwYWNlcyBpbiBYTUwgc3BlY2lmaWNhdGlvbi4KIAogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgbm9kZU5hbWVzcGFjZVVSSSA9IG5hbWVzcGFjZVVSSSgpOwpAQCAtMTQy
Miw3ICsxNDA1LDYgQEAgc3RhdGljIHZvaWQgYXBwZW5kVGV4dENvbnRlbnQoY29uc3QgTm9kZSog
bm9kZSwgYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5lcywgYm9vbCYKICAgICAgICAgfQogICAgICAg
ICBGQUxMVEhST1VHSDsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2Ug
Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJB
R01FTlRfTk9ERToKICAgICAgICAgaXNOdWxsU3RyaW5nID0gZmFsc2U7CiAgICAgICAgIGZvciAo
Tm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKSB7CkBAIC0xNDU4LDcgKzE0NDAsNiBAQCB2b2lkIE5vZGU6OnNldFRleHRD
b250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIGNhc2UgRUxFTUVOVF9OT0RFOgogICAgICAgICBjYXNlIEFUVFJJ
QlVURV9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAg
Y2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOiB7CiAgICAgICAgICAgICBSZWY8Q29udGFpbmVy
Tm9kZT4gY29udGFpbmVyKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKSk7CiAgICAgICAg
ICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRhaW5lcik7CkBAIC0xNDc4
LDcgKzE0NTksNiBAQCB2b2lkIE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIEVsZW1lbnQqIE5vZGU6OmFuY2VzdG9yRWxlbWVudCgp
IGNvbnN0CiB7Ci0gICAgLy8gSW4gdGhlb3J5LCB0aGVyZSBjYW4gYmUgRW50aXR5UmVmZXJlbmNl
IG5vZGVzIGJldHdlZW4gZWxlbWVudHMsIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9y
dGVkLgogICAgIGZvciAoQ29udGFpbmVyTm9kZSogYW5jZXN0b3IgPSBwYXJlbnROb2RlKCk7IGFu
Y2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnROb2RlKCkpIHsKICAgICAgICAgaWYg
KGlzPEVsZW1lbnQ+KCphbmNlc3RvcikpCiAgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8RWxl
bWVudD4oYW5jZXN0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMDRlMzhkMi4uYTJmYzQzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCkBAIC0xMjUsNyArMTI1LDYgQEAgcHVibGljOgogICAgICAgICBBVFRSSUJVVEVfTk9E
RSA9IDIsCiAgICAgICAgIFRFWFRfTk9ERSA9IDMsCiAgICAgICAgIENEQVRBX1NFQ1RJT05fTk9E
RSA9IDQsCi0gICAgICAgIEVOVElUWV9SRUZFUkVOQ0VfTk9ERSA9IDUsCiAgICAgICAgIFBST0NF
U1NJTkdfSU5TVFJVQ1RJT05fTk9ERSA9IDcsCiAgICAgICAgIENPTU1FTlRfTk9ERSA9IDgsCiAg
ICAgICAgIERPQ1VNRU5UX05PREUgPSA5LApAQCAtMTM0LDYgKzEzMyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgWFBBVEhfTkFNRVNQQUNFX05PREUgPSAxMywKICAgICB9OwogICAgIGVudW0gRGVwcmVj
YXRlZE5vZGVUeXBlIHsKKyAgICAgICAgRU5USVRZX1JFRkVSRU5DRV9OT0RFID0gNSwKICAgICAg
ICAgRU5USVRZX05PREUgPSA2LAogICAgICAgICBOT1RBVElPTl9OT0RFID0gMTIsCiAgICAgfTsK
QEAgLTQxNyw3ICs0MTcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luU2hhZG93VHJlZSgpIGNv
bnN0IHsgcmV0dXJuIGdldEZsYWcoSXNJblNoYWRvd1RyZWVGbGFnKTsgfQogICAgIGJvb2wgaXNJ
blRyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoc3RhdGljX2Nhc3Q8Tm9kZUZsYWdz
PihJbkRvY3VtZW50RmxhZyB8IElzSW5TaGFkb3dUcmVlRmxhZykpOyB9CiAKLSAgICBib29sIGlz
UmVhZE9ubHlOb2RlKCkgY29uc3QgeyByZXR1cm4gbm9kZVR5cGUoKSA9PSBFTlRJVFlfUkVGRVJF
TkNFX05PREU7IH0KICAgICBib29sIGlzRG9jdW1lbnRUeXBlTm9kZSgpIGNvbnN0IHsgcmV0dXJu
IG5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RFOyB9CiAgICAgdmlydHVhbCBib29sIGNo
aWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdW5z
aWduZWQgY291bnRDaGlsZE5vZGVzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3Iu
Y3BwCmluZGV4IDQ4YTBhMTkuLmRhOWQwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3Iu
Y3BwCkBAIC03Niw4ICs3Niw4IEBAIGJvb2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92
ZVRvUHJldmlvdXMoTm9kZSogcm9vdCkKICAgICByZXR1cm4gbm9kZTsKIH0KIAotTm9kZUl0ZXJh
dG9yOjpOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50
aXR5UmVmZXJlbmNlcykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1No
b3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJh
dG9yOjpOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCisgICAgOiBOb2RlSXRl
cmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkKICAgICAs
IG1fcmVmZXJlbmNlTm9kZShyb290KCksIHRydWUpCiB7CiAgICAgcm9vdCgpLT5kb2N1bWVudCgp
LmF0dGFjaE5vZGVJdGVyYXRvcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAppbmRl
eCA5NzE5Mjc0Li40ZjE1MDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0
ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCkBAIC0zNyw5
ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE5vZGVJdGVyYXRvciA6
IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPE5vZGVJdGVyYXRvcj4s
IHB1YmxpYyBOb2RlSXRlcmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBS
ZWY8Tm9kZUl0ZXJhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhw
YW5kRW50aXR5UmVmZXJlbmNlcykKKyAgICAgICAgc3RhdGljIFJlZjxOb2RlSXRlcmF0b3I+IGNy
ZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cs
IFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6
Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6
Om1vdmUoZmlsdGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIApA
QCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbm9kZVdp
bGxCZVJlbW92ZWQoTm9kZSYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTm9kZUl0ZXJhdG9y
KFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVG
aWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIE5vZGVJdGVy
YXRvcihQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxO
b2RlRmlsdGVyPiYmKTsKIAogICAgICAgICBzdHJ1Y3QgTm9kZVBvaW50ZXIgewogICAgICAgICAg
ICAgUmVmUHRyPE5vZGU+IG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUl0ZXJhdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCmluZGV4
IDEyMDI1ZGUuLjIzMTEyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRl
cmF0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCkBAIC0y
Niw3ICsyNiw5IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93OwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBOb2RlRmlsdGVyIGZpbHRlcjsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElW
RV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXM7CisjZW5kaWYKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgTm9kZSByZWZlcmVuY2VOb2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBv
aW50ZXJCZWZvcmVSZWZlcmVuY2VOb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA1MmUyZjE5
Li44YzFlMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTU3Miw3ICs1NzIsNiBAQCBzdGF0aWMg
aW5saW5lIHVuc2lnbmVkIGxlbmd0aE9mQ29udGVudHNJbk5vZGUoTm9kZSogbm9kZSkKICAgICAg
ICAgcmV0dXJuIGRvd25jYXN0PENoYXJhY3RlckRhdGE+KCpub2RlKS5sZW5ndGgoKTsKICAgICBj
YXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgot
ICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9D
VU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICBjYXNl
IE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC03MzMsNyArNzMyLDYgQEAgUmVmUHRy
PE5vZGU+IFJhbmdlOjpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFj
dGlvbiwgUGFzc1JlZlB0cjwKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2RlOjpFTEVNRU5U
X05PREU6CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVO
VElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAg
Y2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9G
UkFHTUVOVF9OT0RFOgpAQCAtODU2LDEzICs4NTQsNiBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2Rl
KFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJh
aXNlZCBpZiBhbiBhbmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVyIGJvdW5kYXJ5LXBvaW50IG9m
Ci0gICAgLy8gdGhlIFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBpZiAoY29udGFpbmVkQnlSZWFk
T25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBSYWlz
ZWQgaWYgdGhlIGNvbnRhaW5lciBvZiB0aGUgc3RhcnQgb2YgdGhlIFJhbmdlIGlzIG9mIGEgdHlw
ZSB0aGF0CiAgICAgLy8gZG9lcyBub3QgYWxsb3cgY2hpbGRyZW4gb2YgdGhlIHR5cGUgb2YgbmV3
Tm9kZSBvciBpZiBuZXdOb2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBjb250YWluZXIuCiAKQEAg
LTEwMjIsNyArMTAxMyw2IEBAIE5vZGUqIFJhbmdlOjpjaGVja05vZGVXT2Zmc2V0KE5vZGUqIG4s
IGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6
OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9E
RToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6
RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFD
RV9OT0RFOiB7CiAgICAgICAgICAgICBpZiAoIW9mZnNldCkKICAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKQEAgLTEwNTIsNyArMTA0Miw2IEBAIHZvaWQgUmFuZ2U6OmNoZWNrTm9kZUJB
KE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6OkNP
TU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAg
ICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9S
RUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9O
X05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6
OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTA3Miw3ICsxMDYxLDYgQEAgdm9pZCBSYW5nZTo6
Y2hlY2tOb2RlQkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGNh
c2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVf
Tk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9k
ZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdf
SU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAg
IGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTQ5LDcgKzExMzcsNiBAQCB2
b2lkIFJhbmdlOjpzZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICAg
ICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpFTEVN
RU5UX05PREU6Ci0gICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAg
ICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlhQ
QVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTE2NSw3ICsxMTUyLDYgQEAgdm9pZCBSYW5nZTo6c2Vs
ZWN0Tm9kZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2FzZSBO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RF
OgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2RlOjpF
TlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNU
UlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgY2Fz
ZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyMDQsNyArMTE5MCw2IEBAIHZvaWQg
UmFuZ2U6OnNlbGVjdE5vZGVDb250ZW50cyhOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAg
ICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6
RUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05P
REU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToK
ICAgICAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2Rl
OjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyNDMsMjAgKzEyMjgsMTIgQEAgdm9pZCBSYW5n
ZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJlbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKICAg
ICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVO
VF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAg
ICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2Ug
Tm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RF
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVyIG9mIGVpdGhlciBib3Vu
ZGFyeS1wb2ludCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9ubHkuCi0gICAgaWYgKGNv
bnRhaW5lZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIFJhaXNlIGEgSElFUkFS
Q0hZX1JFUVVFU1RfRVJSIGlmIHN0YXJ0Q29udGFpbmVyKCkgZG9lc24ndCBhY2NlcHQgY2hpbGRy
ZW4gbGlrZSBuZXdQYXJlbnQuCiAgICAgTm9kZSogcGFyZW50T2ZOZXdQYXJlbnQgPSAmc3RhcnRD
b250YWluZXIoKTsKIApAQCAtMTMzMCwzNiArMTMwNywxNiBAQCB2b2lkIFJhbmdlOjpjaGVja0Rl
bGV0ZUV4dHJhY3QoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGlm
ICghY29tbW9uQW5jZXN0b3JDb250YWluZXIoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYg
KGFjdGlvbiAhPSBFeHRyYWN0KQorICAgICAgICByZXR1cm47CisKICAgICBOb2RlKiBwYXN0TGFz
dCA9IHBhc3RMYXN0Tm9kZSgpOwogICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Tm9kZSgpOyBuICE9
IHBhc3RMYXN0OyBuID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbikpIHsKLSAgICAgICAgaWYgKG4t
PmlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KGFjdGlvbiA9PSBFeHRyYWN0ICYmIG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6RE9DVU1FTlRfVFlQ
RV9OT0RFKSB7CisgICAgICAgIGlmIChuLT5pc0RvY3VtZW50VHlwZU5vZGUoKSkgewogICAgICAg
ICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAoY29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0gICAg
ICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotfQotCi1ib29sIFJhbmdlOjpjb250YWluZWRCeVJlYWRPbmx5KCkgY29uc3QKLXsKLSAg
ICBmb3IgKE5vZGUqIG4gPSAmc3RhcnRDb250YWluZXIoKTsgbjsgbiA9IG4tPnBhcmVudE5vZGUo
KSkgewotICAgICAgICBpZiAobi0+aXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLSAgICBmb3IgKE5vZGUqIG4gPSAmZW5kQ29udGFpbmVyKCk7IG47IG4g
PSBuLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkpCi0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCiBO
b2RlKiBSYW5nZTo6Zmlyc3ROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggYzhmMjk5My4u
NGMxMTE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTE2MSw3ICsxNjEsNiBAQCBwcml2YXRlOgogCiAg
ICAgTm9kZSogY2hlY2tOb2RlV09mZnNldChOb2RlKiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tOb2RlQkEoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKSBj
b25zdDsKLSAgICBib29sIGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSBjb25zdDsKIAogICAgIGVudW0g
QWN0aW9uVHlwZSB7IERlbGV0ZSwgRXh0cmFjdCwgQ2xvbmUgfTsKICAgICB2b2lkIGNoZWNrRGVs
ZXRlRXh0cmFjdChBY3Rpb25UeXBlLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAKaW5kZXggYjdmZDk3Mi4uYjRkZmUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmNwcApAQCAtMTAwLDcgKzEwMCw2IEBAIGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBlQWxsb3dl
ZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09NTUVOVF9OT0RFOgogICAgIGNhc2Ug
VEVYVF9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgIGNhc2UgRU5USVRZ
X1JFRkVSRU5DRV9OT0RFOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVy
c2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCmluZGV4IDc0YTkyOGYu
LjNjNGE5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCkBAIC0zMCwxOCArMzAsMTUgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Ob2RlSXRlcmF0b3JCYXNlOjpOb2RlSXRlcmF0b3JC
YXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywg
UmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzKQorTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+
IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYm
IG5vZGVGaWx0ZXIpCiAgICAgOiBtX3Jvb3Qocm9vdE5vZGUpCiAgICAgLCBtX3doYXRUb1Nob3co
d2hhdFRvU2hvdykKICAgICAsIG1fZmlsdGVyKFdURjo6bW92ZShub2RlRmlsdGVyKSkKLSAgICAs
IG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlcyhleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQogewogfQog
CiBzaG9ydCBOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7
Ci0gICAgLy8gRklYTUU6IFRvIGhhbmRsZSBYTUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBj
aGVjayBtX2V4cGFuZEVudGl0eVJlZmVyZW5jZXMuCi0KICAgICAvLyBUaGUgYml0IHR3aWRkbGlu
ZyBoZXJlIGlzIGRvbmUgdG8gbWFwIERPTSBub2RlIHR5cGVzLCB3aGljaCBhcmUgZ2l2ZW4gYXMg
aW50ZWdlcnMgZnJvbQogICAgIC8vIDEgdGhyb3VnaCAxNCwgdG8gd2hhdFRvU2hvdyBiaXQgbWFz
a3MuCiAgICAgaWYgKCEoKCgxIDw8IChub2RlLT5ub2RlVHlwZSgpIC0gMSkpICYgbV93aGF0VG9T
aG93KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgKaW5kZXggZWQ2ZThkZC4uZmZiZDU0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmF2ZXJzYWwuaApAQCAtMzgsMTcgKzM4LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgTm9kZSogcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdC5nZXQoKTsgfQogICAg
ICAgICB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3coKSBjb25zdCB7IHJldHVybiBtX3doYXRUb1No
b3c7IH0KICAgICAgICAgTm9kZUZpbHRlciogZmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0
ZXIuZ2V0KCk7IH0KLSAgICAgICAgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKCkgY29uc3Qg
eyByZXR1cm4gbV9leHBhbmRFbnRpdHlSZWZlcmVuY2VzOyB9CisgICAgICAgIGJvb2wgZXhwYW5k
RW50aXR5UmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBwcm90ZWN0
ZWQ6Ci0gICAgICAgIE5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlS
ZWZlcmVuY2VzKTsKKyAgICAgICAgTm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKICAgICAgICAg
c2hvcnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBS
ZWZQdHI8Tm9kZT4gbV9yb290OwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fd2hhdFRvU2hvdzsK
ICAgICAgICAgUmVmUHRyPE5vZGVGaWx0ZXI+IG1fZmlsdGVyOwotICAgICAgICBib29sIG1fZXhw
YW5kRW50aXR5UmVmZXJlbmNlczsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVdhbGtlci5jcHAKaW5kZXggYWQwYWNlMS4uODc3NDgyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlV2Fsa2VyLmNwcApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVRyZWVXYWxrZXI6OlRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJv
b2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5v
ZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KQorVHJlZVdhbGtlcjo6VHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNp
Z25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKKyAgICA6
IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
KQogICAgICwgbV9jdXJyZW50KHJvb3QoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCmlu
ZGV4IGJmNjliZGUuLjIyOGYyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaApAQCAtMzcsOSAr
MzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUcmVlV2Fsa2VyIDogcHVi
bGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8VHJlZVdhbGtlcj4sIHB1Ymxp
YyBOb2RlSXRlcmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8VHJl
ZVdhbGtlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXMpCisgICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRlKFBhc3NS
ZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5v
ZGVGaWx0ZXI+JiYgZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUcmVlV2Fsa2VyKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVy
KSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVHJlZVdhbGtlcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikp
KTsKICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICBOb2Rl
KiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQpAQCAtNTQs
NyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUqIG5leHROb2RlKCk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVu
c2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5k
RW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIFRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAg
IAogICAgICAgICBOb2RlKiBzZXRDdXJyZW50KFBhc3NSZWZQdHI8Tm9kZT4pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVdhbGtlci5pZGwKaW5kZXggNDgwOWVlMy4uYWQ1Y2I1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlV2Fsa2VyLmlkbApAQCAtMjYsNyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBO
b2RlIHJvb3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAgICAgIAorI2lm
IGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKKyNl
bmRpZgogICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2RlIGN1cnJlbnRO
b2RlOwogCiAgICAgTm9kZSBwYXJlbnROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IDgzNDU1NzIuLjcxMmFiZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC01NzMsNyArNTczLDYg
QEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXAoU3RyaW5nQnVpbGRl
ciYgcmVzdWx0LCBjb25zdCBOb2RlJiBub2QKICAgICAgICAgYXBwZW5kQ0RBVEFTZWN0aW9uKHJl
c3VsdCwgZG93bmNhc3Q8Q0RBVEFTZWN0aW9uPihub2RlKS5kYXRhKCkpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZ
X1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQ
YXRoVXRpbC5jcHAKaW5kZXggNmY2NjRkOC4uYmVhZGI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRp
bC5jcHAKQEAgLTcxLDcgKzcxLDYgQEAgYm9vbCBpc1ZhbGlkQ29udGV4dE5vZGUoTm9kZSogbm9k
ZSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5U
X0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgot
ICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICBy
ZXR1cm4gIShub2RlLT5wYXJlbnROb2RlKCkgJiYgbm9kZS0+cGFyZW50Tm9kZSgpLT5pc0F0dHJp
YnV0ZU5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0KaW5kZXggZTVj
NmYwMi4uZDU3ZGZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5tbQpAQCAt
NzYsNyArNzYsNiBAQCBzdGF0aWMgQ2xhc3MgV0tET01Ob2RlQ2xhc3MoV2ViQ29yZTo6Tm9kZSog
aW1wbCkKICAgICAgICAgcmV0dXJuIFtXS0RPTVRleHQgY2xhc3NdOwogICAgIGNhc2UgV2ViQ29y
ZTo6Tm9kZTo6QVRUUklCVVRFX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDREFUQV9T
RUNUSU9OX05PREU6Ci0gICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05P
REU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6
CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDT01NRU5UX05PREU6CiAgICAgY2FzZSBXZWJDb3Jl
OjpOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggODcxMDVhOC4uODYzYTg1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQpAQCAtMjMyNCwxMSArMjMyNCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBc3Np
c3RhYmxlRWxlbWVudChFbGVtZW50JiBub2RlKQogICAgIGlmIChpczxIVE1MU2VsZWN0RWxlbWVu
dD4obm9kZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChpczxIVE1MVGV4dEFyZWFF
bGVtZW50Pihub2RlKSkKLSAgICAgICAgcmV0dXJuICFkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVt
ZW50Pihub2RlKS5pc1JlYWRPbmx5Tm9kZSgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBp
ZiAoaXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVu
dCYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obm9kZSk7CiAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGxhdW5kcnkgbGlzdCBvZiB0eXBlcyBpcyBub3QgYSBnb29kIHdh
eSB0byBmYWN0b3IgdGhpcy4gTmVlZCBhIHN1aXRhYmxlIGZ1bmN0aW9uIG9uIEhUTUxJbnB1dEVs
ZW1lbnQgaXRzZWxmLgotICAgICAgICByZXR1cm4gIWlucHV0RWxlbWVudC5pc1JlYWRPbmx5Tm9k
ZSgpICYmIChpbnB1dEVsZW1lbnQuaXNUZXh0RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRl
RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlVGltZUxvY2FsRmllbGQoKSB8fCBpbnB1dEVs
ZW1lbnQuaXNNb250aEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzVGltZUZpZWxkKCkpOworICAg
ICAgICByZXR1cm4gaW5wdXRFbGVtZW50LmlzVGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50Lmlz
RGF0ZUZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5w
dXRFbGVtZW50LmlzTW9udGhGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpOwog
ICAgIH0KICAgICByZXR1cm4gbm9kZS5pc0NvbnRlbnRFZGl0YWJsZSgpOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL2ZpbHRlci1idWlsZC13ZWJraXRfdW5pdHRlc3Qv
c2hvdWxkSWdub3JlTGluZV91bml0dGVzdHMucGwgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
ZmlsdGVyLWJ1aWxkLXdlYmtpdF91bml0dGVzdC9zaG91bGRJZ25vcmVMaW5lX3VuaXR0ZXN0cy5w
bAppbmRleCBlNTBjYmNkLi4zOWJhZDcxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHBlcmwvZmlsdGVyLWJ1aWxkLXdlYmtpdF91bml0dGVzdC9zaG91bGRJZ25vcmVMaW5lX3VuaXR0
ZXN0cy5wbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvZmlsdGVyLWJ1aWxkLXdlYmtp
dF91bml0dGVzdC9zaG91bGRJZ25vcmVMaW5lX3VuaXR0ZXN0cy5wbApAQCAtNTYsNyArNTYsNyBA
QCBDcmVhdGluZyBoYXNodGFibGUgZm9yIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25z
dHJ1Y3Rvci5jcHAKIFdyb3RlIG91dHB1dCB0byAvVm9sdW1lcy9EYXRhL0J1aWxkL1JlbGVhc2Uv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FeHBvcnRGaWxlR2VuZXJhdG9yLmNwcAogL0FwcGxpY2F0
aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Rvb2xjaGFpbnMvWGNvZGVEZWZhdWx0
LnhjdG9vbGNoYWluL3Vzci9iaW4vbGlidG9vbDogZmlsZTogL1ZvbHVtZXMvRGF0YS9CdWlsZC9B
TkdMRS5idWlsZC9SZWxlYXNlL0FOR0xFLmJ1aWxkL09iamVjdHMtbm9ybWFsL2kzODYvZGVidWcu
byBoYXMgbm8gc3ltYm9scwogU2hvd2luZyBmaXJzdCAyMDAgbm90aWNlcyBvbmx5Ci1wcmludGYg
IldlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleU1lc3NhZ2VFdmVudC5pZGxc
bldlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleU5lZWRlZEV2ZW50LmlkbFxu
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5pZGxcbldlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaWRsXG5XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0v
RE9NRmlsZVN5c3RlbVN5bmMuaWRsXG5XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01XaW5k
b3dGaWxlU3lzdGVtLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRGlyZWN0b3J5RW50
cnkuaWRsXG5XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlFbnRyeVN5bmMuaWRs
XG5XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlSZWFkZXIuaWRsXG5XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlSZWFkZXJTeW5jLmlkbFxuV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW0vRW50cmllc0NhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRW50cnkuaWRsXG5XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUFycmF5Lmlk
bFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlBcnJheVN5bmMuaWRsXG5XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUNhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW0vRW50cnlTeW5jLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRXJyb3JD
YWxsYmFjay5pZGxcbldlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVDYWxsYmFjay5pZGxc
bldlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVFbnRyeS5pZGxcbldlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtL0ZpbGVFbnRyeVN5bmMuaWRsXG5XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9GaWxlU3lzdGVtQ2FsbGJhY2suaWRsXG5XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxl
V3JpdGVyLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZVdyaXRlckNhbGxiYWNr
LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZVdyaXRlclN5bmMuaWRsXG5XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbS9NZXRhZGF0YS5pZGxcbldlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtL01ldGFkYXRhQ2FsbGJhY2suaWRsXG5XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9X
b3JrZXJDb250ZXh0RmlsZVN5c3RlbS5pZGxcbldlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9D
b29yZGluYXRlcy5pZGxcbldlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5p
ZGxcbldlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5pZGxcbldlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGxcbldlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsXG5XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
UG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01X
aW5kb3dJbmRleGVkRGF0YWJhc2UuaWRsXG5XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkFu
eS5pZGxcbldlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbFxuV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGxcbldlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeS5pZGxcbldlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRs
XG5XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmlkbFxuV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGxcbldlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5pZGxcbldlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uaWRsXG5XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5p
ZGxcbldlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFz
ZS5pZGxcbldlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5pZGxcbldlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaWRsXG5XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5pZGxcbldlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsXG5XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsXG5XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25DZW50ZXIuaWRsXG5XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsXG5XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Xb3JrZXJDb250ZXh0Tm90aWZpY2F0aW9ucy5pZGxcbldlYkNvcmUvTW9kdWxlcy9xdW90
YS9ET01XaW5kb3dRdW90YS5pZGxcbldlYkNvcmUvTW9kdWxlcy9xdW90YS9OYXZpZ2F0b3JTdG9y
YWdlUXVvdGEuaWRsXG5XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaWRsXG5XZWJD
b3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUVycm9yQ2FsbGJhY2suaWRsXG5XZWJDb3JlL01vZHVs
ZXMvcXVvdGEvU3RvcmFnZVF1b3RhLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VR
dW90YUNhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VVc2FnZUNhbGxi
YWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1dvcmtlck5hdmlnYXRvclN0b3JhZ2VRdW90
YS5pZGxcbldlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmlk
bFxuV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsXG5XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsXG5XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyQ2FsbGJhY2su
aWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbFxu
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxNZXJnZXJOb2RlLmlkbFxuV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxTcGxpdHRlck5vZGUuaWRsXG5XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
RGVzdGluYXRpb25Ob2RlLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0dhaW5Ob2RlLmlk
bFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuaWRsXG5XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bh
bm5lck5vZGUuaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5pZGxcbldl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5pZGxcbldlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0NvbnZvbHZlck5vZGUuaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRE9NV2lu
ZG93V2ViQXVkaW8uaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlOb2RlLmlkbFxu
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaWRsXG5XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGxcbldlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRsXG5XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaWRsXG5XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQW5h
bHlzZXJOb2RlLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlk
bFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVUYWJsZS5pZGxcbldlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZUNhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlU3lu
Yy5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5pZGxcbldlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFeGNlcHRpb24uaWRsXG5XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMUmVzdWx0U2V0LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFJlc3VsdFNldFJvd0xpc3QuaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3Rh
dGVtZW50Q2FsbGJhY2suaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVt
ZW50RXJyb3JDYWxsYmFjay5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbi5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNh
bGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uRXJy
b3JDYWxsYmFjay5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlv
blN5bmMuaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TeW5j
Q2FsbGJhY2suaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvV29ya2VyQ29udGV4dFdl
YkRhdGFiYXNlLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGxc
bldlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL0RPTVdpbmRvd1dlYlNvY2tldC5pZGxcbldlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dvcmtlckNvbnRleHRXZWJTb2NrZXQuaWRsXG5XZWJDb3JlL2Nzcy9DU1NDaGFyc2V0
UnVsZS5pZGxcbldlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbFxuV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2VSdWxlLmlkbFxuV2ViQ29yZS9jc3MvQ1NTSG9zdFJ1bGUuaWRsXG5XZWJD
b3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbFxuV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmlkbFxu
V2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaWRsXG5XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5pZGxcbldlYkNvcmUvY3NzL0NTU1J1bGUuaWRsXG5XZWJDb3JlL2Nzcy9DU1NSdWxlTGlzdC5p
ZGxcbldlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsXG5XZWJDb3JlL2Nzcy9DU1NT
dHlsZVJ1bGUuaWRsXG5XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmlkbFxuV2ViQ29yZS9jc3Mv
Q1NTU3VwcG9ydHNSdWxlLmlkbFxuV2ViQ29yZS9jc3MvQ1NTVW5rbm93blJ1bGUuaWRsXG5XZWJD
b3JlL2Nzcy9DU1NWYWx1ZS5pZGxcbldlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGxcbldlYkNv
cmUvY3NzL0NvdW50ZXIuaWRsXG5XZWJDb3JlL2Nzcy9ET01XaW5kb3dDU1MuaWRsXG5XZWJDb3Jl
L2Nzcy9Gb250TG9hZGVyLmlkbFxuV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmlkbFxuV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUxpc3QuaWRsXG5XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmlkbFxuV2ViQ29yZS9jc3MvUkdCQ29sb3IuaWRsXG5XZWJDb3JlL2Nzcy9SZWN0LmlkbFxuV2Vi
Q29yZS9jc3MvU3R5bGVNZWRpYS5pZGxcbldlYkNvcmUvY3NzL1N0eWxlU2hlZXQuaWRsXG5XZWJD
b3JlL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGxcbldlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZh
bHVlLmlkbFxuV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5pZGxcbldlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lUnVsZS5pZGxcbldlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1l
c1J1bGUuaWRsXG5XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsXG5XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NNaXhGdW5jdGlvblZhbHVlLmlkbFxuV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9u
UnVsZS5pZGxcbldlYkNvcmUvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlkbFxuV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmlkbFxuV2ViQ29yZS9kb20vQXR0ci5pZGxcbldl
YkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGxcbldlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5p
ZGxcbldlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuaWRsXG5XZWJDb3JlL2RvbS9DbGllbnRSZWN0
LmlkbFxuV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaWRsXG5XZWJDb3JlL2RvbS9DbGlwYm9h
cmQuaWRsXG5XZWJDb3JlL2RvbS9Db21tZW50LmlkbFxuV2ViQ29yZS9kb20vQ29tcG9zaXRpb25F
dmVudC5pZGxcbldlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvci5pZGxcbldlYkNv
cmUvZG9tL0N1c3RvbUV2ZW50LmlkbFxuV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGxc
bldlYkNvcmUvZG9tL0RPTUVycm9yLmlkbFxuV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
aWRsXG5XZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmlkbFxuV2ViQ29yZS9kb20vRE9NU3RyaW5n
TWFwLmlkbFxuV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGxcbldlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW1MaXN0LmlkbFxuV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRs
XG5XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbFxuV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsXG5XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmlkbFxuV2ViQ29yZS9kb20v
RG9jdW1lbnRUeXBlLmlkbFxuV2ViQ29yZS9kb20vRWxlbWVudC5pZGxcbldlYkNvcmUvZG9tL0Vu
dGl0eS5pZGxcbldlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGxcbldlYkNvcmUvZG9tL0Vy
cm9yRXZlbnQuaWRsXG5XZWJDb3JlL2RvbS9FdmVudC5pZGxcbldlYkNvcmUvZG9tL0V2ZW50RXhj
ZXB0aW9uLmlkbFxuV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5pZGxcbldlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0LmlkbFxuV2ViQ29yZS9kb20vRm9jdXNFdmVudC5pZGxcbldlYkNvcmUvZG9tL0hh
c2hDaGFuZ2VFdmVudC5pZGxcbldlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsXG5XZWJDb3Jl
L2RvbS9NZXNzYWdlQ2hhbm5lbC5pZGxcbldlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5pZGxcbldl
YkNvcmUvZG9tL01lc3NhZ2VQb3J0LmlkbFxuV2ViQ29yZS9kb20vTW91c2VFdmVudC5pZGxcbldl
YkNvcmUvZG9tL011dGF0aW9uRXZlbnQuaWRsXG5XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVy
LmlkbFxuV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaWRsXG5XZWJDb3JlL2RvbS9ET01OYW1l
ZEZsb3dDb2xsZWN0aW9uLmlkbFxuV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmlkbFxuV2ViQ29y
ZS9kb20vTm9kZS5pZGxcbldlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsXG5XZWJDb3JlL2RvbS9O
b2RlSXRlcmF0b3IuaWRsXG5XZWJDb3JlL2RvbS9Ob2RlTGlzdC5pZGxcbldlYkNvcmUvZG9tL05v
dGF0aW9uLmlkbFxuV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVudC5pZGxcbldlYkNvcmUvZG9tL1Bh
Z2VUcmFuc2l0aW9uRXZlbnQuaWRsXG5XZWJDb3JlL2RvbS9Qb3BTdGF0ZUV2ZW50LmlkbFxuV2Vi
Q29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbFxuV2ViQ29yZS9kb20vUHJvZ3Jlc3NF
dmVudC5pZGxcbldlYkNvcmUvZG9tL1Byb2dyZXNzRXZlbnQuaWRsXG5XZWJDb3JlL2RvbS9Qcm9w
ZXJ0eU5vZGVMaXN0LmlkbFxuV2ViQ29yZS9kb20vUmFuZ2UuaWRsXG5XZWJDb3JlL2RvbS9SYW5n
ZUV4Y2VwdGlvbi5pZGxcbldlYkNvcmUvZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNr
LmlkbFxuV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGxcbldlYkNvcmUvZG9tL1N0cmluZ0NhbGxi
YWNrLmlkbFxuV2ViQ29yZS9kb20vVGV4dC5pZGxcbldlYkNvcmUvZG9tL1RleHRFdmVudC5pZGxc
bldlYkNvcmUvZG9tL1RvdWNoLmlkbFxuV2ViQ29yZS9kb20vVG91Y2hFdmVudC5pZGxcbldlYkNv
cmUvZG9tL1RvdWNoTGlzdC5pZGxcbldlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5pZGxcbldl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsXG5XZWJDb3JlL2RvbS9VSUV2ZW50LmlkbFxuV2ViQ29y
ZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsXG5XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZs
b3cuaWRsXG5XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsXG5XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmlkbFxuV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsXG5XZWJDb3JlL2ZpbGVh
cGkvRmlsZS5pZGxcbldlYkNvcmUvZmlsZWFwaS9GaWxlRXJyb3IuaWRsXG5XZWJDb3JlL2ZpbGVh
cGkvRmlsZUV4Y2VwdGlvbi5pZGxcbldlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5pZGxcbldlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyLmlkbFxuV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5j
LmlkbFxuV2ViQ29yZS9odG1sL0RPTUZvcm1EYXRhLmlkbFxuV2ViQ29yZS9odG1sL0RPTVNldHRh
YmxlVG9rZW5MaXN0LmlkbFxuV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5pZGxcbldlYkNvcmUv
aHRtbC9ET01VUkwuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24uaWRsXG5XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVs
ZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1s
L0hUTUxBdWRpb0VsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5pZGxcbldl
YkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250
RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0
bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aWRsXG5XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsXG5XZWJDb3JlL2h0bWwvSFRNTERM
aXN0RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmlkbFxuV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MRGlhbG9n
RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5pZGxcbldlYkNv
cmUvaHRtbC9IVE1MRGl2RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRs
XG5XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxl
bWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbFxuV2ViQ29yZS9o
dG1sL0hUTUxGb250RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29s
bGVjdGlvbi5pZGxcbldlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEhl
YWRFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxlbWVudC5pZGxcbldlYkNv
cmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1l
bnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmlkbFxu
V2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxl
bWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5pZGxcbldlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaWRsXG5X
ZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmlkbFxuV2ViQ29yZS9o
dG1sL0hUTUxNZXRhRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50Lmlk
bFxuV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxPTGlz
dEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsXG5XZWJDb3Jl
L2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxl
bWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaWRsXG5XZWJDb3Jl
L2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVs
ZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5pZGxcbldlYkNvcmUvaHRt
bC9IVE1MUHJlRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50Lmlk
bFxuV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGxcbldlYkNvcmUvaHRt
bC9IVE1MUXVvdGVFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50Lmlk
bFxuV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxT
b3VyY2VFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxTcGFuRWxlbWVudC5pZGxcbldlYkNv
cmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRp
b25FbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmlkbFxuV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbFxuV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxUZW1w
bGF0ZUVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGxcbldl
YkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxUcmFja0Vs
ZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGxcbldlYkNvcmUvaHRt
bC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5p
ZGxcbldlYkNvcmUvaHRtbC9JbWFnZURhdGEuaWRsXG5XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9s
bGVyLmlkbFxuV2ViQ29yZS9odG1sL01lZGlhRXJyb3IuaWRsXG5XZWJDb3JlL2h0bWwvTWVkaWFL
ZXlFcnJvci5pZGxcbldlYkNvcmUvaHRtbC9NZWRpYUtleUV2ZW50LmlkbFxuV2ViQ29yZS9odG1s
L01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGxcbldlYkNvcmUvaHRtbC9SYWRpb05vZGVMaXN0LmlkbFxu
V2ViQ29yZS9odG1sL1RleHRNZXRyaWNzLmlkbFxuV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuaWRs
XG5XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGxcbldlYkNvcmUvaHRtbC9Wb2lkQ2FsbGJh
Y2suaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmlkbFxuV2ViQ29yZS9odG1s
L2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dy
YWRpZW50LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmlkbFxuV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNQcm94eS5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5pZGxcbldlYkNvcmUv
aHRtbC9jYW52YXMvRE9NUGF0aC5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZl
cnMuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5p
ZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbFxuV2ViQ29yZS9odG1sL2Nh
bnZhcy9GbG9hdDY0QXJyYXkuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRs
XG5XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFz
L0ludDhBcnJheS5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5p
ZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGxcbldlYkNv
cmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9P
RVNUZXh0dXJlSGFsZkZsb2F0LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
eU9iamVjdC5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsXG5XZWJDb3Jl
L2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFy
cmF5LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OENsYW1wZWRBcnJheS5pZGxcbldlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQy5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGxc
bldlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5pZGxcbldlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRGVwdGhUZXh0dXJlLmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVy
LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmlkbFxuV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyYnVmZmVyLmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
aWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbFxuV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xUZXh0dXJlLmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlv
bi5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGxc
bldlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1s
L3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2suaWRsXG5XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlkbFxuV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaWRsXG5XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
TGlzdC5pZGxcbldlYkNvcmUvaHRtbC90cmFjay9UcmFja0V2ZW50LmlkbFxuV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbFxuV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LmlkbFxuV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGxcbldl
YkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbFxuV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGxcbldlYkNvcmUvcGFnZS9BYnN0cmFjdFZpZXcu
aWRsXG5XZWJDb3JlL3BhZ2UvQmFySW5mby5pZGxcbldlYkNvcmUvcGFnZS9Db25zb2xlLmlkbFxu
V2ViQ29yZS9wYWdlL0NyeXB0by5pZGxcbldlYkNvcmUvcGFnZS9ET01TZWN1cml0eVBvbGljeS5p
ZGxcbldlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsXG5XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbFxuV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmlkbFxuV2ViQ29yZS9wYWdlL0hpc3Rvcnku
aWRsXG5XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRsXG5XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlk
bFxuV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbFxuV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
TmF2aWdhdGlvbi5pZGxcbldlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGxcbldlYkNv
cmUvcGFnZS9TY3JlZW4uaWRsXG5XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGxcbldl
YkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGxcbldlYkNvcmUvcGFnZS9TcGVlY2hJbnB1
dFJlc3VsdExpc3QuaWRsXG5XZWJDb3JlL3BhZ2UvV2ViS2l0UG9pbnQuaWRsXG5XZWJDb3JlL3Bh
Z2UvV29ya2VyTmF2aWdhdG9yLmlkbFxuV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmlkbFxu
V2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuaWRsXG5XZWJDb3JlL3BsdWdpbnMvRE9N
UGx1Z2luLmlkbFxuV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmlkbFxuV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2UuaWRsXG5XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmlkbFxuV2Vi
Q29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbFxuV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQu
aWRsXG5XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9T
VkdBbHRHbHlwaEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50
LmlkbFxuV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaWRsXG5XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29s
b3JFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsXG5XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5pZGxcbldl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5pZGxcbldlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
RW51bWVyYXRpb24uaWRsXG5XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaWRsXG5XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5pZGxcbldlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5pZGxcbldlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmlkbFxuV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmlkbFxuV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmlkbFxuV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmlkbFxuV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsXG5XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3QuaWRsXG5XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmlkbFxuV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxl
bWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0NvbG9yLmlkbFxuV2ViQ29yZS9zdmcvU1ZHQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVt
ZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdE
ZXNjRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmlkbFxuV2ViQ29yZS9zdmcv
U1ZHRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZS5pZGxcbldlYkNv
cmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRXhjZXB0aW9uLmlk
bFxuV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5pZGxcbldlYkNvcmUv
c3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5pZGxc
bldlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50Lmlk
bFxuV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcv
U1ZHRkVEcm9wU2hhZG93RWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50
LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdG
RUZ1bmNCRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmlkbFxuV2Vi
Q29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFu
Qmx1ckVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5pZGxcbldlYkNv
cmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVF
bGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5pZGxcbldlYkNv
cmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdo
dEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Lmlk
bFxuV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZH
RkVUaWxlRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaWRs
XG5XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmlkbFxuV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3
Qm94LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZUVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQu
aWRsXG5XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VTcmNFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVt
ZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaWRsXG5XZWJDb3Jl
L3N2Zy9TVkdHRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5pZGxcbldl
YkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0dyYWRpZW50
RWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5pZGxcbldlYkNvcmUvc3Zn
L1NWR0ltYWdlRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5pZGxcbldlYkNv
cmUvc3ZnL1NWR0xlbmd0aC5pZGxcbldlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaWRsXG5XZWJD
b3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5pZGxcbldlYkNvcmUvc3ZnL1NW
R01QYXRoRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaWRsXG5XZWJD
b3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR01hdHJpeC5pZGxcbldl
YkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR01pc3NpbmdH
bHlwaEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaWRsXG5XZWJDb3JlL3N2Zy9T
VkdOdW1iZXJMaXN0LmlkbFxuV2ViQ29yZS9zdmcvU1ZHUGFpbnQuaWRsXG5XZWJDb3JlL3N2Zy9T
VkdQYXRoRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR1BhdGhTZWcuaWRsXG5XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnQXJjQWJzLmlkbFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0FyY1JlbC5pZGxc
bldlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDbG9zZVBhdGguaWRsXG5XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnQ3VydmV0b0N1YmljQWJzLmlkbFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1JlbC5pZGxcbldlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaWRs
XG5XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmlkbFxuV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5pZGxcbldlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljU21vb3RoQWJzLmlkbFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNTbW9vdGhSZWwuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvQWJzLmlk
bFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMuaWRsXG5XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5pZGxcbldlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaW5ldG9SZWwuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxB
YnMuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaWRsXG5XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5pZGxcbldlYkNvcmUvc3ZnL1NWR1BhdGhTZWdNb3ZldG9B
YnMuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTW92ZXRvUmVsLmlkbFxuV2ViQ29yZS9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQb2ludC5pZGxcbldlYkNvcmUv
c3ZnL1NWR1BvaW50TGlzdC5pZGxcbldlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmlkbFxu
V2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5pZGxcbldlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5p
ZGxcbldlYkNvcmUvc3ZnL1NWR1JlY3QuaWRsXG5XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5p
ZGxcbldlYkNvcmUvc3ZnL1NWR1JlbmRlcmluZ0ludGVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmlkbFxuV2ViQ29yZS9z
dmcvU1ZHU2V0RWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmlkbFxuV2Vi
Q29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5pZGxcbldlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5p
ZGxcbldlYkNvcmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdTd2l0
Y2hFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5pZGxcbldlYkNvcmUv
c3ZnL1NWR1RSZWZFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmlkbFxu
V2ViQ29yZS9zdmcvU1ZHVGVzdHMuaWRsXG5XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR1Rl
eHRQYXRoRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQu
aWRsXG5XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm0uaWRsXG5XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmlkbFxuV2ViQ29yZS9zdmcv
U1ZHVHJhbnNmb3JtYWJsZS5pZGxcbldlYkNvcmUvc3ZnL1NWR1VSSVJlZmVyZW5jZS5pZGxcbldl
YkNvcmUvc3ZnL1NWR1VuaXRUeXBlcy5pZGxcbldlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaWRs
XG5XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdWaWV3RWxl
bWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmlkbFxuV2ViQ29yZS9zdmcvU1ZHWm9v
bUFuZFBhbi5pZGxcbldlYkNvcmUvc3ZnL1NWR1pvb21FdmVudC5pZGxcbldlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsXG5XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGxcbldl
YkNvcmUvdGVzdGluZy9NYWxsb2NTdGF0aXN0aWNzLmlkbFxuV2ViQ29yZS90ZXN0aW5nL01lbW9y
eUluZm8uaWRsXG5XZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25zLmlkbFxuV2ViQ29yZS93
b3JrZXJzL0Fic3RyYWN0V29ya2VyLmlkbFxuV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckNvbnRleHQuaWRsXG5XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmlkbFxuV2ViQ29yZS93
b3JrZXJzL1NoYXJlZFdvcmtlckNvbnRleHQuaWRsXG5XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlk
bFxuV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaWRsXG5XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTG9jYXRpb24uaWRsXG5XZWJDb3JlL3htbC9ET01QYXJzZXIuaWRsXG5XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5pZGxcbldlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlk
bFxuV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbFxuV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3RVcGxvYWQuaWRsXG5XZWJDb3JlL3htbC9YTUxTZXJpYWxpemVyLmlk
bFxuV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsXG5XZWJDb3JlL3htbC9YUGF0aEV4Y2Vw
dGlvbi5pZGxcbldlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbi5pZGxcbldlYkNvcmUveG1sL1hQ
YXRoTlNSZXNvbHZlci5pZGxcbldlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmlkbFxuV2ViQ29yZS94
bWwvWFNMVFByb2Nlc3Nvci5pZGxcbkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsXG5XZWJD
b3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbFxuIiA+IC4vaWRsX2ZpbGVzLnRt
cAorcHJpbnRmICJXZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlNZXNzYWdl
RXZlbnQuaWRsXG5XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlOZWVkZWRF
dmVudC5pZGxcbldlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24u
aWRsXG5XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmlkbFxuV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbS5pZGxcbldlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1TeW5jLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW0vRE9NV2luZG93RmlsZVN5c3RlbS5pZGxcbldlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0Rp
cmVjdG9yeUVudHJ5LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRGlyZWN0b3J5RW50
cnlTeW5jLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRGlyZWN0b3J5UmVhZGVyLmlk
bFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRGlyZWN0b3J5UmVhZGVyU3luYy5pZGxcbldl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJpZXNDYWxsYmFjay5pZGxcbldlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtL0VudHJ5LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50
cnlBcnJheS5pZGxcbldlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5QXJyYXlTeW5jLmlk
bFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlDYWxsYmFjay5pZGxcbldlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5U3luYy5pZGxcbldlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtL0Vycm9yQ2FsbGJhY2suaWRsXG5XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlQ2Fs
bGJhY2suaWRsXG5XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlRW50cnkuaWRsXG5XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlRW50cnlTeW5jLmlkbFxuV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW0vRmlsZVN5c3RlbUNhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRmlsZVdyaXRlci5pZGxcbldlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0
ZXJDYWxsYmFjay5pZGxcbldlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXJTeW5j
LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vTWV0YWRhdGEuaWRsXG5XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbS9NZXRhZGF0YUNhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW0vV29ya2VyQ29udGV4dEZpbGVTeXN0ZW0uaWRsXG5XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsXG5XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
bG9jYXRpb24uaWRsXG5XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRs
XG5XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsXG5X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGxcbldlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGxcbldlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJBbnkuaWRsXG5XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5pZGxc
bldlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaWRsXG5XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsXG5XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGxcbldl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsXG5XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaWRsXG5XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hh
bmdlRXZlbnQuaWRsXG5XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckNvbnRleHRJbmRl
eGVkRGF0YWJhc2UuaWRsXG5XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
aWRsXG5XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbFxuV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsXG5XZWJDb3JlL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbFxuV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvV29ya2VyQ29udGV4dE5vdGlmaWNhdGlvbnMuaWRsXG5XZWJDb3JlL01v
ZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuaWRsXG5XZWJDb3JlL01vZHVsZXMvcXVvdGEvTmF2
aWdhdG9yU3RvcmFnZVF1b3RhLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZv
LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VFcnJvckNhbGxiYWNrLmlkbFxuV2Vi
Q29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VRdW90YS5pZGxcbldlYkNvcmUvTW9kdWxlcy9xdW90
YS9TdG9yYWdlUXVvdGFDYWxsYmFjay5pZGxcbldlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdl
VXNhZ2VDYWxsYmFjay5pZGxcbldlYkNvcmUvTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3JT
dG9yYWdlUXVvdGEuaWRsXG5XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5
bnRoZXNpcy5pZGxcbldlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmlkbFxu
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGxcbldlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmlkbFxuV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlci5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
ckNhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNl
Tm9kZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsTWVyZ2VyTm9kZS5pZGxc
bldlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsU3BsaXR0ZXJOb2RlLmlkbFxuV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9H
YWluTm9kZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmlkbFxu
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9QYW5uZXJOb2RlLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW0uaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaWRs
XG5XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGxcbldlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0RPTVdpbmRvd1dlYkF1ZGlvLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5
Tm9kZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EeW5hbWljc0NvbXByZXNzb3JOb2Rl
LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaWRsXG5X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbFxu
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmlkbFxu
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbFxuV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaWRsXG5XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0FuYWx5c2VyTm9kZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hh
cGVyTm9kZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlVGFibGUuaWRsXG5XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsXG5XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VDYWxsYmFjay5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVN5bmMuaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXJyb3IuaWRs
XG5XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXhjZXB0aW9uLmlkbFxuV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFJlc3VsdFNldC5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9TUUxSZXN1bHRTZXRSb3dMaXN0LmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFN0YXRlbWVudENhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvU1FMVHJhbnNhY3Rpb24uaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJh
bnNhY3Rpb25DYWxsYmFjay5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsXG5XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25TeW5jLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5z
YWN0aW9uU3luY0NhbGxiYWNrLmlkbFxuV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1dvcmtl
ckNvbnRleHRXZWJEYXRhYmFzZS5pZGxcbldlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3Nl
RXZlbnQuaWRsXG5XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9ET01XaW5kb3dXZWJTb2NrZXQu
aWRsXG5XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsXG5XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJDb250ZXh0V2ViU29ja2V0LmlkbFxuV2ViQ29yZS9jc3Mv
Q1NTQ2hhcnNldFJ1bGUuaWRsXG5XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5pZGxc
bldlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGxcbldlYkNvcmUvY3NzL0NTU0hvc3RSdWxl
LmlkbFxuV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5pZGxcbldlYkNvcmUvY3NzL0NTU01lZGlh
UnVsZS5pZGxcbldlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmlkbFxuV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuaWRsXG5XZWJDb3JlL2Nzcy9DU1NSdWxlLmlkbFxuV2ViQ29yZS9jc3MvQ1NT
UnVsZUxpc3QuaWRsXG5XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbFxuV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVSdWxlLmlkbFxuV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5pZGxcbldl
YkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5pZGxcbldlYkNvcmUvY3NzL0NTU1Vua25vd25SdWxl
LmlkbFxuV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaWRsXG5XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3Qu
aWRsXG5XZWJDb3JlL2Nzcy9Db3VudGVyLmlkbFxuV2ViQ29yZS9jc3MvRE9NV2luZG93Q1NTLmlk
bFxuV2ViQ29yZS9jc3MvRm9udExvYWRlci5pZGxcbldlYkNvcmUvY3NzL01lZGlhTGlzdC5pZGxc
bldlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbFxuV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5pZGxcbldlYkNvcmUvY3NzL1JHQkNvbG9yLmlkbFxuV2ViQ29yZS9jc3MvUmVj
dC5pZGxcbldlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsXG5XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0
LmlkbFxuV2ViQ29yZS9jc3MvU3R5bGVTaGVldExpc3QuaWRsXG5XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NGaWx0ZXJWYWx1ZS5pZGxcbldlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaWRsXG5X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaWRsXG5XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NLZXlmcmFtZXNSdWxlLmlkbFxuV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmlkbFxuV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5pZGxcbldlYkNvcmUvY3NzL1dlYktp
dENTU1JlZ2lvblJ1bGUuaWRsXG5XZWJDb3JlL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5p
ZGxcbldlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5pZGxcbldlYkNvcmUvZG9tL0F0
dHIuaWRsXG5XZWJDb3JlL2RvbS9CZWZvcmVMb2FkRXZlbnQuaWRsXG5XZWJDb3JlL2RvbS9DREFU
QVNlY3Rpb24uaWRsXG5XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmlkbFxuV2ViQ29yZS9kb20v
Q2xpZW50UmVjdC5pZGxcbldlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmlkbFxuV2ViQ29yZS9k
b20vQ2xpcGJvYXJkLmlkbFxuV2ViQ29yZS9kb20vQ29tbWVudC5pZGxcbldlYkNvcmUvZG9tL0Nv
bXBvc2l0aW9uRXZlbnQuaWRsXG5XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50Q29uc3RydWN0b3Iu
aWRsXG5XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5pZGxcbldlYkNvcmUvZG9tL0RPTUNvcmVFeGNl
cHRpb24uaWRsXG5XZWJDb3JlL2RvbS9ET01FcnJvci5pZGxcbldlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmlkbFxuV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5pZGxcbldlYkNvcmUvZG9t
L0RPTVN0cmluZ01hcC5pZGxcbldlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsXG5XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGxcbldlYkNvcmUvZG9tL0RldmljZU1vdGlv
bkV2ZW50LmlkbFxuV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGxcbldlYkNv
cmUvZG9tL0RvY3VtZW50LmlkbFxuV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5pZGxcbldl
YkNvcmUvZG9tL0RvY3VtZW50VHlwZS5pZGxcbldlYkNvcmUvZG9tL0VsZW1lbnQuaWRsXG5XZWJD
b3JlL2RvbS9FcnJvckV2ZW50LmlkbFxuV2ViQ29yZS9kb20vRXZlbnQuaWRsXG5XZWJDb3JlL2Rv
bS9FdmVudEV4Y2VwdGlvbi5pZGxcbldlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaWRsXG5XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5pZGxcbldlYkNvcmUvZG9tL0ZvY3VzRXZlbnQuaWRsXG5XZWJD
b3JlL2RvbS9IYXNoQ2hhbmdlRXZlbnQuaWRsXG5XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50Lmlk
bFxuV2ViQ29yZS9kb20vTWVzc2FnZUNoYW5uZWwuaWRsXG5XZWJDb3JlL2RvbS9NZXNzYWdlRXZl
bnQuaWRsXG5XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5pZGxcbldlYkNvcmUvZG9tL01vdXNlRXZl
bnQuaWRsXG5XZWJDb3JlL2RvbS9NdXRhdGlvbkV2ZW50LmlkbFxuV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlci5pZGxcbldlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmlkbFxuV2ViQ29yZS9k
b20vRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5pZGxcbldlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5p
ZGxcbldlYkNvcmUvZG9tL05vZGUuaWRsXG5XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbFxuV2Vi
Q29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbFxuV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsXG5XZWJD
b3JlL2RvbS9Ob3RhdGlvbi5pZGxcbldlYkNvcmUvZG9tL092ZXJmbG93RXZlbnQuaWRsXG5XZWJD
b3JlL2RvbS9QYWdlVHJhbnNpdGlvbkV2ZW50LmlkbFxuV2ViQ29yZS9kb20vUG9wU3RhdGVFdmVu
dC5pZGxcbldlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGxcbldlYkNvcmUvZG9t
L1Byb2dyZXNzRXZlbnQuaWRsXG5XZWJDb3JlL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbFxuV2ViQ29y
ZS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGxcbldlYkNvcmUvZG9tL1JhbmdlLmlkbFxuV2ViQ29y
ZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsXG5XZWJDb3JlL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJh
bWVDYWxsYmFjay5pZGxcbldlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsXG5XZWJDb3JlL2RvbS9T
dHJpbmdDYWxsYmFjay5pZGxcbldlYkNvcmUvZG9tL1RleHQuaWRsXG5XZWJDb3JlL2RvbS9UZXh0
RXZlbnQuaWRsXG5XZWJDb3JlL2RvbS9Ub3VjaC5pZGxcbldlYkNvcmUvZG9tL1RvdWNoRXZlbnQu
aWRsXG5XZWJDb3JlL2RvbS9Ub3VjaExpc3QuaWRsXG5XZWJDb3JlL2RvbS9UcmFuc2l0aW9uRXZl
bnQuaWRsXG5XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbFxuV2ViQ29yZS9kb20vVUlFdmVudC5p
ZGxcbldlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbFxuV2ViQ29yZS9kb20vV2Vi
S2l0TmFtZWRGbG93LmlkbFxuV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbFxu
V2ViQ29yZS9kb20vV2hlZWxFdmVudC5pZGxcbldlYkNvcmUvZmlsZWFwaS9CbG9iLmlkbFxuV2Vi
Q29yZS9maWxlYXBpL0ZpbGUuaWRsXG5XZWJDb3JlL2ZpbGVhcGkvRmlsZUVycm9yLmlkbFxuV2Vi
Q29yZS9maWxlYXBpL0ZpbGVFeGNlcHRpb24uaWRsXG5XZWJDb3JlL2ZpbGVhcGkvRmlsZUxpc3Qu
aWRsXG5XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5pZGxcbldlYkNvcmUvZmlsZWFwaS9GaWxl
UmVhZGVyU3luYy5pZGxcbldlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5pZGxcbldlYkNvcmUvaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGxcbldlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaWRs
XG5XZWJDb3JlL2h0bWwvRE9NVVJMLmlkbFxuV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9u
LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hU
TUxBcHBsZXRFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5pZGxcbldl
YkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1l
bnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hU
TUxCYXNlRm9udEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmlkbFxu
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmlkbFxuV2ViQ29yZS9o
dG1sL0hUTUxETGlzdEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVu
dC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwv
SFRNTERpYWxvZ0VsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQu
aWRsXG5XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hU
TUxFbWJlZEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGxc
bldlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sc0NvbGxlY3Rpb24uaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbFxu
V2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmlkbFxuV2ViQ29yZS9o
dG1sL0hUTUxIZWFkRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0VsZW1lbnQu
aWRsXG5XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaWRsXG5XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxl
bWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hU
TUxMYWJlbEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaWRsXG5X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVt
ZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5pZGxcbldlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGxc
bldlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5pZGxcbldlYkNvcmUvaHRt
bC9IVE1MT0xpc3RFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50Lmlk
bFxuV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlk
bFxuV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxQ
YXJhZ3JhcGhFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaWRsXG5X
ZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsXG5X
ZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MU2NyaXB0
RWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGxcbldlYkNvcmUv
aHRtbC9IVE1MU291cmNlRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MU3BhbkVsZW1lbnQu
aWRsXG5XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1M
VGFibGVDYXB0aW9uRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVu
dC5pZGxcbldlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUVsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5p
ZGxcbldlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGxcbldlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaWRsXG5XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGxcbldlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaWRsXG5X
ZWJDb3JlL2h0bWwvSFRNTFVua25vd25FbGVtZW50LmlkbFxuV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvSW1hZ2VEYXRhLmlkbFxuV2ViQ29yZS9odG1sL01l
ZGlhQ29udHJvbGxlci5pZGxcbldlYkNvcmUvaHRtbC9NZWRpYUVycm9yLmlkbFxuV2ViQ29yZS9o
dG1sL01lZGlhS2V5RXJyb3IuaWRsXG5XZWJDb3JlL2h0bWwvTWVkaWFLZXlFdmVudC5pZGxcbldl
YkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsXG5XZWJDb3JlL2h0bWwvUmFkaW9Ob2Rl
TGlzdC5pZGxcbldlYkNvcmUvaHRtbC9UZXh0TWV0cmljcy5pZGxcbldlYkNvcmUvaHRtbC9UaW1l
UmFuZ2VzLmlkbFxuV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaWRsXG5XZWJDb3JlL2h0bWwv
Vm9pZENhbGxiYWNrLmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5pZGxcbldl
YkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNHcmFkaWVudC5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5p
ZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUHJveHkuaWRsXG5XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRs
XG5XZWJDb3JlL2h0bWwvY2FudmFzL0RPTVBhdGguaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL0VY
VERyYXdCdWZmZXJzLmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGxcbldlYkNv
cmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQx
NkFycmF5LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbFxuV2ViQ29yZS9o
dG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJ
bmRleFVpbnQuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
aWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGxcbldlYkNvcmUvaHRt
bC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdC5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvT0VT
VmVydGV4QXJyYXlPYmplY3QuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5Lmlk
bFxuV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGxcbldlYkNvcmUvaHRtbC9jYW52
YXMvVWludDhBcnJheS5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvVWludDhDbGFtcGVkQXJyYXku
aWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGxcbldlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEMuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVQVlJUQy5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVMzVEMuaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRs
XG5XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmlkbFxuV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xG
cmFtZWJ1ZmZlci5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5pZGxc
bldlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbFxuV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmJ1ZmZlci5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmlkbFxuV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5pZGxcbldlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaWRsXG5XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGxcbldlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbmlm
b3JtTG9jYXRpb24uaWRsXG5XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMuaWRsXG5XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5pZGxcbldl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaWRsXG5XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmlkbFxuV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5pZGxcbldl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmlkbFxuV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0xpc3QuaWRsXG5XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tFdmVudC5pZGxcbldl
YkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGxcbldlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGxcbldlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2Zp
bGUuaWRsXG5XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGxcbldlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsXG5XZWJDb3JlL3BhZ2UvQWJz
dHJhY3RWaWV3LmlkbFxuV2ViQ29yZS9wYWdlL0JhckluZm8uaWRsXG5XZWJDb3JlL3BhZ2UvQ29u
c29sZS5pZGxcbldlYkNvcmUvcGFnZS9DcnlwdG8uaWRsXG5XZWJDb3JlL3BhZ2UvRE9NU2VjdXJp
dHlQb2xpY3kuaWRsXG5XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbFxuV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGxcbldlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5pZGxcbldlYkNvcmUvcGFn
ZS9IaXN0b3J5LmlkbFxuV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbFxuV2ViQ29yZS9wYWdlL05h
dmlnYXRvci5pZGxcbldlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGxcbldlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZU5hdmlnYXRpb24uaWRsXG5XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcu
aWRsXG5XZWJDb3JlL3BhZ2UvU2NyZWVuLmlkbFxuV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0RXZl
bnQuaWRsXG5XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRsXG5XZWJDb3JlL3BhZ2Uv
U3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbFxuV2ViQ29yZS9wYWdlL1dlYktpdFBvaW50LmlkbFxu
V2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGxcbldlYkNvcmUvcGx1Z2lucy9ET01NaW1l
VHlwZS5pZGxcbldlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmlkbFxuV2ViQ29yZS9w
bHVnaW5zL0RPTVBsdWdpbi5pZGxcbldlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5pZGxc
bldlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmlkbFxuV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVu
dC5pZGxcbldlYkNvcmUvc3ZnL0VsZW1lbnRUaW1lQ29udHJvbC5pZGxcbldlYkNvcmUvc3ZnL1NW
R0FFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmlkbFxuV2Vi
Q29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJ
dGVtRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0FuZ2xlLmlkbFxuV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50Lmlk
bFxuV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5n
bGUuaWRsXG5XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaWRsXG5XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEVudW1lcmF0aW9uLmlkbFxuV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2Vy
LmlkbFxuV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaWRsXG5XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZExlbmd0aExpc3QuaWRsXG5XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5pZGxc
bldlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5pZGxcbldlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGxcbldlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVj
dC5pZGxcbldlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmlkbFxuV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmlkbFxuV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dC5pZGxcbldlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdD
bGlwUGF0aEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdDb2xvci5pZGxcbldlYkNvcmUvc3Zn
L1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZH
Q3Vyc29yRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmlkbFxuV2ViQ29y
ZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5pZGxcbldl
YkNvcmUvc3ZnL1NWR0VsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2Uu
aWRsXG5XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0V4
Y2VwdGlvbi5pZGxcbldlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaWRs
XG5XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVs
ZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaWRsXG5XZWJDb3Jl
L3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5pZGxcbldl
YkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdGRUZs
b29kRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmlkbFxuV2ViQ29y
ZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVu
dC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZH
RkVHYXVzc2lhbkJsdXJFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aWRsXG5XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZF
TWVyZ2VOb2RlRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
aWRsXG5XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdG
RVBvaW50TGlnaHRFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5pZGxcbldlYkNv
cmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VF
bGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5pZGxcbldlYkNvcmUvc3Zn
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5pZGxcbldlYkNvcmUvc3ZnL1NW
R0ZpdFRvVmlld0JveC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmlkbFxuV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3Jt
YXRFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5pZGxcbldl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50Lmlk
bFxuV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1l
bnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9T
VkdHcmFkaWVudEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaWRsXG5X
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2Uu
aWRsXG5XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaWRsXG5XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0
LmlkbFxuV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuaWRsXG5XZWJD
b3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmlkbFxuV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdNYXRy
aXguaWRsXG5XZWJDb3JlL3N2Zy9TVkdNZXRhZGF0YUVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9T
VkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmlkbFxuV2Vi
Q29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5pZGxcbldlYkNvcmUvc3ZnL1NWR1BhaW50LmlkbFxuV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnLmlkbFxu
V2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0FyY0Ficy5pZGxcbldlYkNvcmUvc3ZnL1NWR1BhdGhTZWdB
cmNSZWwuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ2xvc2VQYXRoLmlkbFxuV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5pZGxcbldlYkNvcmUvc3ZnL1NWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNSZWwuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21v
b3RoQWJzLmlkbFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5p
ZGxcbldlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmlkbFxuV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5pZGxcbldlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
bmV0b0Ficy5pZGxcbldlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmlk
bFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuaWRsXG5XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnTGluZXRvUmVsLmlkbFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0
b1ZlcnRpY2FsQWJzLmlkbFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVs
LmlkbFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnTW92ZXRvQWJzLmlkbFxuV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ01vdmV0b1JlbC5pZGxcbldl
YkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaWRs
XG5XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaWRsXG5XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxl
bWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5pZGxcbldlYkNvcmUvc3Zn
L1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsXG5XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdSZWN0LmlkbFxuV2ViQ29yZS9zdmcvU1ZHUmVj
dEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdSZW5kZXJpbmdJbnRlbnQuaWRsXG5XZWJDb3Jl
L3N2Zy9TVkdTVkdFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5pZGxc
bldlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVu
dC5pZGxcbldlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaWRsXG5XZWJDb3JlL3N2Zy9TVkdTdHls
ZUVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmlkbFxuV2ViQ29yZS9z
dmcvU1ZHU3dpdGNoRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaWRs
XG5XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR1RTcGFuRWxl
bWVudC5pZGxcbldlYkNvcmUvc3ZnL1NWR1Rlc3RzLmlkbFxuV2ViQ29yZS9zdmcvU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaWRsXG5XZWJDb3Jl
L3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmlkbFxuV2ViQ29yZS9z
dmcvU1ZHVHJhbnNmb3JtLmlkbFxuV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5pZGxcbldl
YkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuaWRsXG5XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVu
Y2UuaWRsXG5XZWJDb3JlL3N2Zy9TVkdVbml0VHlwZXMuaWRsXG5XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmlkbFxuV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmlkbFxuV2ViQ29yZS9zdmcv
U1ZHVmlld0VsZW1lbnQuaWRsXG5XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5pZGxcbldlYkNvcmUv
c3ZnL1NWR1pvb21BbmRQYW4uaWRsXG5XZWJDb3JlL3N2Zy9TVkdab29tRXZlbnQuaWRsXG5XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbFxuV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsXG5XZWJDb3JlL3Rlc3RpbmcvTWFsbG9jU3RhdGlzdGljcy5pZGxcbldlYkNvcmUvdGVz
dGluZy9NZW1vcnlJbmZvLmlkbFxuV2ViQ29yZS90ZXN0aW5nL1R5cGVDb252ZXJzaW9ucy5pZGxc
bldlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5pZGxcbldlYkNvcmUvd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJDb250ZXh0LmlkbFxuV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5pZGxc
bldlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0LmlkbFxuV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5pZGxcbldlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmlkbFxuV2ViQ29yZS93
b3JrZXJzL1dvcmtlckxvY2F0aW9uLmlkbFxuV2ViQ29yZS94bWwvRE9NUGFyc2VyLmlkbFxuV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsXG5XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbi5pZGxcbldlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGxc
bldlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmlkbFxuV2ViQ29yZS94bWwvWE1MU2Vy
aWFsaXplci5pZGxcbldlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbFxuV2ViQ29yZS94bWwv
WFBhdGhFeGNlcHRpb24uaWRsXG5XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb24uaWRsXG5XZWJD
b3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsXG5XZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5pZGxc
bldlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaWRsXG5JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVk
LmlkbFxuV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGxcbiIgPiAuL2lk
bF9maWxlcy50bXAKIHBlcmwgSmF2YVNjcmlwdENvcmUvZG9jcy9tYWtlLWJ5dGVjb2RlLWRvY3Mu
cGwgSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGRvY3MvYnl0ZWNv
ZGUuaHRtbAogY2F0IFdlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gV2ViQ29yZS9jc3Mv
U1ZHQ1NTUHJvcGVydHlOYW1lcy5pbiA+IENTU1Byb3BlcnR5TmFtZXMuaW4KIHJtIC1mIC4vaWRs
X2ZpbGVzLnRtcAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>261511</attachid>
            <date>2015-09-18 13:06:37 -0700</date>
            <delta_ts>2015-09-18 13:07:35 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews102 for mac-mavericks</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>302494</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
AAP6a/xVGGz8VXV4CwABBPUBAAAEUAAAAFBLAwQKAAAAAADRZjJHAAAAAAAAAAAAAAAAEAAcAGRv
bS9odG1sL2xldmVsMS9VVAkAA/pr/FUYbPxVdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAANRmMkcA
AAAAAAAAAAAAAAAVABwAZG9tL2h0bWwvbGV2ZWwxL2NvcmUvVVQJAAMAbPxVGGz8VXV4CwABBPUB
AAAEUAAAAFBLAwQUAAIACADRZjJHYKYrRo8AAACqAAAATQAcAGRvbS9odG1sL2xldmVsMS9jb3Jl
L2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1hY3R1YWwudHh0
VVQJAAP6a/xV+mv8VXV4CwABBPUBAAAEUAAAABXLsQ6DIBRG4RmfwhdQtN2YdWw1SmdD8LeSWDGX
i/Txa7czfEcjsBIr86GkTCmV6V56estbVdWy6R6FvkAxRseQG05stbSeIGdv4wc7u/00m5vtashY
BuFrcbDzuyUYxiUIi8hGNhyDEotxWyRkDfgqJXgln6Znp6fx1ffdoNtmaodB5SYEEGuKyP8P5uwH
UEsDBBQAAgAIANFmMkdDb2VX/AAAAF0CAABLABwAZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWRpZmYudHh0VVQJAAP6a/xV
+2v8VXV4CwABBPUBAAAEUAAAAM2OwW6DMBBEz/gruDvOhuTGCVVwqloioM0RuWZTLBmM7HWgf183
an+gh6qnHe3M7jwhRAqv1oQJPZSSJFSXFi749qjpezwEbQZo0KD0CEZ+2ECC0JNw6IMhD4OdYKTJ
gMEbmgyUdRiXKj6dSc83afSgRumkInS4KVxI21k5lIQx4fAqcFswusOeNmKc838BFa0gzR2pKFKR
7Y4pz3antCiY6GJXnoxESw6wrut+Pe2te4fj4ZBBWT/dA6INmvD3BEy0JCn4PGmDUug943/SmzD+
U3yV2gSHjJdIUeYJjc6u/XPd9e3L+Vw3XVX2VdPkqfQeHXUuYPp1hAP7BFBLAwQUAAIACADRZjJH
QBjDlWgAAAB2AAAATwAcAGRvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJh
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
D9OH3vqEzWU/iu/v7/u0nkO+xgrVCr5t0zqSAT6ipq3Mv59dj65t3YoZEPG5ag/cVUCPVNemTIvc
hPar242MBV1jTEX87jRTai3nYUi+kF2w4nyFi9ZUauhWYyGjkQy//F6CeAnHwVVwaV8CbC2DL/L0
Fvet9rv12jvHPAFfxxC2KPcXjLQO5rur68YSVMp+KIx48oI/mA+oN5Hy3bm7Cejvhdn4NvwV44k1
K1wSRcL73x7D3yD6O1X2531JWRJ+Qt4lEkJECrrTV4AVFq/vJVMyTNAi/XEyZLABNg6x+wccjEud
orTYIAIT/aUS2xgQsIthrZEUI90pQAkBqY9TJWGB2inUe9xWt/G16PxwprrFD43r271nLjAdEX21
8dpfhfZyWHIKJ1h9Ftj3Gue3Y/Qxzt+2pDD7mzJ/LiK5XvQKIo2f3z6h++ZvNEIQINvtNthOAi5W
Id4kxuHyw0++FvAfS6x//71T7fGIBLT7e1l/+R2sN9w2f/NYxjGWxa6e1c9wOLGuvB5LK3TUlCNq
8m+I+P8ukG/+s0h+V9svXw9jSigrBfwflZwMK7kEPJDN36gMWffzzx+ePj/+8vHjh09P98vP958+
IZ1J5GL1JErwtCGQvArHBh+c39rppuz+pyq9N6H5h5s/AFBLAwQUAAIACADRZjJHSv7ihpAAAACr
AAAATgAcAGRvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZjEtYWN0dWFsLnR4dFVUCQAD+mv8Vfpr/FV1eAsAAQT1AQAABFAAAAAV
y7EOgyAURuEZn8IXULTdmHVsNUpnQ/C3klgxl4v08Wu3M3xHI7ASK/OhpEwpleleenrLW1XVsuke
hb5AMUbHkBtObLW0niBnb+MHO7v9NJub7WrIWAbha3Gw87slGMYlCEstspENx6DEYtwWCVkDvkoJ
Xsmn6dnpaXz1fTfotpnaYVC5CQHEmiLy/4M5+wFQSwMEFAACAAgA0WYyR2+KHcn8AAAAYQIAAEwA
HABkb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25j
cmVhdGVlbnRyZWYxLWRpZmYudHh0VVQJAAP6a/xV+mv8VXV4CwABBPUBAAAEUAAAAM2OwW6DMBBE
z/gruDvOhuTGCVVwqloioM0RuWZTLBmM7HWgf183ar+gUtXTjnZmd54QIoVXa8KEHkpJEqpLCxd8
e9T0PR6CNgM0aFB6BCM/bCBB6Ek49MGQh8FOMNJkwOANTQbKOoxLFZ/OpOebNHpQo3RSETrcFC6k
7awcSsKYcHjNBG4LRnvY00aMc/4/qKIXpLkzFUUqst0x5dnulBYFE10sy5ORaMkB1nXdr6e9de9w
PBwyKOune0C0QRP+AoGJliQFnydtUAq9Z/xvihPGf5qvUpvgkPESKco8odHZtX+uu759OZ/rpqvK
vmqaPJXeo6POBUy/jnBgn1BLAwQUAAIACADRZjJHYc/xWmkAAAB3AAAAUAAcAGRvbS9odG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEt
ZXhwZWN0ZWQudHh0VVQJAAP6a/xV+mv8VXV4CwABBPUBAAAEUAAAAA3KMQ6DMAwF0BnuAibtlrlr
1SFcwDK/JVKaIMchPX5581tRzQ+72eGJeu9zv89FP3RbFkeP13NarzCFFg2UcCI5kqKgrUj7IlvM
J6e4yc7KYlD8BIfFkkXBhmso3m4MxtaqH0ITQa3jH1BLAwQUAAIACADRZjJHfYcXHdMHAADDGQAA
VAAcAGRvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlv
bmNyZWF0ZWVudHJlZjEtcHJldHR5LWRpZmYuaHRtbFVUCQAD+mv8Vfpr/FV1eAsAAQT1AQAABFAA
AADFWW1v2zgS/tz8CiHBXYBFJNlx3I3tNIdrnOCAu90WTXb3Y0FJI4sNJXpJynZ6d/99hyIpS7Lk
9HDF3RZbS+SQnJdn5hmqN5nK2e3JTQYkwZ8cFPHijAgJ6t15qVL/+hyHpXphcHsyZ7R4vvDmGyqp
gsT754mH/ynYKT+BmAuiKC/mXsELWFRTERcJCD/iSvF87o3XOy/BZ0gWJ/8+MdvZTWLOuJh7Z6PJ
rJoLHiiDJU1TOx+R+HkleFkkvhNNr/Wf5kHmBMkZTbyzJEnMXMoL5ackp+xl7uW84HJNYqtgTsSK
ospjyL2RGVpzNK6yQwBDizZQKZSNO5pOJpOe/SUppC9B0LQxKelXqM5oHuozSNXcGwVTN55QuWYE
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
AAAVy7EOgyAQgOEZnsIX0FO7MevYYoDOhNirmpBgjkNev3b7h+93mFmJnflUALXWrj66RBuMfT/A
pJ+tu0Fry8EIES+MA6yJEPbVB2bakK8QC45CWg5cshLfcMRCKCfku5TgnVL1L+28fS+LNm6e/GyM
akLOSOyoYPN/8CN/UEsDBBQAAgAIANJmMkfgM0ZC5wAAAOkBAAAuABwAZG9tL2h0bWwvbGV2ZWwx
L2NvcmUvaGNfYXR0cmdldHZhbHVlMi1kaWZmLnR4dFVUCQAD+2v8Vftr/FV1eAsAAQT1AQAABFAA
AAC9jbFugzAURWf8Fd4d8wLZmFAFU5UQAW1G5JrXgPSQI/s5pH/fNGrXTlWne4d7z9FaS3h1FBcM
UBk2UJ86OOHb88zf8RRnGqFFQhMQyHy4yJoxsPYYInGA0S0w8UJAeEXKwDqPMNnBMPsz8tVQxFzj
7YKWcUz5xkIp9V9eYzkaeljLUupsk0uVbXayLIXu77gimZgvBcC6rum6S50/Q77dZlA1+8dAd3Fm
/FUidMeGYyiSLlqLIQj1V+hEqB/2u5kpehSqQr7XIuHJu3U4NP3QvRyPTdvX1VC3bSFNCOi59xHl
1wlH8QlQSwMEFAACAAgA0mYyRws4b15VAAAAWQAAADIAHABkb20vaHRtbC9sZXZlbDEvY29yZS9o
Y19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dFVUCQAD+2v8Vftr/FV1eAsAAQT1AQAABFAAAAAN
yrEKgCAQBuC53iXPbHNujQbbQ45DA6HwfvP165u/QxR+yMDjiXrvpi/mromctTOt+zYdf5hCuyBU
5JUyE99VKPMZgZoEbyxN3BgQ0dQPoTGL6vgBUEsDBBQAAgAIANJmMkdxLMaZvwcAAGkZAAA2ABwA
ZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1wcmV0dHktZGlmZi5odG1sVVQJ
AAP7a/xV+2v8VXV4CwABBPUBAAAEUAAAAMVZbW/bthb+3PwKIcFugCGS7Djuje3Uw22c4AJ3XYsm
2z4GlERZbChRIynb6bb/fg/fZEmWnF6gwF2xWiIPyee8PofqTSZzujy5yTBK4CfHEnlxhrjA8t15
JVP/+hyGhXyheHkyp6R4vvDmGyKIxIn354kH/0m8k36CY8aRJKyYewUr8EJPRYwnmPsRk5Llc29c
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
Tdn9j66RN6H5F5b/AlBLAwQUAAIACADUZjJHem8wfHwAAACLAAAALgAcAGRvbS9odG1sL2xldmVs
MS9jb3JlL2hjX25vZGV2YWx1ZTAzLWFjdHVhbC50eHRVVAkAAwBs/FUAbPxVdXgLAAEE9QEAAARQ
AAAAFcuxDoMgFEDRGb7CH9CndWPGscUAnQnR12JCSgMP+f3a7Q7nWiwkWCD6CoDW2tDmIeU33MZx
Aqnuvb1Ab+pBCBFPjBNsKSOEzX3SjqePFceZcUOeahHs5Y9YM3KJdJVgFHJq7qGsM891Vdou0i1a
i86Xgplsrtj9H9z5D1BLAwQUAAIACADUZjJH6ewxZuYAAADhAQAALAAcAGRvbS9odG1sL2xldmVs
MS9jb3JlL2hjX25vZGV2YWx1ZTAzLWRpZmYudHh0VVQJAAMAbPxVAGz8VXV4CwABBPUBAAAEUAAA
AL2NsW6DMBRFZ/wV3h3zIGxMqIKpaomANiNyzWtBMnVkvxfSv28atWunqtO9w73naK0lPHvHK0ao
DRlojj0c8eV+oe+448VN0KFDExGc+fBMmjCSDhjZUYTJrzDT6sDhGV0O1geE2Y7vfsKzcYxZofFy
Qks4pXQhoZT6H6uxxMbdnFUldb7bS5XvCllVQg9XWJnMRKcSYNu2dCtSH95gn2U51O3DbaB7Xgh/
UQjdkyGOZdKztRijUH8DToT6Ib+axXFAoWqkay0TmoPfxsd2GPunw6HthqYem64rpYkRAw2BUX6d
cBKfUEsDBBQAAgAIANRmMkckQoPIVAAAAFcAAAAwABwAZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNf
bm9kZXZhbHVlMDMtZXhwZWN0ZWQudHh0VVQJAAMAbPxVAGz8VXV4CwABBPUBAAAEUAAAAA3KsQqA
IBAA0Fn/RU9zc26NBt1D7MhAMvTU3683P4+NLEtErwWYc8ppZKkXLEppWPdN+D8I129CyDgwa4il
IqR4POXEEXJHZbijQL1Z5nqM2Br/AFBLAwQUAAIACADUZjJH94jhEL0HAABjGQAANAAcAGRvbS9o
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLXByZXR0eS1kaWZmLmh0bWxVVAkAAwBs/FUA
bPxVdXgLAAEE9QEAAARQAAAAxVltb9u2Fv7c/AohwW6AIZLsOO6N7dTDbZzgAnddiybbPgaURFls
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
oJ5hp/mbhyqOobB1ceqfYX9BZXjdWVboqCpHYLJvcOl39NSb/81V31W5y9f9lCJCK47/jyAnwyBX
GA6k8zcyA2J8+uXj49PDr58+ffz8eLd6uvv8GRhHAF3KR15hTymCk1fjrVGyz5d2uim7/9HV8SY0
/7byX1BLAwQKAAAAAADSZjJHAAAAAAAAAAAAAAAACAAcAGRvbS9zdmcvVVQJAAP7a/xVGGz8VXV4
CwABBPUBAAAEUAAAAFBLAwQKAAAAAADSZjJHAAAAAAAAAAAAAAAADwAcAGRvbS9zdmcvbGV2ZWwz
L1VUCQAD+2v8VRhs/FV1eAsAAQT1AQAABFAAAABQSwMECgAAAAAA0mYyRwAAAAAAAAAAAAAAABUA
HABkb20vc3ZnL2xldmVsMy94cGF0aC9VVAkAA/xr/FUYbPxVdXgLAAEE9QEAAARQAAAAUEsDBBQA
AgAIANJmMkfxLy2vfwAAALsAAABJABwAZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0
b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItYWN0dWFsLnR4dFVUCQAD+2v8Vftr/FV1eAsA
AQT1AQAABFAAAAB9jLsKAjEQRfv9imGb7ILsB1ibwsYNMYJdCMkEAzpZxomwf++r1u5wOfecTZCL
foRrC1LZ45fQH2bnjydjZuv0zmtrO7cuqJkrbyHVOEXGl6dJiqwWMzJSRCh3oCoQIDeKUipNMOwJ
1M/H0ONnoHDDflSbP6p61xslzIUwjd0TUEsDBBQAAgAIANJmMkd9NroW7gAAAB8CAABHABwAZG9t
L3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9F
UlItZGlmZi50eHRVVAkAA/tr/FX7a/xVdXgLAAEE9QEAAARQAAAAxU6xboMwFNz5CisLiYix0m6Z
UBWGqlKDgDbdkGOOFsnYyH5G8PdN066tsnW5O53uTsc5Z+LV6jDAi4MkKfJTJU44P/X0Qw+h160o
oSE9hJaLDcQJnriDD5q8aO0g/PQuNCboezGPkj7EW3HBfJI6SLKuwbdC83ysm+qlKI5lnR+avCw5
5hGK0KY0U5Qkyb8fkoqC1Nc7Wcb4jiW77R3LsojfvLFnVVAK3kfJzZ0oqZcRuXPW7VlrVaocLsHc
UE9LiQ4ORoH1nhlLTLIuGEW9NSlbPxoW/9pYr3A1jByw2sTbP6Lx13owLbreoN1En1BLAwQUAAIA
CADSZjJHAphLXTAAAAAzAAAASwAcAGRvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9y
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dFVUCQAD+2v8Vftr/FV1eAsA
AQT1AQAABFAAAACLCEgsyXAtS8wpTSzJL4pPhbBS4/38Q+KDQwMC/INCXF3iXYOCrBSCS5OTU4uL
uQBQSwMEFAACAAgA0mYyR8p9J8HCBwAAdxgAAE8AHABkb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0
aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1wcmV0dHktZGlmZi5odG1sVVQJ
AAP7a/xV+2v8VXV4CwABBPUBAAAEUAAAAL1ZbXPbuBH+7l/Bsafx3Y1JSZaVWlKiTmPL007bu4zt
9vrNA5JLCTFI6ABQltP2v3fxRpEUKbtfepmLSGABPPv27IL5tFY5W5x8WgNJ8ScHRYJkTYQE9fm8
VFl4fY7DUr0yWJzMGC2eL4LZlkqqIA3+dRLgfwp2Kkwh4YIoyotZUPAC5mYq5iIFEcZcKZ7PgtFm
F6T4DOn85D8ndju3ScIZF7PgbDiemrnojjK4pVnm5mOSPK8EL4s09KLZtf5TP8ieIDmjaXCWpqmd
y3ihwozklL3OgpwXXG5I4gDmRKwoQh5BHgzt0IajckYPAQw12oIBtB61kI7H4479JSlkKEHQrDYp
6XcwZ9QPDRlkahYMo4kfT6ncMIKb0AIt4xC+0FStcfFw+DuHj6QpLVbVSovNuUY/Nb3j4NJijaBU
Jb7mWxAtjSaTybzP2ADWDJH2yV/xLOkWZ4wTVEPQ1Vo1PaelblB9grr4ozianipUcdhSWZGYQZgA
Yw0tQ7Nvw0ova9QuND7UofYiyGaP7AES7bveoDGLmyHTDhcXs97uGFDDzc6esNxt0L24P6oGF0Gk
f9oa9sKTNIX4Vf8dGKhfGE+evxKhIlR1llEhVZisKUt7DauPe8D1F8c2E5Cjay/eOM+d4c1vAy6M
tUgj7CY+6jBaFE0ICwmjK8wNxTvUEqAj/U+kSBl4c7h9tAn1+xqsQ/fxnJRCatdo2O0MJDF6p/Qe
wzOrwLHJY+AdQ9GI88NwWAl4nbcCM5q85S9r4iBS/E0zR5ngecvYjh/1GdrqP5d5DAKjCerRZUc9
8EMadVE7nTYI0KdLFw36TL66uuqkm7r3K47RG01sCtg0qAjfxYELz64QsXAb4TR2hFVT3KjYSTi2
SPSa5QhJbYTOTg3TGdCziYsar0gjV3FRaLPVTKE9zSvqIYA8h3rAAqI5WUHDM7PgsjJ4zIi2ohZM
kBoQA0JxT0Fb771Xrq+mvdybQbYnAB1WuGNVHmvZ3LE0zdLmUnS27BefwnR+rKZXOzmWqeNwWdFf
rtP0YIMgBda/AqZvohn8FDyUmw0XCiutcJGMRs1zKJQMfhrgeaRUa27tbauxbmYw6hXGaeI9ZRYY
mZ76X8loMARDwgh7OvvoA1vTDWHsxiPolL60tSwnu7BV3nPsC9zQ5bCqO+2j0e5Hz6kyu0rpxjFd
OCO+AVs2wxeIn6kKldBpZy1hgQfRpZzX1LhySp9JRVQpv5Qx1vCqHkY6ezrh6CWKcxYT0Zz3R2cM
TIbuJ3L+vRqtyGls89j1UfrRdwv6ub8l7GOOo63cPiwyugO7j+PjYVOliJgexKbZYRV/ocgFohVq
1Z7fQ1qksEOSOqLavhDWIHTp5cioUd6uHYsVGqZL2M7ShOfFfPcm0I97oCMbxL4I2TcD1j1XFcy9
VoCrzqxxNM0EyS3CVp4024hajtz0MO2hbV6x1+QvrtYDw8YRe+Z3FKaP07t9eLma3DNpDNGcq9rI
9LA9bjbHbg9rvsMY7m0JUs+z9pg/elLwV51hffbR18jWneTj7z2hHcI8kiS1247Mie3l65xbcIHD
8x6WcfrrFkx2HW718Hk97BJhJAY2Ixlm2MXBcjtuNjEFuUBVT4N/B6fzk6oQ18p3ezUj2KHzLFSv
G+jc6rQXkRNsXXHXwAxBVs0o0c1oT406y0FK33j02rnLLbXseDBE/Z5SiCUGG6It5aW8qUawmf0O
xU2tWHbVed9ytEtMvbhoLseoNZHgud29u0h0JDL2NfBdaFxoYI8DSudEo1y4tq+n6avX2bjErCrq
vOPre0q3s4wnzoa8VJov6ukXs9JUEjeF8ZIhFqxgI69IvViaXbCHeVyDPWngKu0K8WsdFA8UzsVW
2oWaDLaUaE5Wf3MxgWBjwV/Q4dgJrAmudU0RVZFugio9riaui69aEffu2UE3svr/YbOI+k867R4/
pynesqxi2kHSX747Kgr2YVySLdoeLQCtulK/6R2UunAUjW3LtP/44at/hw/Obm9vayl9dn13eze5
6+QnbC67o3i5XHahnkG+QYZqON+1aS3JCB8RaSPzl9Pr4bXjrYQBEU+mPfBXAT1irk1rLfJp4L66
fZKJoBv0qUg+n66V2sjZYEC+kV204nyFizZU6tA1YwNGYzn49lsJ4nUwiq6iS/cSYWsZfZOnC9zX
7LcImjsnPIVQ+xBeUO4P6GntzM9X17UlCMp9KIx5+oo/mA+Im0j5+dzfBPT3wvVoMfgH+hM5a3BL
FBksf30Y/ArxX6hyP19KytLBPdZdImGAkYLmDBUgw+L1vWRKDlLUSG5XAwZbYOMBlitMj39+xb+X
W8JKorh4AvsETz//8vj08PevX3+5f1zePi3v70PsbkrCIrVTiHnUhFr7UnR+OGNu8H3j+mYf2MtL
S0Rfa4LmF6G9HNJN4QXNJ4F9n3G+GKF9cX7RkMLMr8t8KGK5mXcKYgk/X7zbMDO8MCUJ8obbC12K
Sviffp0x8d5W2Akd1faIJvwdZvnftG0r+X+Ef9kP/xE7iKUQmhNSnkQJtmgKloXC5uceMhBQJBBQ
idyJdg+ysjChGgU//LkIPpxh+9C76ocPv5VczcGMFtg82/cfzaqLNxabWX0uEiFkqEr645tBUqOx
84WbrsvufwxjYC6af2/4L1BLAwQUAAIACADSZjJHS/4W/4EAAAC8AAAASgAcAGRvbS9zdmcvbGV2
ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1hY3R1
YWwudHh0VVQJAAP8a/xV/Gv8VXV4CwABBPUBAAAEUAAAAH2MsQrCMBRF937Fo0takH6AsxlcbIkR
3EJIbzGgLyV5Ffv3VnddD+ec6+Dlpl9zRikxscPT3xcvcKfeuvNlGHpj9cFpYyq7ztA5p7ynMYUu
ZGyeZomyGkzI4ACKhTgJeZoWDrIdO2qOTOpn0dT4AvYP1K3a/VHV577wiCkyxrZ6A1BLAwQUAAIA
CADSZjJHsM0rFvIAAAAjAgAASAAcAGRvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lv
bl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1kaWZmLnR4dFVUCQAD/Gv8Vfxr/FV1eAsAAQT1
AQAABFAAAADFjrFqwzAURXd/hcjiBEUWabdMpkRDKTTGdptuRpWeW4EsGenJ2H9fN3RtydblXXic
e7iMMcJfvU0DRH6SKLm4NPwC708Gf+IhGat5DRZkBG7l4hMyhIgsQEwWI9d+4HH64BYmsPd8HiV+
8rdqvWIeVyga7zqYpE0SoXs+t13zUlXnuhWnTtQ1g3kEhaALnDGjlP7/IqkwSXvdU5aEHQg97O9I
WWbsdsmRNEmpFcvo7aWMtssIIgQfjkR7VagAKygcGlxq6CGAU0BMJM4jkaRPTuGqLMj20ZH818Z2
A9eHkwNsdvn+DzT/tienoTcO9C77AlBLAwQKAAIAAADSZjJHQKiQvzQAAAA0AAAATAAcAGRvbS9z
dmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VS
Ui1leHBlY3RlZC50eHRVVAkAA/xr/FX8a/xVdXgLAAEE9QEAAARQAAAAWFBhdGhFeHByZXNzaW9u
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSOiBTdWNjZXNzClBLAwQUAAIACADSZjJHsM7ei8MH
AAB6GAAAUAAcAGRvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9O
T1RfU1VQUE9SVEVEX0VSUi1wcmV0dHktZGlmZi5odG1sVVQJAAP8a/xV/Gv8VXV4CwABBPUBAAAE
UAAAAL1ZbXPbuBH+7l/Bsafx3Y1JSZaVWlKiTmPL007bu4zt9vrNA5JLCTFI6ABQltP2v3fxRpEU
KbtfepmLSGABPPv27IL5tFY5W5x8WgNJ8ScHRYJkTYQE9fm8VFl4fY7DUr0yWJzMGC2eL4LZlkqq
IA3+dRLgfwp2Kkwh4YIoyotZUPAC5mYq5iIFEcZcKZ7PgtFmF6T4DOn85D8ndju3ScIZF7PgbDie
mrnojjK4pVnm5mOSPK8EL4s09KLZtf5TP8ieIDmjaXCWpqmdy3ihwozklL3OgpwXXG5I4gDmRKwo
Qh5BHgzt0IajckYPAQw12oIBtB61kI7H4479JSlkKEHQrDYp6XcwZ9QPDRlkahYMo4kfT6ncMIKb
0AIt4xC+0FStcfFw+DuHj6QpLVbVSovNuUY/Nb3j4NJijaBUJb7mWxAtjSaTybzP2ADWDJH2yV/x
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
bS94aHRtbC9sZXZlbDEvY29yZS9VVAkAAwFs/FUYbPxVdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAI
ANJmMkcFSUbIlAAAAKsAAABOABwAZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1hY3R1YWwudHh0VVQJAAP7a/xV+2v8VXV4
CwABBPUBAAAEUAAAABXLQQqDMBRF0bGuwg1oajtzJipUqC2odCohPjVgjfz8mC6/dnzP7WE5WJj3
TAjvfeJviaFZXC+XVJSvJu7PHndOM8SKA2sqlCGI0Sj3wcZ6O+SqR7VIkopB+CrsrM2mCJJxCsIU
dizZ2WCSenWEsIG1ckbACxk/1M93/qjLobjnbV70VTtUbZtF0loQ9+QQ/T+M4Q9QSwMEFAACAAgA
0mYyR5lF+5r7AAAA+AEAAEwAHABkb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWRpZmYudHh0VVQJAAP7a/xV+2v8VXV4CwAB
BPUBAAAEUAAAAM2OTW7CMBBG18kpvA9mCOxYJSWRilpaKUGwjKbOQCwZjOwxSW9fU3GCrroazffm
50kpBRysCRfyUCEj1McWjvT1pvlZXoI2PTRkCD2BwW8bWDJ5lo58MOyhtxeYBr4YMHQnk4OyjmKq
4tUr6+sdje7VgA4Vk6NJ0Y21vSpHyBQnHJ0kTTeKtJ/zxGmWZf/DKqKA5tepKITMZ0uR5bOVKIpU
7OOzZGC+rQHGcZyPq7l1Z1guFjlUnzv54LINmunvAqlsGTn4pA1Kkfdp9uxPqE1wlGa7mOKZEh6c
Hbvtx6F831bd5rVsys2+brq6adYCvSfHexdIPBapT38AUEsDBBQAAgAIANJmMkdS4h35ZwAAAHQA
AABQABwAZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHRVVAkAA/tr/FX7a/xVdXgLAAEE9QEAAARQAAAA
DcoxEoIwEAXQGu4CC9pZ2zoW4QKZ5SuZiQmz+SEcX+r3FhR2G7k/RFprY7uP2b5ym6ZZnu/XsFw+
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
jbW9KkfIFCccnXJJ040i7uc8cZpl2T/Riiyg+ZUqCiHz2VJk+WwliiIV+/gtGZhva4BxHOfjam7d
GZaLRQ7V504+uGyDZvqDQSpbRg4+aYNS5H2aPfsTahMcpdkupnimhAdnx277cSjft1W3eS2bcrOv
m65umrVA78nx3gUSj0Xq0x9QSwMEFAACAAgA0mYyRy6BMzxnAAAAdQAAAFEAHABkb20veGh0bWwv
bGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVm
MS1leHBlY3RlZC50eHRVVAkAA/tr/FX7a/xVdXgLAAEE9QEAAARQAAAADcoxDoMwDAXQGe4CJmXr
3LXqEC5gmU+JlCbIcQjHL/N7C4p1u9nxJGqtjW0es37pMU2OXp/3sNw++BoMFHEiOpKsoDVL/SFZ
SCfHsMrOymJQXILDQk6iYMM9FJvrvbHV0vkqglL6P1BLAwQUAAIACADSZjJHofcTldgHAAAjGQAA
VQAcAGRvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYxLXByZXR0eS1kaWZmLmh0bWxVVAkAA/tr/FX7a/xVdXgLAAEE9QEAAARQ
AAAAvVltb+M2Ev68+RVCgjZAEUl2HO/F9m6K3bygxbW9QxK0HxeUNLK4oUQfSdnO3t1/v6FIypIs
2TkUaBddS+SQnJdn5hlqP2QqZzcnHzIgCf7koIgXZ0RIUB/PS5X61+c4LNUrg5uTOaPFy4U3X1NJ
FSTev088/E/BVvkJxFwQRXkx9wpewKKairhIQPgRV4rnc2+82noJPkOyOPnvidnObhJzxsXcOxtN
ZtVc8EAZ3NE0tfMRiV+WgpdF4jvR9Fr/aR5kTpCc0cQ7S5LEzKW8UH5Kcspe517OCy5XJLYK5kQs
Kao8htwbmaEVR+MqOwQwtGgNlULZuKPpZDLp2V+SQvoSBE0bk5J+g+qM5qE+g1TNvVEwdeMJlStG
cBNaoGeshhuaqAwXj0bfWf1IktBiWa80utnQ6Kd2dKy6tMhQKVWLZ3wNomPRdDpdDDkbwLgh0DH5
Bc+SdnHKOEEzBF1mqh05LXWL5hO0xR3F0fVUoYmjjsmKRAz8GBhrWelX+7a8tMnQOr+KoYbaRpDV
TrMniHXsBkFTLW5DpgsXi1nndwTUaLU1J9xvVxhe3B9Ngwsv0D9dCwfVkzSB6FX/7VWqfmY8fvkn
ESpAU+cpFVL5cUZZMuhYfdwTrr84tJmAHEN7ceQ8e4ZzvwGcH2mRFuymDnWIFkVjwnzC6BJzQ/Ee
swRopP9EioSBc4fdR7tQv2dgArrDc1wKqUOj1e5mIIkwOqWLGJ5ZA8ckT6XeIS1aON+Hw1LA66ID
zGB6LF7GxV6g+FE3B6ngecfZtj7qM7TXfyvzCASiCZroMqNO8f0yalE7m7UKoEuXvjLoMvnq6qq3
3DSjX9cYvdHUpIBJg7rgWxxYePZBxKjbgtPEFqyG4ZWJvQXHkMSgWw4UqZXQ2anVtA501cSixhnS
ylVc5JtsrabQn9Ur2iGAvPh6wChEc7KEVmTm3mXt8IgR7UUtGGNpQB1QFfvkde3eReX6ajZYe1NI
dwVAwwp3rOmxkc09S5M0aS/FYMth8RnMFoc4vd7JVpmmHjYrhuk6SfY28BJgwytgdlSb8AfvqVyt
uFDItMIiGZ2a51Ao6f0Q4nmkVBk3/jZsrJsZRL1CnMYuUtWCSmaA/2sZrQxBSFTCrpy9d8DW5YYw
dus06JW+NFyWk63fofcc+wI7dDmqead7NPr94Dl1Ztcp3TqmT8+Ar8DQpr+B6IUqXwmddsYTRnEv
uJSLhhlX1ugzqYgq5ecyQg6v+TDQ2dOrjl6iOGcREe15d3TKoMrQ3UTOv9WjdXGamDy2fZR+dN2C
fh5uCYcqx8FWbgeLlG7B7GPr8ahtUkCqHsSk2T6LbyjWAtGBWr3nN58WCWyxSB0wbUeEDRX67LLF
qEVv17aKFVpNm7C91ITnRXx7VNH3O0XHBsSOhMxbpax9rhnMvtYK151Z62iaCpIbDTt50m4jGjly
O1Bp933zir0m31iuB4aNI/bMbyCm97OHHbwsJw9MVo5oz9VtZLLfHrebY7uHcd8+hgdbgsTVWXPM
J1cU3FVn1Jx9dhzZuZO8/5sraPtqHkiSxm1H5sT08s2aW3CBw4uBKmPt1y2Y7Dvc2OHyetQnwkgE
bE5SzLCLveVmvNqkIuQCTT31/uOdLk5qIm7Qd3c1I9ih89RXryvo3ep0UCMr2LniZsCqAlk3o0Q3
owMcdZaDlK7xGPRzX1ga2fFUFeq3UCFSDDZEa8pLeVuPYDP7DYrbBln28bxrOboU0yQXXcsRtRUS
XG237xaJtohMHAe+SRsLDexxQOmcaNGFbfsGmr4mz0YlZlXRrDuO3xO6nqc8tj7kpdL1opl+ESsr
JrFTiJcUdUEGGztDmmRZ7YI9zHMG5qTQMu0S9dc2KO4pnIuMtIWa9NaU6JqsfrWYQGUjwTcYcOwE
MoJrbVNEVaCboNqOq6nt4utWxL676qAbWf3/qE2i7pNOt8fPaYK3LGOYDpB0l+8eRsE+jEuyRt+j
B6DDK82b3h7V+eNgYlqm3ccPx/49MTi7u7trpPTZ9cPdw/Shtz5hc9mP4vv7+z6t55CvsEK1gm/b
tI5kgI+oaSvz72fXo2tbt2IGRHyp2gN3FdAj1bUp0yIfQvvV7YOMBV1hTEX88TRTaiXnYUi+km2w
5HyJi1ZUauhWYyGjkQy//qsE8RqOg6vg0r4E2FoGX+XpDe5b7XfjtXeOeQK+jiFsUO5HjLQO5ser
68YSVMp+KIx48oo/mA+oN5Hy47m7Cejvhdn4Jvwd44k1K7wjioT3fzyFf0D0d6rsz+eSsiR8RN4l
EkJECrrTV4AVFq/vJVMyTNCirf46GTJYAxuH2P4DjsalzlFarBGCif5UiX0MCNjGsNJQipHvFKCE
gHTs41xJWKC2CjUftxVufC8635+p7vFD4/p+70k8G5KOiL7ceK3vQtX3U+RaJ1F9Edi1Gec3Y3Qv
zt+0pDDxj8sgeZ/fPKPT3mlYICo2m02wmQRcLEO8PozDu3/86ut5/6nEovcnHGmPx/ijre6naXcD
zuc3dtrK/t+ONXfDo45tyB307+Ub/Pt9EcnVYtjJhjjfPZVxjCX3qDfa9mDNOm6MFTpoyQEt+RtM
blqSEspKAV1L/kIdJ8M6Wlp7pzIktS8///b7p19+vvty+9Onx0+3z/ePX+4fH5ExJNKdehYleNoY
SP4MRjs/VXXDilH928j/AFBLAwQUAAIACADSZjJHQI+Bk6AAAADpAAAAMQAcAGRvbS94aHRtbC9s
ZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWFjdHVhbC50eHRVVAkAA/xr/FX8a/xVdXgLAAEE
9QEAAARQAAAAfYyxCoMwFEVn/YrgooVq1G7OdegghepeQrxqICSSvCj+fesHtOs959wBnqKFaG04
3/e92G+FdTOvy7Li92eXD1+e90ERuMYGXXFpHfgi34LIzaBN6IA67klQ8BGcsy7u4L2YEQ3HivZc
GjZaWUgHQWgNKTpemOBgJJjyzFhigk3BSFLWFCx7GJb+LLJE6HURySW9/rHS8ziYEZMyGC/xB1BL
AwQUAAIACADSZjJHaR304DEBAABCAgAALwAcAGRvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRy
Z2V0dmFsdWUyLWRpZmYudHh0VVQJAAP8a/xV/Gv8VXV4CwABBPUBAAAEUAAAAL2Qz27CMAzGz/Qp
LC4wtWn4c+NUTfQwTWgSINBOk5e6NFJousSh8Fi8CM80usFxHHexZfvn77MshAC5sSbsycs5Msp8
u5Jb+nzVfEvPQZtCLskQepIGTzawYPIsHPlg2MvC7uWx4r2Rhg5kxlJZR7JSH8jsdsQHNIEmgo4N
KaYi5SNHcRz/mzEqDmh+bLMMxDiZQtyFLItgfdXrVczNTMq2bdN2mlq3k5PRaCznbwvRzcUqaKaH
HpFYMXLwvRK1CY4isSDvcUe9Dtt0zHgG6D05zr+u13joSCoS+L0O3i/nBO4vgsv5WqdRfFMl56yL
4rvm+tRQ3rVmUFiVKkfIlNes+bSkkhzVikB7qC0DQhlqxdrWKQxfahj8uTHso2kq7D8NkgfUoBMO
dUGlrql4ir4BUEsDBBQAAgAIANJmMkd+/2QuiAAAAJwAAAAzABwAZG9tL3hodG1sL2xldmVsMS9j
b3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0VVQJAAP8a/xV/Gv8VXV4CwABBPUBAAAE
UAAAABXKMQ6CQBBG4RpOsQcABrCj1tJYQEyszGT5BZJNwJ1Z1mtxEc4klC/v6yCajKpLQxRjLOKl
mP1AdVlWdH3c8+74eRsmBTmscBXZ2YNG+2ZVP0BXdgF12iprkOTDkwse6R0iPCA50fMUVWNYBF5v
38BOzAnRZ4atHm1e+5YZ/BZYRW/27egi/QNQSwMEFAACAAgA0mYyR81UXXFlCAAAYhsAADcAHABk
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1wcmV0dHktZGlmZi5odG1sVVQJ
AAP8a/xV/Gv8VXV4CwABBPUBAAAEUAAAAK1Z63LcthX+HT0FRppaSUYkd7WSK63k7dS6TDtt2k7k
Saa/MiAJLmGBxBoAtSs3eai8SJ6pBzcuyCVX8ozjiZcEDoDvXL8D+rpUFVscXJcE5/BTEYVRVmIh
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
IaATH5yGNk4gz1t5I4jzHCWwh741qzgpWSElTs2MnN0O9TwC2sHoqbXfiMf/LlBLAwQUAAIACADT
ZjJH9d+dNtAAAACNAQAAMgAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9k
ZTA2LWRpZmYudHh0VVQJAAP9a/xV/Wv8VXV4CwABBPUBAAAEUAAAAL2NMWvDMBSEZ+tXaFfkZ8fQ
IZMJydSGQh2aWZWOxCBbRnqqnX9fN2Tv1um4++A+rbWkz+DzgEQHw4aOl44u+Hrt+Rn73HtHH/Aw
CeTNPWTWjMQ6ImXPiVwYaLnx4MnjG74hGyLW1a6vIxsXJh6DQ/WisUywDFfywkIp9Z9uYzkb/zC3
rdT1ZitVvWlk2wp5Xi+LG/O0I5rnuZybMsQrbauqpsP7Sf9y3eWe8ZdG6I4N51R02VqkJNSzI8YQ
hTqtm7mieOtHyLqpdvJ8n3B8wB9QSwMEFAACAAgA02YyR095IPBXAAAAWgAAADYAHABkb20veGh0
bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi1leHBlY3RlZC50eHRVVAkAA/1r/FX9
a/xVdXgLAAEE9QEAAARQAAAADckxDoAgDADAWf4iRUkcnF2NA3zAQKMmaI0t9vt660VkaXaRewRQ
Vave0rNB71wH0zK38f821EMQCr5YPCR6EDKleuIla6ZbLsroBhNklcpNqCkhs/kAUEsDBBQAAgAI
ANNmMkd0ofunpgcAANAYAAA6ABwAZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRu
b2RlMDYtcHJldHR5LWRpZmYuaHRtbFVUCQAD/Wv8Vf1r/FV1eAsAAQT1AQAABFAAAAC9WVtv4zYW
fp78CiFBG6CIJDuOs7E946KTCwrsdrdoBtvHBSVSFieUqJJU7Mzu/vc9vMmSLNnpy3bQsUQekt+5
foeaj7kq2PrsY04Qhp+CKBSkORKSqE+XtcrCu0sYluqNkfXZktHy5SpYvlJJFcHBv88C+E+RnQox
SblAivJyGZS8JCszlXCBiQgTrhQvlsG02gUYnglenf33zG7nNkk542IZXExmCzMXPVFGHmiWufkE
pS8bwesSh140u9N/2gfZEyRnFAcXGGM7l/FShRkqKHtbBgUvuaxQ6gAWSGwoQJ6SIpjYoYqDckYP
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
9QEAAARQAAAAHclBDoIwEAXQdTkFF4ChkhjDWncSF/QCDf1BEuw006mNt9f4ts8hq3mqpomo1trX
sWfZ6DQMlq6PuXO/75ayK+jAG8dIKwso8FpeiOoDJ40cYM/Nol5LNhBhaWbk7DeY+x7RWnuZWvdJ
uP3vC1BLAwQUAAIACADTZjJH923addEAAACNAQAAMgAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9k
b2N1bWVudGFkb3B0bm9kZTE2LWRpZmYudHh0VVQJAAP9a/xV/mv8VXV4CwABBPUBAAAEUAAAAL2N
MWvDMBSEZ/tXaFfkF8VQSiZTkqkJhTo0syodiUG2jPQUO/++bsjerdNx98F9SilBX8HnHol2hg3t
zy2d8f3e8TPecucdfcLDJJA395BZMRKriJQ9J3Khp/nKvSePG3xNNkQsq11eBzYujDwEB/2iMI+w
DFfxzKWU8j/dxnI2/mFuGqH0aiOkXtWiaUpxWi6LK/O4JZqmqZrqKsQLbdZrTbuPo/rlqs0d4y9N
qVo2nFPRZmuRUimfHTGGWMrjspkLikM3QGj9uhWn+4j9A/4AUEsDBBQAAgAIANNmMkeuz3IfVwAA
AFoAAAA2ABwAZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYtZXhwZWN0
ZWQudHh0VVQJAAP9a/xV/Wv8VXV4CwABBPUBAAAEUAAAAA3JOw6AIAwA0BnuovWTODi7Gge4gCmN
mqAlUOz19a3PUxFziqQZQFVbHVvOBwxd18OyrY3/v3H1EoJIL8URkDNBYKw3PbIHTvJwoH6yTnap
xbiKSKXYD1BLAwQUAAIACADTZjJH0DCV6qUHAADQGAAAOgAcAGRvbS94aHRtbC9sZXZlbDMvY29y
ZS9kb2N1bWVudGFkb3B0bm9kZTE2LXByZXR0eS1kaWZmLmh0bWxVVAkAA/5r/FX+a/xVdXgLAAEE
9QEAAARQAAAAvVlbb+O4FX6e/AohQRtgEUl2HKe+zLjo5IIC7bZFM+g+FpRIWZxQokpSsTNt/3sP
b7IkS3b2pTvYsUQekt+5foeaz7kq2Obic04Qhp+CKBSkORKSqC/XtcrCxTUMS/XOyOZixWj5ehOs
3qikiuDg3xcB/KfIXoWYpFwgRXm5CkpekrWZSrjARIQJV4oXq2Ba7QMMzwSvL/57Ybdzm6SccbEK
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
AGRvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy1hY3R1YWwudHh0VVQJ
AAMAbPxVAGz8VXV4CwABBPUBAAAEUAAAAB3JQQqDMBAF0HU8hRfQ0UgpuG53FRfmAkE/VrAZmUwa
vH2lq7d4DlHNW/XoiXLOde5qlpVs07T0GIfKXV9NaVPQji/2jmYW0MJz+iCoIPhLXmDvxaReUzQQ
YSkGxOhXmNcWULb21pfuPPD83w9QSwMEFAACAAgA1GYyR2nnEJr1AAAAxgEAADMAHABkb20veGh0
bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjctZGlmZi50eHRVVAkAAwBs/FUAbPxV
dXgLAAEE9QEAAARQAAAAvY3BboMwEETP4St8d50NRFWlnFAFpzZNBLQ5IhemCZLByF6X5O9LovTc
Wy870o7mPaWUoA9rQg9PmWZN+aGkAz5fOr7Hc+hMSwUMtAcZfbGBFcOzcvDBsKfW9nQ+cW/I4Btm
TY11mL/NTB3YYdBz2hbJk8J5RMNol3zmSEr5r3LdcNDmpk5ToeKHtZDXk6aRqGbm4sQ8boimaVpO
66V1R0pWq5iy3VZde1WGjvGnJ1Ilaw5+8aU7ExwitYX3+ogFn5yd6rddVZfv+/2uqPKszouijjdC
ew/HlQsQ1xnaSN4pcM66SP4yXrsBIk4eN6K6jMhv5Q9QSwMEFAACAAgA1GYyR+EL22CBAAAAkAAA
ADcAHABkb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjctZXhwZWN0ZWQu
dHh0VVQJAAMAbPxVAGz8VXV4CwABBPUBAAAEUAAAABXLOw6DMBBF0RpWwQZg+BSRqKEkIHBqy4IX
QAIcjcfx9kOqWxxdBSfRJvKpiUIIWagyyyuVeV5Q03epuj2d/C6gA18cFc2WQYud/YlLGJe5axeU
j3gSI95Fb7MfnhF3cM6siGRjG/SzV3p6DUM/qrbR7Tjqok6Mc2BR7JH8LyzxD1BLAwQUAAIACADU
ZjJHF5q/S/gHAAANGgAAOwAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5v
ZGUyNy1wcmV0dHktZGlmZi5odG1sVVQJAAMAbPxVAGz8VXV4CwABBPUBAAAEUAAAAK1ZbW/bthb+
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
DuGSMA7vPv7mq3n/oYLSdtRc9hDwJWjkfpraNULzfGmnrew3m8/c846aryF30IqXb7DiP4pIlIth
UxoS/OEG7p7LFBFagXLwqN85ti8dG30X8JPvAN5WfINeZk3obPP0+8fHp4f/fPr08fPj6u5p9fnz
0xhKqxC4KScfeYU9pTlO+rXdi4i2T6EGH3eoFTpokAPKsje4veVN4PwlqKl+9DPnjNvXb/Lld8U9
eYMjFUSNY3w5nXuP0FyueFMP1nzp1+hbMrjzo+s4VE39r0B/A1BLAwQUAAIACADXZjJHGgQkInMA
AAB+AAAAPgAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yNi1hY3R1YWwudHh0VVQJAAMFbPxVBWz8VXV4CwABBPUBAAAEUAAAAB3JQQ6CMBAF0HU5BReA
oRBdsNadxAW9QFN+sAl0mnZq4+01vu0zyKJeInEmqrX2deo57TQOg6bbc+nM77u1eAEdeOOYyHEC
Bd7g+Iw2YWNXTgSJnL14DuO1WcVKyQopcWoW5Gx3qIcPaLW+zK35RNz/9wVQSwMEFAACAAgA12Yy
R2icpwD1AAAA3gEAADwAHABkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjYtZGlmZi50eHRVVAkAAwVs/FUFbPxVdXgLAAEE9QEAAARQAAAAxY8xb4MwEIVn
+BXeqXMhqB2YUJtMbVIpRM3swEuwZDCyz4X8+0JE925d7nR6d997J6UU9GVNaOFpq1jR7lzSGZd3
zUt7DdrUdISB8iCj7jawZHiWDj4Y9lTblsaGW0MG3zAZVdaBOlujsm2vHGpbTQYd99Zr1rbbvEiM
PSpGveKR4yRJ/ieFqjgo88hQFEKmT5lI5lIUsThN8Khh7nOiYRhWQ7ay7kab9Tql7edezrosg2b8
3TCWJSsOProqbYJDLPfwXt0QTWtHXN+a6cv0YPkQjMmF8h6Ol1HMN6jjZEHAOevi5BfwoTuINH3O
xeneY/cQfwBQSwMEFAACAAgA12YyRxZrsqqAAAAAlgAAAEAAHABkb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYtZXhwZWN0ZWQudHh0VVQJAAMFbPxVBWz8
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
U36wCXSadmrj7TW+7TPIol4icSaqtfZ16jntNA6Dpttz6czvu7V4AR1445jIcQIF3uD4jDZhY1dO
BImcvXgO47VZxUrJCilxahbkbHeohw9otb7MrflE3P/3BVBLAwQUAAIACADXZjJHUh18d/UAAADe
AQAAPAAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
OC1kaWZmLnR4dFVUCQADBmz8VQZs/FV1eAsAAQT1AQAABFAAAADFjzFvgzAQhWf4Fd6pcyEMrZhQ
m0xtUilEzezAS7BkMLLPhfz7QkT3bl3udHp333snpRT0ZU1o4WmrWNHuXNIZl3fNS3sN2tR0hIHy
IKPuNrBkeJYOPhj2VNuWxoZbQwbfMBlV1oE6W6Oyba8caltNBh331mvWttu8SIw9Kka94pHjJEn+
J4WqOCjzyFAUQqZPmUjmUhSxOE3wqGHuc6JhGFZDtrLuRpv1OqXt517OuiyDZvzdMJYlKw4+uipt
gkMs9/Be3RBNa0dc35rpy/Rg+RCMyYXyHo6XUcw3qONkQcA56+LkF/ChO4g0fc7F6d5j9xB/AFBL
AwQUAAIACADXZjJHAgn9goAAAACWAAAAQAAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb24yOC1leHBlY3RlZC50eHRVVAkAAwZs/FUGbPxVdXgLAAEE9QEA
AARQAAAALYs7DoMwEAVrOEUuAMuniWiTFiIFLmDhB1gyLPKu4+uHSClHMzNBNNtUz44opVSmtuSw
UlNVNT1ffTFdvhijU5DHB76lmQPoYIuZ99MEWJ7jjkNPFqeOj+aej2o0SrYY52NA3kPErMiu6I3l
sTlv64F1iN53NyOCoH+8/RbY/AtQSwMEFAACAAgA12YyRyY6CGH6BwAAaRoAAEQAHABkb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtcHJldHR5LWRpZmYu
aHRtbFVUCQADBmz8VQZs/FV1eAsAAQT1AQAABFAAAACtWWtv47gV/bz5FUKCNsAikuw4nrWdjItO
HijQ7rTYDLofC0qiLE4oUSWp2J62/72XL5mSJScDzAQTie9zn+dSuStkSddndwVGGTxKLFGQFogL
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
5tg2ejr6IeBnPwC85QCDHsz6G87v1WdET4bpZyY/N5R6XZBxhfDa2BdZfvZaZmmg9IKzYV0c+UvX
4pCz3za3nXRSXSdUwd7hFB1bQ42ghFYP/c4547b5XZb+obhn7zCzgggQPOg48BrT6S9eaxV82df+
1MeOyF5jTPrvyQW9h+YISMT6L0z/B1BLAwQUAAIACADXZjJHUke7OXIAAAB+AAAAPgAcAGRvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1hY3R1YWwudHh0
VVQJAAMGbPxVBmz8VXV4CwABBPUBAAAEUAAAAB3JQQ6CMBAF0HU5BReAKeBG1rqTuKAXaMoPNoFO
005tvL3Gt30GWdRLJM5Etda+Tj2nnUatB7o9l878vluLF9CBN46JHCdQ4A2Oz2gTNnblRJDI2Yvn
MF6bVayUrJASp2ZBznaHeviAdtCXuTWfiPv/vlBLAwQUAAIACADXZjJHgvjHdvQAAADeAQAAPAAc
AGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1kaWZm
LnR4dFVUCQADBmz8VQZs/FV1eAsAAQT1AQAABFAAAADFjzFvwjAQhef4V3h3zSXQpUxRC1MLlQCV
2SQPYsmJI/vcwL9vgujercudTu/ue++01pK+vEstIq0MG1of93TE6d3yo70m62rawcFEkDM3n1gz
IuuAmBxHqn1L14ZbRw7fcAuqfAB1vkbl294E1L4aDTrufbRsfTd/0bj2qBj1jK8slFL/k8JUnIy7
ZyhLqYunhVRTKUshDyM8a5j7JdEwDLNhMfPhQvM8L2j1udGTrvfJMv5uKPSeDaeYnY11KUDoDWI0
F2Tj2g7nt2b8sth63ibnltLEiMCPUU43qIV6IBCCD0L9Aj5sB1nkz0t5uPVY38UfUEsDBBQAAgAI
ANdmMkda7bwPgAAAAJYAAABAABwAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI5LWV4cGVjdGVkLnR4dFVUCQADBmz8VQZs/FV1eAsAAQT1AQAABFAAAAAt
izsOgzAQBWs4RS4Ay6cKbdJCpMAFLPwAS4ZF3nV8/RAp5WhmJohmm+rZEaWUytSWHFZqqqqm56sv
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
3P53AlBLAwQUAAIACADZZjJHhuGG2/UAAADaAQAAMwAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0dGV4dGNvbnRlbnQxNy1kaWZmLnR4dFVUCQADCmz8VQps/FV1eAsAAQT1AQAABFAAAAC9
kLFug0AQRGv4iuvhWAhFJCoUmSqxIgUrri8wxkgHR+72Av6tfEi+Kcaxu0jp0uwWM/tmtFJKQa9G
+wGONooVVfua9nh77Pm6HnyvW3qBhnIgrU7Gs2Q4lhbOa3bUmoGWIw+aND6gc2qMBY2mRQdmLNyY
kTFydi+xTGgYbcILh1EU/Wu4atgrfYkuSyGzOBfROsoyFLszMzgyTwXRPM/JnCfGdnSXphltnrdy
1WXte8afOaGsWbF3wUH12luEcgvnVIfgN3chlHOwXL2fuzmx3qCNxU9XEYvbx8TXZxJGVzKsNTaM
btynfoTI0qwQu9OE6iJ+A1BLAwQUAAIACADZZjJH5XahlIQAAACkAAAANwAcAGRvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3RlZC50eHRVVAkAAwps/FUKbPxV
dXgLAAEE9QEAAARQAAAAbYtBDoIwFAXXcIoeAPggCxPWuiQu4AJNeSJJQ7F9tZzLg3gmce9yMjMj
ArMHuXUiKaUqtZXzs5zqupHLrS/Hw5dDXAixeMG2YpyHrG7CDBI7jVuJlc05H6gZQ3bXi40eeY8Q
9IzsX9spHQI8r8+obVC/BVOhtOHBqlDYNxhiUp93lX8BUEsDBBQAAgAIANlmMkcMtLH1/wcAAFga
AAA7ABwAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LXByZXR0eS1k
aWZmLmh0bWxVVAkAAwps/FUKbPxVdXgLAAEE9QEAAARQAAAArVnrbuO4Ff69eQohQRtgEUl2HM/G
TsZFJxcU6G5bNIPuz4KSKIsTStSSVGxP25fqg/SZeniTKVmyM8BMMJF4/871O1TuC1nS1dl9gVEG
jxJLFKQF4gLLj5eNzMPbS+gWckfx6mxJSfV6FSzfiCASZ8G/zgL4J/FWhhlOGUeSsGoZVKzCd3oo
YTzDPEyYlKxcBtN6G2TwjrO7s/+cme3sJimjjC+Di8lsoceiZ0LxI8lzO56g9HXNWVNloZua36of
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
HHiN6WTqtZbB553XrPHTuMjfkgx6D00JkID1H5T+D1BLAwQUAAIACADZZjJHB+/xNGoAAABzAAAA
MwAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEtYWN0dWFsLnR4dFVU
CQADCmz8VQps/FV1eAsAAQT1AQAABFAAAAAdyTEOgkAQBdB6OQUXgGHEilo7CQV7AdAvbkJ2yczg
xttLaN/zUHMfs60jyjnXua2TLHRpGqbb0Ff++Grcg4FWfLG29EwCiumFEBViM94HMBejTbarg0iS
oofqtMA9QkTJfO1K/9twP+8PUEsDBBQAAgAIANlmMkfw2jKizwAAAIoBAAAxABwAZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS1kaWZmLnR4dFVUCQADCmz8VQts/FV1eAsA
AQT1AQAABFAAAAC9jTFvwjAUhOf4V3g3zsOkE1NUwdSiSg0qs0kOsOTEkf3chH/fFLF363S6+6T7
tNaSvoLPPRLtLFvanxo64fzm+Bmv2fmOPuFhE8jbe8isGYl1RMqeE3Whp/nGvSePb/iK2hBBQ+jg
hoTIZ1yWwRiNeUTL6EqeWSil/lFtW87WP8R1LbVZbaQyq0rWtZDH5bG4MY9bommayqkqQ7zSZr02
tPs46F+um+wYf1iEbthyTkWT2xYpCfXsiDFEoQ7LZq8o3t0AaczLVh7vI/YP+ANQSwMEFAACAAgA
2WYyR7F4kwFUAAAAWQAAADUAHABkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9y
ZTExLWV4cGVjdGVkLnR4dFVUCQADCmz8VQps/FV1eAsAAQT1AQAABFAAAAANyTsOgCAQBcBa7yIL
0lnbGgu8gOLzkxgw7CLXl3ZmAUtzibwDUSlFFatiOqnX2tA4T91Sv3P5FtCDD48lHxMoxB13YCTZ
cFQwpnWySubGZe/B3P5QSwMEFAACAAgA2mYyR1R9gJqlBwAAzhgAADkAHABkb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLXByZXR0eS1kaWZmLmh0bWxVVAkAAwts/FULbPxV
dXgLAAEE9QEAAARQAAAAvVlbb+O4FX6e/AohQRtgEUl2bM/G9oyLTi4o0G5bNIPdxwUlUhYnlKiS
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
s3e8s8ZryZ204e07bPjHMpHVetyQlgA/PNdpCqXzrDW6+kDtOa+MEzqpyQmU/B0qtzUhQnDR1+N3
RDgbR+jI6YOBMJ3OV8FX6JwehwD/ljDs/ZhCBIlv/hnj/1BLAwQUAAIACADaZjJHl2acDmsAAABz
AAAAMwAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtYWN0dWFsLnR4
dFVUCQADC2z8VQts/FV1eAsAAQT1AQAABFAAAAAdyUEOgjAQBdB1OQUXgGkluGCtO4kLegHALzYh
LZkZbLi9xO17HqLmo7p1RDnnOjd14oUu1jq6PfvKn18Ne1DQii/WhubEoJheCFHAOuF9gmuLQUfd
xYA5cdFDZFxgHiGidPbalf7YcP/fD1BLAwQUAAIACADaZjJHh1QBDtAAAACKAQAAMQAcAGRvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZGlmZi50eHRVVAkAAwts/FULbPxV
dXgLAAEE9QEAAARQAAAAvY0xb8IwFITn+Fd4N85LiNqBKapgAlSpQWU2zhUiOXFkPzfh3zdF7N06
ne4+6T6ttaRP71KPSFvDhnbnhs647Dt+xlvqXEsfcDAR5MzdJ9aMyDogJseRWt/TfOPekcM3XEXW
B9DgW3RDROALvpahfNGYR1hGm/PMQin1j2pjORn3ENe11OVqLVW5qmRdC3laHrMb87ghmqYpn6rc
hyuti6Kk7ftR/3LdpI7xh0Xohg2nmDXJWsQo1LMjBB+EOi6buSI7dANkWbxu5Ok+YveAP1BLAwQU
AAIACADaZjJHfl+bclUAAABZAAAANQAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0
YmVmb3JlMTUtZXhwZWN0ZWQudHh0VVQJAAMLbPxVC2z8VXV4CwABBPUBAAAEUAAAAA3JOw6AIBAF
wFruIosSG2tbYwEXUHx+EiOGXeT62s54sFSHyNMTlVJ0sTqmnVpjGhqmsfb/1y6fArrw4rIUYgLd
ccV5M5Is2H5oOuVklsyVyyGAWX1QSwMEFAACAAgA2mYyRwPkUV+mBwAAzhgAADkAHABkb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LXByZXR0eS1kaWZmLmh0bWxVVAkAAwts
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
jakRi9ROAbhpF1Prk9Dl4Yy5qo+N6yt8IHPoqXFvib6/BJ1PP+YTKdCpX2Eu/ftO4nI9BQvC/Lqz
CnL79Brg58v1F7DLB+15cPx2u422s4iLTQw3hGn88I9fQj0fPtdQ147bykkAL4I6/qetWisoL9du
2q3907azkk/arrXuqAmv32HC78tEVqtxO1r6+/BcpykUzpPW6OoDlee0Mm7RUU2OoOTvULmtCRGC
i74e/0eEs3GEjpo+GAjTye0y+AJ90+MQ4D8Thr0fU4Yg780/YvwPUEsDBBQAAgAIANtmMkfavYlM
agAAAHEAAAAyABwAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWFjdHVh
bC50eHRVVAkAAw5s/FUObPxVdXgLAAEE9QEAAARQAAAAHckxDoMwDAXQOZyCC4CBLJS53Yo6kAsg
+IJIKUaOIeL2rXjrc4hqVtW9I0oplcmWLAs1VVXT89MX7v/FcHgFBZwIliYW0MYzBF8+Ma0+zLXN
Bh31iAYiLFmPGMcF5u035I+2y92143XXD1BLAwQUAAIACADbZjJHgZEUuuIAAACwAQAAMAAcAGRv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy1kaWZmLnR4dFVUCQADDmz8VQ5s
/FV1eAsAAQT1AQAABFAAAAC9jTFvgzAUhGf8K7y75oWytEyoSqY2qVSiZnbhEpBMjOznQP59IUrW
jl3u6XTv7tNaS/p2NvYItDZsaHOo6ICf947v5y12tqEvWJgAsubqImtGYO0RouVAjetparm3ZHGB
zal2HnR2DTx6d0HdzgtZrjENqBlNyhMLpdT/kU3N0dgbtyylzp5yqRYpSyH382DSMg8F0TiO6Zin
zp/oebXKaP251Uuuq9gx/oYIXbHhGJKj6Wz0EHqLEMwJyYzdOd5FawtpQoB/WLm8ohHq3oT3zgv1
6H10Z8jXl0LurwM2t+wXUEsDBBQAAgAIANtmMkdj+AWKcQAAAIEAAAA0ABwAZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4cGVjdGVkLnR4dFVUCQADDmz8VQ5s/FV1eAsA
AQT1AQAABFAAAAA1yjESgjAQRuE6OQUXgAXTUduCBVwgQ34hM6txshvi8dXC8s33VoiaQ/U1EtVa
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
j2YRJ2dRYE7cTCjFbVDvcKA1+j629sp4/e8LUEsDBBQAAgAIANxmMkfdlNE+0AAAAIoBAAAxABwA
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC1kaWZmLnR4dFVUCQADEGz8
VRBs/FV1eAsAAQT1AQAABFAAAAC9jTFrwzAUhGfrV2hX5GfFFEomU5KpDYU6NLMqH7FBjoz0VDv/
vm7I3q3TcffBfVprSZ/B5xGJ9pYtHc4tnfH1OvAjXvLgO/qAh00gb28hs2Yk1hEpe07UhZGWnkdP
Ht/wNbkQQdfQIWLy1sH164V51lgmOEZX8sJCKfWPaus4W38XN43UZrOVymxq2TRCntbHomeedkTz
PJdzXYZ4oW1VGdq/H/Uv120eGH9YhG7Zck5Fm51DSkI9OmIMUajjutkLirfhCmmqp5083SYc7vAH
UEsDBBQAAgAIANxmMkdCrtnIVgAAAFkAAAA1ABwAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQxOC1leHBlY3RlZC50eHRVVAkAAxBs/FUQbPxVdXgLAAEE9QEAAARQAAAADckx
DoAgEATAWv6CB9IYa1tjgR8w50ZNiBA45Ps67Wwo0l0iaSJqrfXN9TGfNBhjaV4Xvf2vfb0FFPAi
OOKYQU88kJHCzuDrDocdlZddaul8ZUYp6gNQSwMEFAACAAgA3GYyR8izZ9ilBwAAzhgAADkAHABk
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LXByZXR0eS1kaWZmLmh0bWxV
VAkAAxBs/FUQbPxVdXgLAAEE9QEAAARQAAAAvVlbb+O4FX6e/AohQRtgEUl2HM/6MuOikwsKtNsW
zWD3cUGJlMUJJaokFTvT9r/38CZLsmRnX3YHO5bIQ/I71+9Q8ylXBdtcfMoJwvBTEIWCNEdCEvX5
ulZZuLiGYaneGNlcrBgtX26C1SuVVBEc/OcigP8U2asQk5QLpCgvV0HJS7I2UwkXmIgw4UrxYhVM
q32A4Zng9cX/Lux2bpOUMy5WwdVktjRz0RNl5IFmmZtPUPqyFbwucehFs4X+0z7IniA5ozi4whjb
uYyXKsxQQdnbKih4yWWFUgewQGJLAfKUFMHEDlUclDN6CMJAo1diAOXTHtLZbDawv0SlDCURNGtN
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
1XW7q+lCLkDwR0mIkGGU9PZt+rbPoYraRcpE1Fobmx0zb3TT2tDjPQ/u98NyRgElXEiWQmbQkVcw
SvIBYY9pNfduES9nVWDO3M2o1W9Qr3igN9pOvfsUPP/3BVBLAwQUAAIACADcZjJHsv7UZ88AAACK
AQAAMQAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZGlmZi50eHRV
VAkAAxBs/FUQbPxVdXgLAAEE9QEAAARQAAAAvY0xb4MwFIRn/Cu8O+bhMDUTipKpjSqVqJldcwpI
Jkb2cyH/vjTK3q3T6e6T7tNaS/oMPo9IdLBs6Xhp6YKv14Gfsc+D7+gDHjaBvL2HzJqRWEek7DlR
F0Zaeh49eXzD1+RCBN1Ch4jJWwfXrxfmRWOZ4BhdyQsLpdQ/qq3jbP1D3DRSm81WKrOpZdMIeV4f
i5552hHN81zOdRnilbZVZejwftK/XLd5YPxhEbplyzkVbXYOKQn17IgxRKFO62avKN6GG6Sp6p08
3yccH/AHUEsDBBQAAgAIANxmMkcBZX9PVQAAAFkAAAA1ABwAZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQxOS1leHBlY3RlZC50eHRVVAkAAxBs/FUQbPxVdXgLAAEE9QEAAARQ
AAAADckxDoAgEATAWv6CB1JpbWss8APm3KgJEQKHfF+nnQ1FukskTUSttb65PuaTBmMszeuit/+1
r7eAAl4ERxwz6IkHMlLYGXzd4bCj8rJLLZ2vzChFfVBLAwQUAAIACADcZjJH8/jn+6UHAADOGAAA
OQAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktcHJldHR5LWRpZmYu
aHRtbFVUCQADEGz8VRBs/FV1eAsAAQT1AQAABFAAAAC9WVtv4zYWfp78CiFBN0ARSXYcT2N7xsVO
Liiw7e5iM2gfC0qkLE4oUSWp2Jlt/3sPb7IkS3b60g46lshD8jvX71DzIVcFW599yAnC8FMQhYI0
R0IS9fGyVll4ewnDUr0ysj5bMlo+XwXLFyqpIjj4/1kA/ymyUyEmKRdIUV4ug5KXZGWmEi4wEWHC
leLFMphWuwDDM8Grsz/O7HZuk5QzLpbBxWS2MHPRI2XknmaZm09Q+rwRvC5x6EWzW/2nfZA9QXJG
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
Y2hpbGQyMi1hY3R1YWwudHh0VVQJAAMQbPxVEGz8VXV4CwABBPUBAAAEUAAAAB3JQQ6DIBAF0DWe
wgvoAO5ct7saF3IBgj9KQoQMY0lv36Zv+xyqqFOkzESttbFNY+aDrNaGHusyuN8P2x0FlPBGmihk
Bl15B6MkHxDOmHZru0283FWBOXO3oFZ/QL3ihd5oM/fuU/D83xdQSwMEFAACAAgA3GYyR8VxoxrO
AAAAigEAADEAHABkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWRpZmYu
dHh0VVQJAAMQbPxVEGz8VXV4CwABBPUBAAAEUAAAAL2NMW+DMBSEZ/wrvDvmYdgyoSqZ2qhSiZrZ
NaeAZGJkPxfy70uj7N06ne4+6T6ttaTP4POERAfLlo6Xji74eh35GS959D19wMMmkLf3kFkzEuuI
lD0n6sNE68CTJ49v+IZciKBb6BExe+vghu2irjXWGY7Rl7yyUEr9o9o6ztY/xG0rtdnVUpldI9tW
yPP2WAzM855oWZZyacoQr1RXlaHD+0n/ct3lkfGHReiOLedUdNk5pCTUsyPGEIU6bZu9ongbb5Cm
Mnt5vs84PuAPUEsDBBQAAgAIANxmMkd5rHMQVQAAAFkAAAA1ABwAZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBlY3RlZC50eHRVVAkAAxBs/FUQbPxVdXgLAAEE9QEA
AARQAAAADckxDoAgEATAGv8Cp9hZ2xoL+AA5NmpCxMAh39dpx6OKOkWehaj3bvpscjnIjuNE675p
/7927RJQwos0E+cCunNEwZMCg88rRWsHJ0FaVa4xo9bhA1BLAwQUAAIACADcZjJHgBzTfaUHAADO
GAAAOQAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjItcHJldHR5LWRp
ZmYuaHRtbFVUCQADEGz8VRBs/FV1eAsAAQT1AQAABFAAAAC9WVtv4zYWfp78CiFBN0ARSXYcT2N7
xsVOLiiw7e5iM2gfC0qkLE4oUSWp2Jlt/3sPb7IkS3b60g46lshD8jvX71DzIVcFW599yAnC8FMQ
hYI0R0IS9fGyVll4ewnDUr0ysj5bMlo+XwXLFyqpIjj4/1kA/ymyUyEmKRdIUV4ug5KXZGWmEi4w
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
BBQAAgAIANxmMkd1+VJKawAAAHMAAAAzABwAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQyMy1hY3R1YWwudHh0VVQJAAMQbPxVEGz8VXV4CwABBPUBAAAEUAAAAB3JQQ6DIBAF
0DWewgvooKQb1+2upgu5AMEfJSFChrHE29v0bZ9FEbWL5Imo1tpX0yfeaNR6oOdn7uzvu+UMAor4
IhryiUFHWsHI0Xn4PcR1NM0iTs6iwJy4mVGK26De4UA76MfU2ivj9b8bUEsDBBQAAgAIANxmMkfh
rvoj0AAAAIoBAAAxABwAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy1k
aWZmLnR4dFVUCQADEGz8VRFs/FV1eAsAAQT1AQAABFAAAAC9jT1rwzAYhGfrV2hX5NcfdMlkQjK1
IVCHZlblIzbIkZFexc6/rxuyd+t03D1wj9Za0pd3aUSkvWFDh0tLF3y/D/yKXRpcR59wMBHkzMMn
1ozIOiAmx5E6P9LS8+jI4Q5Xk/UBdPMdAiZnLGy/XlS1xjLBMrqcFxZKqX9UG8vJuKe4aaQuN5VU
5aaWTSPkeX3MeuZpSzTPcz7XuQ9XqoqipP3pqH+5btPA+MMidMuGU8zaZC1iFOrVEYIPQh3XzVyR
fQw3yLJ428rzY8LhCX8AUEsDBBQAAgAIANxmMkc6Z9WXVQAAAFkAAAA1ABwAZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHRVVAkAAxBs/FUQbPxVdXgL
AAEE9QEAAARQAAAADckxDoAgEATAGv8Cp9BZ2xoL/IA5N0JCxMAh39dpZ0cVFUSemaj3brozuVxk
x3GiZVv1/r/2LQoo4UVyxLmA7nyi4EkHg0NMp3WDl0NaVb4xo9bhA1BLAwQUAAIACADdZjJHgdps
taUHAADOGAAAOQAcAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMtcHJl
dHR5LWRpZmYuaHRtbFVUCQADEWz8VRFs/FV1eAsAAQT1AQAABFAAAAC9WVtv4zYWfp78CiFBN0AR
SXYcT2N7xsVOLiiw7e5iM2gfC0qkLE4oUSWp2Jlt/3sPb7IkS3b60g46lshD8jvX71DzIVcFW599
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
ja4+UHtOK+OEjmpyBCV/g8ptTYgQXPT1+BsRzsYROnJ6ZyBMJ/Nl8Bk6p4chwH8lDHs/phBB4pt/
xvgTUEsDBBQAAgAIAN1mMkfvGFM1agAAAHMAAAAzABwAZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzMC1hY3R1YWwudHh0VVQJAAMRbPxVEWz8VXV4CwABBPUBAAAEUAAAAB3J
QQ6DIBAF0DWewgvoIOxct7saF3IBgj9KQoQMY0lv36Zv+xyqqFOkzESttbHZMfNBRuuJHusyuN8P
2x0FlPBGshQyg668g1GSDwhnTLvV3SZe7qrAnLlbUKs/oF7xQj8ZM/fuU/D83xdQSwMEFAACAAgA
3WYyR5aGIUvPAAAAigEAADEAHABkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDMwLWRpZmYudHh0VVQJAAMRbPxVEWz8VXV4CwABBPUBAAAEUAAAAL2NPWvDMBRFZ/tXaFeenz+2
TKYkUxsKdWhmVb7EBjky0lPt/Pu6IXu3Tpd7D9xDRIo/vUsTIh+MGD5eOr7g63WUZ7yk0fX8AQcT
wc7cfRISRKGAmJxE7v3E6yCTY4dvuIatD+Cb7xEwO2Nhh+2iKQnrDCvoC1kl11r/o9pYScY9xG2r
qNrVSle7RrVtrs7bYzaIzHvmZVmKpSl8uHJdlhUf3k/0y6lLo+APS06dGEkx65K1iDHXz44QfMj1
advMFdnbeIOq6nqvzvcZxwf8AVBLAwQUAAIACADdZjJHX4odK1UAAABZAAAANQAcAGRvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAtZXhwZWN0ZWQudHh0VVQJAAMRbPxVEWz8
VXV4CwABBPUBAAAEUAAAAA3JMQ6AIBAEwFr/AofSWdsaC/iAOTdCQsTAId/XacejyhBEnoWo9667
1blcNBsz0bpvyv+vXIsCSniRLHEuoDufKHjSweAQ02nN6OSQVgfXmFHr+AFQSwMEFAACAAgA3WYy
R15G91SlBwAAzhgAADkAHABkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMw
LXByZXR0eS1kaWZmLmh0bWxVVAkAAxFs/FURbPxVdXgLAAEE9QEAAARQAAAAvVlbb+M2Fn6e/Aoh
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
U6jnw6caCtsJY7kjwI+gj/9p69YKy8u1m3ayf9l49o530ngtuaM2vH6DDf9RJrJajRvSEuC7pzpN
oXSetEZXH6g9p5VxQkc1OYKSv0HltiZECC76evyNCGfjCB05vTMQptfXy+AzdE4PQ4D/Shj2fkwh
gsQ3/4zxJ1BLAwQUAAIACADdZjJHT8cJHWoAAABzAAAAMwAcAGRvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzMtYWN0dWFsLnR4dFVUCQADEWz8VRFs/FV1eAsAAQT1AQAABFAA
AAAdyTEOhCAQBdAaT+EFdFA6a7dbYyEXIPijJETIMC7Z2+/G1z6LIuoUyRNRrbWvpk980Kj1QPO6
dPb/3XYHAUV8EA35xKAr7WDk6Dz8GeJuTLOJk7soMCduFpTiDqh3uNAOepxa+814PfcDUEsDBBQA
AgAIAN1mMkesmh97zgAAAIoBAAAxABwAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzMy1kaWZmLnR4dFVUCQADEWz8VRFs/FV1eAsAAQT1AQAABFAAAAC9jTFvgzAUhGf8K7w7
5gHeMqEqmdqoUoma2TWngGRiZD8X8u9Lo+zdOp3uPuk+rbWkz+DzhEQHy5aOl44u+Hod+RkvefQ9
fcDDJpC395BZMxLriJQ9J+rDROvAkyePb3hDLkTQLfSImL11cMN2YYzGOsMx+pJXFkqpf1Rbx9n6
h7htpa53jVT1zsi2FfK8PRYD87wnWpalXEwZ4pWaqqrp8H7Sv1x3eWT8YRG6Y8s5FV12DikJ9eyI
MUShTttmryjexhtkXTV7eb7POD7gD1BLAwQUAAIACADdZjJH29GHeFUAAABZAAAANQAcAGRvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQudHh0VVQJAAMRbPxV
EWz8VXV4CwABBPUBAAAEUAAAAA3JMQ6AIBAEwFr+IofSWdsaC/wAOTZiQsTAId/XaedAlSGKPAtR
7113q3M5aTZmonXfxuP/0bVLQAkvkiXOBXTngIIneQbHKwVrlRMvrQ6uMaNW9QFQSwMEFAACAAgA
3WYyRw66757KAAAALgEAAA0AHABlcnJvcl9sb2cudHh0VVQJAAMSbPxV7Gv8VXV4CwABBPUBAAAE
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
VVQFAAPva/xVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgACAAAAzGYyR6ywlM8DAAAAAwAAABEAGAAA
AAAAAQAAAKSBIDQAAF93cHRfY2VydHMvc2VyaWFsVVQFAAPva/xVdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgACAAAAzGYyR+2Bj9YDAAAAAwAAABUAGAAAAAAAAQAAAKSBbjQAAF93cHRfY2VydHMvc2Vy
aWFsLm9sZFVUBQAD72v8VXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAMpmMkcAAAAAAAAAAAAA
AAAOABgAAAAAAAAAAACkgcA0AABhY2Nlc3NfbG9nLnR4dFVUBQAD7Gv8VXV4CwABBPUBAAAEUAAA
AFBLAQIeAwoAAAAAANJmMkcAAAAAAAAAAAAAAAAEABgAAAAAAAAAEADtQQg1AABkb20vVVQFAAP7
a/xVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA0WYyRwAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQ
AO1BRjUAAGRvbS9odG1sL1VUBQAD+mv8VXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAANFmMkcA
AAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQYk1AABkb20vaHRtbC9sZXZlbDEvVVQFAAP6a/xVdXgL
AAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA1GYyRwAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1B0zUA
AGRvbS9odG1sL2xldmVsMS9jb3JlL1VUBQADAGz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ANFmMkdgpitGjwAAAKoAAABNABgAAAAAAAEAAACkgSI2AABkb20vaHRtbC9sZXZlbDEvY29yZS9k
b2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtYWN0dWFsLnR4dFVU
BQAD+mv8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANFmMkdDb2VX/AAAAF0CAABLABgAAAAA
AAEAAACkgTg3AABkb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYtZGlmZi50eHRVVAUAA/pr/FV1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACADRZjJHQBjDlWgAAAB2AAAATwAYAAAAAAABAAAApIG5OAAAZG9tL2h0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVj
dGVkLnR4dFVUBQAD+mv8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANJmMkfcfGiN0wcAAMAZ
AABTABgAAAAAAAEAAACkgao5AABkb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtcHJldHR5LWRpZmYuaHRtbFVUBQAD+2v8VXV4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANFmMkdK/uKGkAAAAKsAAABOABgAAAAAAAEAAACkgQpC
AABkb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25j
cmVhdGVlbnRyZWYxLWFjdHVhbC50eHRVVAUAA/pr/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CADRZjJHb4odyfwAAABhAgAATAAYAAAAAAABAAAApIEiQwAAZG9tL2h0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1kaWZmLnR4dFVU
BQAD+mv8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANFmMkdhz/FaaQAAAHcAAABQABgAAAAA
AAEAAACkgaREAABkb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dFVUBQAD+mv8VXV4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIANFmMkd9hxcd0wcAAMMZAABUABgAAAAAAAEAAACkgZdFAABkb20vaHRtbC9s
ZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYx
LXByZXR0eS1kaWZmLmh0bWxVVAUAA/pr/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADSZjJH
FuOGDXwAAACNAAAAMAAYAAAAAAABAAAApIH4TQAAZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0
cmdldHZhbHVlMi1hY3R1YWwudHh0VVQFAAP7a/xVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
0mYyR+AzRkLnAAAA6QEAAC4AGAAAAAAAAQAAAKSB3k4AAGRvbS9odG1sL2xldmVsMS9jb3JlL2hj
X2F0dHJnZXR2YWx1ZTItZGlmZi50eHRVVAUAA/tr/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CADSZjJHCzhvXlUAAABZAAAAMgAYAAAAAAABAAAApIEtUAAAZG9tL2h0bWwvbGV2ZWwxL2NvcmUv
aGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHRVVAUAA/tr/FV1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACADSZjJHcSzGmb8HAABpGQAANgAYAAAAAAABAAAApIHuUAAAZG9tL2h0bWwvbGV2ZWwx
L2NvcmUvaGNfYXR0cmdldHZhbHVlMi1wcmV0dHktZGlmZi5odG1sVVQFAAP7a/xVdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgA1GYyR3pvMHx8AAAAiwAAAC4AGAAAAAAAAQAAAKSBHVkAAGRvbS9o
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWFjdHVhbC50eHRVVAUAAwBs/FV1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADUZjJH6ewxZuYAAADhAQAALAAYAAAAAAABAAAApIEBWgAAZG9t
L2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZGlmZi50eHRVVAUAAwBs/FV1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADUZjJHJEKDyFQAAABXAAAAMAAYAAAAAAABAAAApIFNWwAAZG9t
L2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhwZWN0ZWQudHh0VVQFAAMAbPxVdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgA1GYyR/eI4RC9BwAAYxkAADQAGAAAAAAAAQAAAKSBC1wA
AGRvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLXByZXR0eS1kaWZmLmh0bWxVVAUA
AwBs/FV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADSZjJHAAAAAAAAAAAAAAAACAAYAAAAAAAA
ABAA7UE2ZAAAZG9tL3N2Zy9VVAUAA/tr/FV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADSZjJH
AAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UF4ZAAAZG9tL3N2Zy9sZXZlbDMvVVQFAAP7a/xVdXgL
AAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA0mYyRwAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BwWQA
AGRvbS9zdmcvbGV2ZWwzL3hwYXRoL1VUBQAD/Gv8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ANJmMkfxLy2vfwAAALsAAABJABgAAAAAAAEAAACkgRBlAABkb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1hY3R1YWwudHh0VVQFAAP7
a/xVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA0mYyR302uhbuAAAAHwIAAEcAGAAAAAAAAQAA
AKSBEmYAAGRvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9T
VVBQT1JURURfRVJSLWRpZmYudHh0VVQFAAP7a/xVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
0mYyRwKYS10wAAAAMwAAAEsAGAAAAAAAAQAAAKSBgWcAAGRvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQ
YXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dFVUBQAD
+2v8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANJmMkfKfSfBwgcAAHcYAABPABgAAAAAAAEA
AACkgTZoAABkb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1Rf
U1VQUE9SVEVEX0VSUi1wcmV0dHktZGlmZi5odG1sVVQFAAP7a/xVdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgA0mYyR0v+Fv+BAAAAvAAAAEoAGAAAAAAAAQAAAKSBgXAAAGRvbS9zdmcvbGV2ZWwz
L3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1hY3R1YWwu
dHh0VVQFAAP8a/xVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA0mYyR7DNKxbyAAAAIwIAAEgA
GAAAAAAAAQAAAKSBhnEAAGRvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFs
dWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1kaWZmLnR4dFVUBQAD/Gv8VXV4CwABBPUBAAAEUAAAAFBL
AQIeAwoAAgAAANJmMkdAqJC/NAAAADQAAABMABgAAAAAAAEAAACkgfpyAABkb20vc3ZnL2xldmVs
My94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0
ZWQudHh0VVQFAAP8a/xVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA0mYyR7DO3ovDBwAAehgA
AFAAGAAAAAAAAQAAAKSBtHMAAGRvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9l
dmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1wcmV0dHktZGlmZi5odG1sVVQFAAP8a/xVdXgLAAEE
9QEAAARQAAAAUEsBAh4DCgAAAAAA02YyRwAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAO1BAXwAAGRv
bS94aHRtbC9VVAUAA/1r/FV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADSZjJHAAAAAAAAAAAA
AAAAEQAYAAAAAAAAABAA7UFFfAAAZG9tL3hodG1sL2xldmVsMS9VVAUAA/tr/FV1eAsAAQT1AQAA
BFAAAABQSwECHgMKAAAAAADVZjJHAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA7UGQfAAAZG9tL3ho
dG1sL2xldmVsMS9jb3JlL1VUBQADAWz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANJmMkcF
SUbIlAAAAKsAAABOABgAAAAAAAEAAACkgeB8AABkb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWFjdHVhbC50eHRVVAUAA/tr
/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADSZjJHmUX7mvsAAAD4AQAATAAYAAAAAAABAAAA
pIH8fQAAZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZi1kaWZmLnR4dFVUBQAD+2v8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIANJmMkdS4h35ZwAAAHQAAABQABgAAAAAAAEAAACkgX1/AABkb20veGh0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVk
LnR4dFVUBQAD+2v8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANJmMkfJ5jWf1wcAACEZAABU
ABgAAAAAAAEAAACkgW6AAABkb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hh
cmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLXByZXR0eS1kaWZmLmh0bWxVVAUAA/tr/FV1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACADSZjJH94SUnZUAAACsAAAATwAYAAAAAAABAAAApIHTiAAA
ZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNy
ZWF0ZWVudHJlZjEtYWN0dWFsLnR4dFVUBQAD+2v8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ANJmMkcuJuTO+wAAAPsBAABNABgAAAAAAAEAAACkgfGJAABkb20veGh0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1kaWZmLnR4dFVU
BQAD+2v8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANJmMkcugTM8ZwAAAHUAAABRABgAAAAA
AAEAAACkgXOLAABkb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1leHBlY3RlZC50eHRVVAUAA/tr/FV1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACADSZjJHofcTldgHAAAjGQAAVQAYAAAAAAABAAAApIFljAAAZG9tL3hodG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEtcHJldHR5LWRpZmYuaHRtbFVUBQAD+2v8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANJm
MkdAj4GToAAAAOkAAAAxABgAAAAAAAEAAACkgcyUAABkb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNf
YXR0cmdldHZhbHVlMi1hY3R1YWwudHh0VVQFAAP8a/xVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgA0mYyR2kd9OAxAQAAQgIAAC8AGAAAAAAAAQAAAKSB15UAAGRvbS94aHRtbC9sZXZlbDEvY29y
ZS9oY19hdHRyZ2V0dmFsdWUyLWRpZmYudHh0VVQFAAP8a/xVdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgA0mYyR37/ZC6IAAAAnAAAADMAGAAAAAAAAQAAAKSBcZcAAGRvbS94aHRtbC9sZXZlbDEv
Y29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dFVUBQAD/Gv8VXV4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIANJmMkfNVF1xZQgAAGIbAAA3ABgAAAAAAAEAAACkgWaYAABkb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1wcmV0dHktZGlmZi5odG1sVVQFAAP8a/xVdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgA1WYyRwGzfiueAAAA5gAAAC8AGAAAAAAAAQAAAKSBPKEA
AGRvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1hY3R1YWwudHh0VVQFAAMBbPxV
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA1WYyRzvj4EYZAQAAIQIAAC0AGAAAAAAAAQAAAKSB
Q6IAAGRvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1kaWZmLnR4dFVUBQADAWz8
VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANVmMkeqMuDkfQAAAI4AAAAxABgAAAAAAAEAAACk
gcOjAABkb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhwZWN0ZWQudHh0VVQF
AAMBbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA1WYyR2rjvCovCAAANRoAADUAGAAAAAAA
AQAAAKSBq6QAAGRvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1wcmV0dHktZGlm
Zi5odG1sVVQFAAMBbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA02YyRwAAAAAAAAAAAAAA
ABEAGAAAAAAAAAAQAO1BSa0AAGRvbS94aHRtbC9sZXZlbDMvVVQFAAP9a/xVdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAA3WYyRwAAAAAAAAAAAAAAABYAGAAAAAAAAAAQAO1BlK0AAGRvbS94aHRt
bC9sZXZlbDMvY29yZS9VVAUAAxFs/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADTZjJHh/Ni
a2wAAAB0AAAANAAYAAAAAAABAAAApIHkrQAAZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50
YWRvcHRub2RlMDYtYWN0dWFsLnR4dFVUBQAD/Wv8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ANNmMkf135020AAAAI0BAAAyABgAAAAAAAEAAACkgb6uAABkb20veGh0bWwvbGV2ZWwzL2NvcmUv
ZG9jdW1lbnRhZG9wdG5vZGUwNi1kaWZmLnR4dFVUBQAD/Wv8VXV4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIANNmMkdPeSDwVwAAAFoAAAA2ABgAAAAAAAEAAACkgfqvAABkb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi1leHBlY3RlZC50eHRVVAUAA/1r/FV1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACADTZjJHdKH7p6YHAADQGAAAOgAYAAAAAAABAAAApIHBsAAAZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYtcHJldHR5LWRpZmYuaHRtbFVUBQAD
/Wv8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANNmMkcl3Cf6bQAAAHQAAAA0ABgAAAAAAAEA
AACkgdu4AABkb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi1hY3R1YWwu
dHh0VVQFAAP9a/xVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA02YyR/dt2nXRAAAAjQEAADIA
GAAAAAAAAQAAAKSBtrkAAGRvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2
LWRpZmYudHh0VVQFAAP9a/xVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA02YyR67Pch9XAAAA
WgAAADYAGAAAAAAAAQAAAKSB87oAAGRvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0
bm9kZTE2LWV4cGVjdGVkLnR4dFVUBQAD/Wv8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANNm
MkfQMJXqpQcAANAYAAA6ABgAAAAAAAEAAACkgbq7AABkb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9j
dW1lbnRhZG9wdG5vZGUxNi1wcmV0dHktZGlmZi5odG1sVVQFAAP+a/xVdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgA1GYyR9dNMaltAAAAdQAAADUAGAAAAAAAAQAAAKSB08MAAGRvbS94aHRtbC9s
ZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy1hY3R1YWwudHh0VVQFAAMAbPxVdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgA1GYyR2nnEJr1AAAAxgEAADMAGAAAAAAAAQAAAKSBr8QAAGRv
bS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy1kaWZmLnR4dFVUBQADAGz8
VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANRmMkfhC9tggQAAAJAAAAA3ABgAAAAAAAEAAACk
gRHGAABkb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjctZXhwZWN0ZWQu
dHh0VVQFAAMAbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA1GYyRxeav0v4BwAADRoAADsA
GAAAAAAAAQAAAKSBA8cAAGRvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUy
Ny1wcmV0dHktZGlmZi5odG1sVVQFAAMAbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA12Yy
RxoEJCJzAAAAfgAAAD4AGAAAAAAAAQAAAKSBcM8AAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1hY3R1YWwudHh0VVQFAAMFbPxVdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgA12YyR2icpwD1AAAA3gEAADwAGAAAAAAAAQAAAKSBW9AAAGRvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1kaWZmLnR4dFVUBQAD
BWz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANdmMkcWa7KqgAAAAJYAAABAABgAAAAAAAEA
AACkgcbRAABkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjYtZXhwZWN0ZWQudHh0VVQFAAMFbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA12YyRyO8
Bkf6BwAAaRoAAEQAGAAAAAAAAQAAAKSBwNIAAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb24yNi1wcmV0dHktZGlmZi5odG1sVVQFAAMFbPxVdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgA12YyR+HyN2VzAAAAfgAAAD4AGAAAAAAAAQAAAKSBONsAAGRvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy1hY3R1YWwudHh0
VVQFAAMFbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA12YyRwD02SH1AAAA3gEAADwAGAAA
AAAAAQAAAKSBI9wAAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yNy1kaWZmLnR4dFVUBQADBWz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANdmMkdO
j/MngAAAAJYAAABAABgAAAAAAAEAAACkgY7dAABkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjctZXhwZWN0ZWQudHh0VVQFAAMFbPxVdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgA12YyR67CCcT6BwAAaRoAAEQAGAAAAAAAAQAAAKSBiN4AAGRvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy1wcmV0dHktZGlmZi5o
dG1sVVQFAAMGbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA12YyRxE8bV5zAAAAfgAAAD4A
GAAAAAAAAQAAAKSBAOcAAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yOC1hY3R1YWwudHh0VVQFAAMGbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
12YyR1IdfHf1AAAA3gEAADwAGAAAAAAAAQAAAKSB6+cAAGRvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC1kaWZmLnR4dFVUBQADBmz8VXV4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIANdmMkcCCf2CgAAAAJYAAABAABgAAAAAAAEAAACkgVbpAABkb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0ZWQudHh0
VVQFAAMGbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA12YyRyY6CGH6BwAAaRoAAEQAGAAA
AAAAAQAAAKSBUOoAAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOC1wcmV0dHktZGlmZi5odG1sVVQFAAMGbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgA12YyR1JHuzlyAAAAfgAAAD4AGAAAAAAAAQAAAKSByPIAAGRvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1hY3R1YWwudHh0VVQFAAMGbPxVdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgA12YyR4L4x3b0AAAA3gEAADwAGAAAAAAAAQAAAKSBsvMAAGRv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1kaWZmLnR4
dFVUBQADBmz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANdmMkda7bwPgAAAAJYAAABAABgA
AAAAAAEAAACkgRz1AABkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjktZXhwZWN0ZWQudHh0VVQFAAMGbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
12YyR+C9LOP5BwAAaRoAAEQAGAAAAAAAAQAAAKSBFvYAAGRvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1wcmV0dHktZGlmZi5odG1sVVQFAAMGbPxVdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgA2GYyRwLdJPFpAAAAcQAAADEAGAAAAAAAAQAAAKSBjf4A
AGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LWFjdHVhbC50eHRVVAUAAwhs
/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADYZjJHYvuwOswAAACRAQAALwAYAAAAAAABAAAA
pIFh/wAAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQtZGlmZi50eHRVVAUA
Awhs/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADYZjJHhwSyLGkAAABxAAAAMwAYAAAAAAAB
AAAApIGWAAEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQu
dHh0VVQFAAMIbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA2GYyRySYK0WwBwAA5BgAADcA
GAAAAAAAAQAAAKSBbAEBAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LXBy
ZXR0eS1kaWZmLmh0bWxVVAUAAwhs/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADZZjJHewp7
dmsAAAB1AAAANQAYAAAAAAABAAAApIGNCQEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LWFjdHVhbC50eHRVVAUAAwls/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CADZZjJHh0HTQ84AAACdAQAAMwAYAAAAAAABAAAApIFnCgEAZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVnZXR0ZXh0Y29udGVudDE1LWRpZmYudHh0VVQFAAMJbPxVdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgA2WYyR6AvGgprAAAAdQAAADcAGAAAAAAAAQAAAKSBogsBAGRvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50eHRVVAUAAwls/FV1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADZZjJHa2tAeK4HAADsGAAAOwAYAAAAAAABAAAApIF+DAEAZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LXByZXR0eS1kaWZmLmh0bWxV
VAUAAwls/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADZZjJHZaJgomwAAAB1AAAANQAYAAAA
AAABAAAApIGhFAEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LWFj
dHVhbC50eHRVVAUAAwls/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADZZjJHAuCTGtAAAACd
AQAAMwAYAAAAAAABAAAApIF8FQEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE2LWRpZmYudHh0VVQFAAMJbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA2WYyR+aB
cqNsAAAAdQAAADcAGAAAAAAAAQAAAKSBuRYBAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0
dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHRVVAUAAwls/FV1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACADZZjJHNHhHHa4HAADsGAAAOwAYAAAAAAABAAAApIGWFwEAZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LXByZXR0eS1kaWZmLmh0bWxVVAUAAwls/FV1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADZZjJH+wZTZWwAAAB1AAAANQAYAAAAAAABAAAApIG5HwEAZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWFjdHVhbC50eHRVVAUAAwps
/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADZZjJHhuGG2/UAAADaAQAAMwAYAAAAAAABAAAA
pIGUIAEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWRpZmYudHh0
VVQFAAMKbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA2WYyR+V2oZSEAAAApAAAADcAGAAA
AAAAAQAAAKSB9iEBAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1l
eHBlY3RlZC50eHRVVAUAAwps/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADZZjJHDLSx9f8H
AABYGgAAOwAYAAAAAAABAAAApIHrIgEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE3LXByZXR0eS1kaWZmLmh0bWxVVAUAAwps/FV1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACADZZjJHB+/xNGoAAABzAAAAMwAYAAAAAAABAAAApIFfKwEAZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVpbnNlcnRiZWZvcmUxMS1hY3R1YWwudHh0VVQFAAMKbPxVdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgA2WYyR/DaMqLPAAAAigEAADEAGAAAAAAAAQAAAKSBNiwBAGRvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEtZGlmZi50eHRVVAUAAwps/FV1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACADZZjJHsXiTAVQAAABZAAAANQAYAAAAAAABAAAApIFwLQEAZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS1leHBlY3RlZC50eHRVVAUAAwps/FV1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADaZjJHVH2AmqUHAADOGAAAOQAYAAAAAAABAAAApIEz
LgEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS1wcmV0dHktZGlmZi5o
dG1sVVQFAAMLbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA2mYyR5dmnA5rAAAAcwAAADMA
GAAAAAAAAQAAAKSBSzYBAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUt
YWN0dWFsLnR4dFVUBQADC2z8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANpmMkeHVAEO0AAA
AIoBAAAxABgAAAAAAAEAAACkgSM3AQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJl
Zm9yZTE1LWRpZmYudHh0VVQFAAMLbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA2mYyR35f
m3JVAAAAWQAAADUAGAAAAAAAAQAAAKSBXjgBAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5z
ZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0VVQFAAMLbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgA2mYyRwPkUV+mBwAAzhgAADkAGAAAAAAAAQAAAKSBIjkBAGRvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlaW5zZXJ0YmVmb3JlMTUtcHJldHR5LWRpZmYuaHRtbFVUBQADC2z8VXV4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIANtmMkfbTsJ4awAAAHIAAAAyABgAAAAAAAEAAACkgTtBAQBkb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItYWN0dWFsLnR4dFVUBQADDmz8VXV4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIANtmMkdmqjQgzwAAAIcBAAAwABgAAAAAAAEAAACkgRJCAQBk
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItZGlmZi50eHRVVAUAAw5s/FV1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADbZjJHChmkrlUAAABYAAAANAAYAAAAAAABAAAApIFL
QwEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dFVU
BQADDmz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANtmMkfozdb2ogcAAMwYAAA4ABgAAAAA
AAEAAACkgQ5EAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItcHJldHR5
LWRpZmYuaHRtbFVUBQADDmz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANtmMkfavYlMagAA
AHEAAAAyABgAAAAAAAEAAACkgSJMAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNo
aWxkMTMtYWN0dWFsLnR4dFVUBQADDmz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANtmMkeB
kRS64gAAALABAAAwABgAAAAAAAEAAACkgfhMAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
bW92ZWNoaWxkMTMtZGlmZi50eHRVVAUAAw5s/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADb
ZjJHY/gFinEAAACBAAAANAAYAAAAAAABAAAApIFETgEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDEzLWV4cGVjdGVkLnR4dFVUBQADDmz8VXV4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIANtmMkevrjgt5AcAACYaAAA4ABgAAAAAAAEAAACkgSNPAQBkb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtcHJldHR5LWRpZmYuaHRtbFVUBQADDmz8VXV4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIANtmMkdX9lFAaQAAAHEAAAAyABgAAAAAAAEAAACkgXlXAQBkb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQtYWN0dWFsLnR4dFVUBQADDmz8VXV4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANtmMkdrZJ3n4gAAAK8BAAAwABgAAAAAAAEAAACkgU5Y
AQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQtZGlmZi50eHRVVAUAAw5s
/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADbZjJHUEN2wHEAAACAAAAANAAYAAAAAAABAAAA
pIGaWQEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LWV4cGVjdGVkLnR4
dFVUBQADDmz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANxmMkdGDVHY6QcAADsaAAA4ABgA
AAAAAAEAAACkgXlaAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQtcHJl
dHR5LWRpZmYuaHRtbFVUBQADD2z8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANxmMke5cmjh
agAAAHEAAAAyABgAAAAAAAEAAACkgdRiAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92
ZWNoaWxkMTUtYWN0dWFsLnR4dFVUBQADD2z8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANxm
MkdeS3TN5QAAALEBAAAwABgAAAAAAAEAAACkgapjAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlbW92ZWNoaWxkMTUtZGlmZi50eHRVVAUAAw9s/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CADcZjJHf7A7+XIAAACCAAAANAAYAAAAAAABAAAApIH5ZAEAZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDE1LWV4cGVjdGVkLnR4dFVUBQADD2z8VXV4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIANxmMkce6kup5wcAADIaAAA4ABgAAAAAAAEAAACkgdllAQBkb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtcHJldHR5LWRpZmYuaHRtbFVUBQADD2z8VXV4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIANxmMkfFFxKobAAAAHMAAAAzABgAAAAAAAEAAACkgTJuAQBk
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LWFjdHVhbC50eHRVVAUAAxBs
/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADcZjJH3ZTRPtAAAACKAQAAMQAYAAAAAAABAAAA
pIELbwEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC1kaWZmLnR4dFVU
BQADEGz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANxmMkdCrtnIVgAAAFkAAAA1ABgAAAAA
AAEAAACkgUZwAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LWV4cGVj
dGVkLnR4dFVUBQADEGz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANxmMkfIs2fYpQcAAM4Y
AAA5ABgAAAAAAAEAAACkgQtxAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDE4LXByZXR0eS1kaWZmLmh0bWxVVAUAAxBs/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADc
ZjJH4z7kT2sAAABzAAAAMwAYAAAAAAABAAAApIEjeQEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOS1hY3R1YWwudHh0VVQFAAMQbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgA3GYyR7L+1GfPAAAAigEAADEAGAAAAAAAAQAAAKSB+3kBAGRvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZGlmZi50eHRVVAUAAxBs/FV1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACADcZjJHAWV/T1UAAABZAAAANQAYAAAAAAABAAAApIE1ewEAZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS1leHBlY3RlZC50eHRVVAUAAxBs/FV1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADcZjJH8/jn+6UHAADOGAAAOQAYAAAAAAABAAAApIH5ewEAZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS1wcmV0dHktZGlmZi5odG1sVVQF
AAMQbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA3GYyRxhl+M1qAAAAcwAAADMAGAAAAAAA
AQAAAKSBEYQBAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjItYWN0dWFs
LnR4dFVUBQADEGz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANxmMkfFcaMazgAAAIoBAAAx
ABgAAAAAAAEAAACkgeiEAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIy
LWRpZmYudHh0VVQFAAMQbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA3GYyR3mscxBVAAAA
WQAAADUAGAAAAAAAAQAAAKSBIYYBAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMjItZXhwZWN0ZWQudHh0VVQFAAMQbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA3GYy
R4Ac032lBwAAzhgAADkAGAAAAAAAAQAAAKSB5YYBAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMjItcHJldHR5LWRpZmYuaHRtbFVUBQADEGz8VXV4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIANxmMkd1+VJKawAAAHMAAAAzABgAAAAAAAEAAACkgf2OAQBkb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLWFjdHVhbC50eHRVVAUAAxBs/FV1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACADcZjJH4a76I9AAAACKAQAAMQAYAAAAAAABAAAApIHVjwEAZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy1kaWZmLnR4dFVUBQADEGz8VXV4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIANxmMkc6Z9WXVQAAAFkAAAA1ABgAAAAAAAEAAACkgRCRAQBk
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLWV4cGVjdGVkLnR4dFVUBQAD
EGz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAN1mMkeB2my1pQcAAM4YAAA5ABgAAAAAAAEA
AACkgdSRAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLXByZXR0eS1k
aWZmLmh0bWxVVAUAAxFs/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADdZjJH7xhTNWoAAABz
AAAAMwAYAAAAAAABAAAApIHsmQEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzMC1hY3R1YWwudHh0VVQFAAMRbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA3WYyR5aG
IUvPAAAAigEAADEAGAAAAAAAAQAAAKSBw5oBAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzAtZGlmZi50eHRVVAUAAxFs/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADd
ZjJHX4odK1UAAABZAAAANQAYAAAAAAABAAAApIH9mwEAZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzMC1leHBlY3RlZC50eHRVVAUAAxFs/FV1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACADdZjJHXkb3VKUHAADOGAAAOQAYAAAAAAABAAAApIHBnAEAZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC1wcmV0dHktZGlmZi5odG1sVVQFAAMRbPxVdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgA3WYyR0/HCR1qAAAAcwAAADMAGAAAAAAAAQAAAKSB2aQBAGRv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMtYWN0dWFsLnR4dFVUBQADEWz8
VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAN1mMkesmh97zgAAAIoBAAAxABgAAAAAAAEAAACk
gbClAQBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLWRpZmYudHh0VVQF
AAMRbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA3WYyR9vRh3hVAAAAWQAAADUAGAAAAAAA
AQAAAKSB6aYBAGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0
ZWQudHh0VVQFAAMRbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA3WYyRw66757KAAAALgEA
AA0AGAAAAAAAAQAAAKSBracBAGVycm9yX2xvZy50eHRVVAUAAxJs/FV1eAsAAQT1AQAABFAAAABQ
SwECHgMKAAAAAADdZjJHAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UG+qAEAZmFzdC9VVAUAAxFs
/FV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADdZjJHAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA
7UH9qAEAZmFzdC9jYW52YXMvVVQFAAMRbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA3WYy
R5GdpYiFAAAAGgEAACYAGAAAAAAAAQAAAKSBQ6kBAGZhc3QvY2FudmFzL2NhbnZhcy1saW5lRGFz
aC1zdGRlcnIudHh0VVQFAAMRbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA3GYyRwAAAAAA
AAAAAAAAAAkAGAAAAAAAAAAQAO1BKKoBAGZhc3QvZG9tL1VUBQADEGz8VXV4CwABBPUBAAAEUAAA
AFBLAQIeAwoAAAAAANxmMkcAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQWuqAQBmYXN0L2RvbS9X
aW5kb3cvVVQFAAMQbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA3GYyR+PeR5IqCQAAd3QA
ADMAGAAAAAAAAQAAAKSBtaoBAGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVu
Y2UtYWN0dWFsLnR4dFVUBQADEGz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANxmMkfUmGLR
9QAAACgDAAAxABgAAAAAAAEAAACkgUy0AQBmYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1w
cmVjZWRlbmNlLWRpZmYudHh0VVQFAAMQbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA3GYy
RzdWCeU9CQAAEXUAADUAGAAAAAAAAQAAAKSBrLUBAGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9v
a3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0VVQFAAMQbPxVdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgA3GYyRyuCvNTqBwAAax0AADkAGAAAAAAAAQAAAKSBWL8BAGZhc3QvZG9tL1dpbmRvdy93
aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtcHJldHR5LWRpZmYuaHRtbFVUBQADEGz8VXV4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIAOFmMkfnfe4vVAIAAG4MAAARABgAAAAAAAEAAACkgbXHAQBmdWxs
X3Jlc3VsdHMuanNvblVUBQADFmz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAMpmMkfqinxC
YQUAAAUPAAAKABgAAAAAAAEAAACkgVTKAQBodHRwZC5jb25mVVQFAAPsa/xVdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAAy2YyRwAAAAAAAAAAAAAAACsAGAAAAAAAAAAAAKSB+c8BAHB5d2Vic29j
a2V0LndzLmxvZy0xOFNlcDIwMTUtMTI1NDIxLWVyci50eHRVVAUAA+1r/FV1eAsAAQT1AQAABFAA
AABQSwECHgMKAAAAAADLZjJHAAAAAAAAAAAAAAAAKwAYAAAAAAAAAAAApIFe0AEAcHl3ZWJzb2Nr
ZXQud3MubG9nLTE4U2VwMjAxNS0xMjU0MjEtb3V0LnR4dFVUBQAD7Wv8VXV4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAOFmMkfkfEWjniYAANukAAAMABgAAAAAAAEAAACkgcPQAQByZXN1bHRzLmh0
bWxVVAUAAxZs/FV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADhZjJHFEIIzchPAgDsaA0ACgAY
AAAAAAABAAAApIGn9wEAc3RhdHMuanNvblVUBQADFmz8VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIANhmMkcMxRUKiAQAAO0WAAAZABgAAAAAAAEAAACkgbNHBAB3cHR3a19wcm9jZXNzX2xvZy5v
dXQudHh0VVQFAAMHbPxVdXgLAAEE9QEAAARQAAAAUEsFBgAAAACuAK4A+lAAAI5MBAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261512</attachid>
            <date>2015-09-18 13:07:12 -0700</date>
            <delta_ts>2015-09-18 13:11:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150918130658.patch</filename>
            <type>text/plain</type>
            <size>437939</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMjVmMWQ5MGYzN2Zm
Y2E3YjE2NjZmNmUxNGQ5YzViMTc5ZGY1My4uMzQxMGJkMGJjNzMyZWIzNjUxYTRjYTliNmUzYzNk
YzZjOTQyZTE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEyMSBAQAogMjAxNS0wOS0xOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgKiBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAqIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKKzIwMTUtMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKwogICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIEVudGl0eSBOb2RlIHR5cGUKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTIzOQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggOGU2ODI3Njg2YWI4NGE3ODBiZWUwMzA3N2Q1OGU1MTcwNzc3NDM2ZS4uODVkZWJm
MDkwYmYwYzBkODkwMGU5OTkwY2VhODAxYzVlZmYwNmNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDE5IEBACiAyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAg
ICAgICAgRHJvcCBzdXBwb3J0IGZvciBsZWdhY3kgRW50aXR5UmVmZXJlbmNlIERPTSBOb2RlIHR5
cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTM0
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3Ag
aGFuZGxpbmcgRW50aXR5UmVmZXJlbmNlIE5vZGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tOgorICAgICAgICAoV2ViS2l0
OjpXS0RPTU5vZGVDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0Fzc2lzdGFibGVFbGVtZW50
KToKKworMjAxNS0wOS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAg
ICAgIERyb3Agc3VwcG9ydCBmb3IgRW50aXR5IE5vZGUgdHlwZQogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MjM5CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLmNwcAppbmRleCBkM2ViNTE3MzFlMDYwMDJlMTM0MzhkYWNiZjU3ZWE0N2FkZGM0MzFjLi4z
NDNhODAxMjVmNDJmOGQ5ODI4NzBjMzdiNDUyNDE0YmY4OGY1Yzg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCkBAIC0xNDksNyArMTQ5LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5j
cHAiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDU1MuY3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudC5j
cHAiCi0jaW5jbHVkZSAiSlNFbnRpdHlSZWZlcmVuY2UuY3BwIgogI2luY2x1ZGUgIkpTRXJyb3JF
dmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEV4Y2Vw
dGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCAwOGM0NDk2NjhhYTI4ZDYwZTU1M2Y5NWUyNjIyZmYwMjA1MWY2YjUwLi4wNzdk
NzQ2MTI2NmY4OWM3ZDY0MTJiOTcxMDFhZDNhYTcyYmY0MzY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE4MzIsMjAgKzE4MzIsNiBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAi
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk4NTks
NyArMTk4NDUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRE9NVVJMLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNET01XaW5kb3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0
dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQo
UGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJy
b3JFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0V2ZW50RXhjZXB0aW9uLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOTc4
N2JjODA1YjNiMTkxYzA0OTE5MzJjZTQ3ZjY1N2RkOTAwOWIzNy4uOGJlZTJhZjkyMTg3YmI2NjQw
Yjc0MzAzNWFiMDFjYWU3OGUyNGRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNTI1Nyw5ICs1MjU3LDYg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vs
ZW1lbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAiPgogICAgICAgPEZpbHRlcj5E
ZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTI2NDYsOSArMTI2
NDMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRWxlbWVudC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJj
ZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vycm9yRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPkRl
cml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzkwZDE1MTU2ZWJl
NDYxNGE0OGUzZTI5OTAxYTY3OGVkOGU1ZDc3Zi4uM2JjNTAxMzM2ZTM5NjhlODBhOWQwY2FkNDk2
MGY4ZjAzODgyMzlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzU4Nyw4ICszNTg3LDYgQEAKIAkJOTNGOUI2NTgwQkEwRjM1
RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNjU1MEJBMEYzNUUwMDg1NDA2
NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggKi87IH07CiAJCTkzRjlCNkUwMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2REUwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVu
dC5jcHAgKi87IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRGMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKLQkJOTNGOUI3NzQwQkE1RkREQzAw
ODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0
eVJlZmVyZW5jZS5jcHAgKi87IH07Ci0JCTkzRjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0Vu
dGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi87
IH07CiAJCTkzRjlCN0EwMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc5RTBCQTYw
MzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovOyB9OwogCQk5M0Y5QjdBMTBCQTYw
MzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRB
U2VjdGlvbi5oICovOyB9OwogCQk5M0ZEQUZDQTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5z
ZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwOTU5LDggKzEw
OTU3LDYgQEAKIAkJOTNGOUI2NTUwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVt
ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTENh
bnZhc0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5
QjZERTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29tbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudGl0eVJlZmVyZW5j
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjlCNzczMEJBNUZEREMwMDg1
NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0VudGl0eVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDREFUQVNlY3Rpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RjBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNl
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDREFUQVNlY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREFGQzkwQjExMzA3NDAwRTI3NDZG
IC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MDA0Nyw4ICsyMDA0Myw2IEBACiAJCQkJQkM2NDY0OTYxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9N
U3RyaW5nTWFwLmggKi8sCiAJCQkJNjVERjMxRTUwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVu
dC5jcHAgKi8sCiAJCQkJNjVERjMxRTYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5oICov
LAotCQkJCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAg
Ki8sCi0JCQkJOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmgg
Ki8sCiAJCQkJRkU4MERBNUYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwICov
LAogCQkJCUZFODBEQTYwMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggKi8sCiAJ
CQkJRkU4MERBNjEwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uY3BwICovLApAQCAt
MjU1NzksNyArMjU1NzMsNiBAQAogCQkJCUZENzg2OEJBMTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUZBMDlEMUND
NjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFERUM3OEY4MThF
RTUzMDgwMDEzMTVDMiAvKiBKU0VsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAotCQkJCTkz
RjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkVDRjdBREQxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEU4Mzc4RTA5Rjg1RDRGMDBCODVBRTQgLyogSlNFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTEzOSw3ICsyOTEzMiw2IEBACiAJCQkJRkQ3ODY4Qjkx
MzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk2NURGMzFGOTA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDMkVENTU1MEM2QjlCRDMwMDkyMEJGRiAvKiBKU0VsZW1lbnRDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGOUI3NzQwQkE1RkREQzAwODU0MDY0IC8qIEpT
RW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFQ0Y3QURDMTAxNjJCMzgw
MDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjNENDYxNDgx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0RTgzNzg0MDlGODVEMUMwMEI4NUFFNCAvKiBKU0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0
ZS5jcHAKaW5kZXggNTljZjY4YzEyOTBhN2FiMDI2ZTMxZTMyNjFiMDY4YTQzZDM2NjA5My4uZTNi
OTcxNjYzYmNhYmY4N2M1NDU1ODM5NTM4MTI4ZTkwMGIzOGYwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCkBAIC05Myw4
ICs5Myw2IEBAIFdlYktpdERPTU5vZGUqIHdyYXAoTm9kZSogbm9kZSkKICAgICAgICAgcmV0dXJu
IFdFQktJVF9ET01fTk9ERSh3cmFwVGV4dChkb3duY2FzdDxUZXh0Pihub2RlKSkpOwogICAgIGNh
c2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9O
T0RFKHdyYXBDREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpKTsK
LSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgcmV0dXJuIFdF
QktJVF9ET01fTk9ERSh3cmFwRW50aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0PEVudGl0eVJlZmVy
ZW5jZSo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05P
REU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcFByb2Nlc3NpbmdJbnN0cnVj
dGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2RlKSkpOwogICAgIGNh
c2UgTm9kZTo6Q09NTUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAKaW5kZXggYWVhYzA4N2Q5ZGNmYTUxMTA3OTNkMmZmMmM5YWZjMjNlMTJiODE1
Mi4uYjI3YTk4MWM3ZDA5ZmE1NWNiZTI5NjliYjczYjIxZDQxNDQ4ODQ0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0zMyw3ICszMyw2IEBACiAj
aW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgog
I2luY2x1ZGUgIkVudGl0eS5oIgotI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MQXVkaW9FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKQEAgLTUxLDcgKzUwLDYgQEAKICNpbmNsdWRlICJK
U0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAi
SlNEb2N1bWVudFR5cGUuaCIKLSNpbmNsdWRlICJKU0VudGl0eVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnQuaCIKICNpbmNs
dWRlICJKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKQEAgLTIwOSw5ICsyMDcsNiBAQCBz
dGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGNyZWF0ZVdyYXBwZXJJbmxpbmUoRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iagogI2VuZGlmCiAgICAgICAgICAgICAgICAgd3JhcHBlciA9
IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIERvY3VtZW50RnJhZ21lbnQsIG5vZGUp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5D
RV9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxP
YmplY3QsIEVudGl0eVJlZmVyZW5jZSwgbm9kZSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xv
YmFsT2JqZWN0LCBOb2RlLCBub2RlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Lm1tCmluZGV4IDhlMWZiZTFmY2Q3YzM3YzQ2ZTkwYzMzY2MwNDQyMzRhMWFlNDg3ODIuLmU4Mzk2
NWRiYzM0ZjIxYzNjZTMxMTYwZDQ3NWE2ZDI4MmNhM2ZiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NLm1tCkBAIC0zMTEsOCArMzExLDYgQEAgQ2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6
Tm9kZSogaW1wbCkKICAgICAgICAgICAgIHJldHVybiBbRE9NVGV4dCBjbGFzc107CiAgICAgICAg
IGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICAgICAgcmV0
dXJuIFtET01DREFUQVNlY3Rpb24gY2xhc3NdOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgICAgIHJldHVybiBbRE9NRW50aXR5UmVm
ZXJlbmNlIGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9DRVNTSU5HX0lO
U1RSVUNUSU9OX05PREU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTVByb2Nlc3NpbmdJbnN0cnVj
dGlvbiBjbGFzc107CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q09NTUVOVF9OT0RFOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuY3BwCmluZGV4IGFjN2I2NmY5OTcwNWQ4OTllZWNlM2MyODk0Zjg5ZTFmODA5ZDE1
ZjguLjk2ZDdlZWQzYjBmZjIxNTU5YWRjMzM1ZTIwYTRjNDU5ZGYyMWJkYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0
ci5jcHAKQEAgLTE0OCwxMyArMTQ4LDcgQEAgUmVmPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIC8vIERPTSBT
ZWN0aW9uIDEuMS4xCiBib29sIEF0dHI6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkg
Y29uc3QKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBURVhUX05PREU6Ci0g
ICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQor
ICAgIHJldHVybiB0eXBlID09IFRFWFRfTk9ERTsKIH0KIAogdm9pZCBBdHRyOjpjaGlsZHJlbkNo
YW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0F0dHIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKaW5kZXggMTI0YzZkN2EyYWEyODY4
MzBmY2JhMjk2Mjg4ODhiNzIwMjI5OTI4Ni4uZjZmMzYyMDc3MTdhMzVjMmIyNDNmYWFhOTY1ZGMz
YWI3MmYyNmJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzOwogCi0vLyBBdHRyIGNhbiBoYXZlIFRleHQgYW5kIEVudGl0eVJlZmVyZW5jZSBjaGls
ZHJlbgorLy8gQXR0ciBjYW4gaGF2ZSBUZXh0IGNoaWxkcmVuCiAvLyB0aGVyZWZvcmUgaXQgaGFz
IHRvIGJlIGEgZnVsbGJsb3duIE5vZGUuIFRoZSBwbGFuCiAvLyBpcyB0byBkeW5hbWljYWxseSBh
bGxvY2F0ZSBhIHRleHRjaGlsZCBhbmQgc3RvcmUgdGhlCiAvLyByZXN1bHRpbmcgbm9kZXZhbHVl
IGluIHRoZSBhdHRyaWJ1dGUgdXBvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmlu
ZGV4IGM5NjM0YjBjZTEwMDM0ZTkyYjVjNTE2ZTEzMmQwYzQzNDMxN2E1MGQuLjNmNGZlMGY4MDM3
NGM4MzcwMDk5MGVkNGI0NWE0YTlkMjE5NDliYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5jcHAKQEAgLTE4MCw3ICsxODAsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUg
Y2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogewog
ICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUuCiAgICAgaWYgKChu
ZXdDaGlsZC5pc0VsZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQuaXNUZXh0Tm9kZSgpKSAmJiBuZXdQ
YXJlbnQuaXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVh
ZE9ubHlOb2RlKCkpOwogICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5v
ZGUoKSk7CiAgICAgICAgIEFTU0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdD
aGlsZCkpOwogICAgICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdD
aGlsZCwgbmV3UGFyZW50KSkKQEAgLTE5Myw4ICsxOTIsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2Vw
dGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUm
IG5ldwogICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJu
IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQuaXNSZWFkT25seU5v
ZGUoKSkKLSAgICAgICAgcmV0dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICBp
ZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkK
ICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIApAQCAtMjA5LDcgKzIwNiw2
IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5l
ck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0Fj
Y2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5v
ZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlQoIW5ld1BhcmVu
dC5pc1JlYWRPbmx5Tm9kZSgpKTsKICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlw
ZU5vZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0No
aWxkKSk7CiAgICAgaWYgKG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7CkBAIC01MjEs
MTIgKzUxNyw2IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSYgb2xkQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMgPSAwOwogCi0gICAgLy8gTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgdGhpcyBub2RlIGlzIHJlYWRvbmx5LgotICAg
IGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgLy8gTk9UX0ZP
VU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZS4K
ICAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAgICAgZWMgPSBO
T1RfRk9VTkRfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjE3OTNjMjJmMDUzZmI3
YjA2NTY4MTdjZmM3ZGFiMzE4NGFlOGJkNC4uNmNmMGVhZTQwNjQwZDBmMTFkNjE0NDQ3OTEwNDE3
NjU3NDhhZDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC05MDksMTcgKzkwOSwxMCBA
QCBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBEb2N1bWVudDo6Y3JlYXRlUHJvY2Vzc2lu
Z0luc3RydWN0aW9uKGNvbnN0IFN0cmluZwogICAgIHJldHVybiBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b246OmNyZWF0ZSgqdGhpcywgdGFyZ2V0LCBkYXRhKTsKIH0KIAotUmVmUHRyPEVudGl0eVJlZmVy
ZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmIG5hbWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNy
ZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICBpZiAoIWlzVmFsaWROYW1lKG5hbWUpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9DSEFS
QUNURVJfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgaWYgKGlzSFRN
TERvY3VtZW50KCkpIHsKLSAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0
ZSgqdGhpcywgbmFtZSk7CisgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAogUmVmPFRleHQ+IERvY3VtZW50OjpjcmVhdGVFZGl0aW5nVGV4dE5vZGUo
Y29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtOTQ0LDcgKzkzNyw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1
bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wgZGVlcCwgRXhjZXB0aW9u
Q29kZSYKICAgICBjYXNlIEVMRU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBj
YXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBjYXNlIENPTU1FTlRf
Tk9ERToKICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC05NzQsMTEgKzk2Niw2
IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291
cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
Ci0gICAgaWYgKHNvdXJjZS0+aXNSZWFkT25seU5vZGUoKSkgewotICAgICAgICBlYyA9IE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
CiAgICAgRXZlbnRRdWV1ZVNjb3BlIHNjb3BlOwogCiAgICAgc3dpdGNoIChzb3VyY2UtPm5vZGVU
eXBlKCkpIHsKQEAgLTE3MTAsNTIgKzE2OTcsNTIgQEAgUmVmPFJhbmdlPiBEb2N1bWVudDo6Y3Jl
YXRlUmFuZ2UoKQogICAgIHJldHVybiBSYW5nZTo6Y3JlYXRlKCp0aGlzKTsKIH0KIAotUmVmUHRy
PE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9v
bCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2Rl
SXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwg
d2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGVjKTsKK30KKworUmVmUHRyPE5vZGVJdGVy
YXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIE5vZGVJdGVyYXRvcjo6Y3Jl
YXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzKTsKKyAgICByZXR1cm4gTm9kZUl0ZXJhdG9yOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hv
dywgV1RGOjptb3ZlKGZpbHRlcikpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVu
dDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0
cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1
cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
LCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRv
U2hvdywgbnVsbHB0ciwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6
Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywg
RXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRl
Tm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVy
biBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZmFsc2UsIGVj
KTsKKyAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIDB4RkZGRkZGRkYsIG51bGxw
dHIsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJ
dGVyYXRvcihOb2RlKiByb290LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2Vy
PiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdo
YXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCAweEZGRkZGRkZG
LCBudWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3Qs
IHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBlYyk7CiB9CiAKLVJlZlB0cjxUcmVlV2Fs
a2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRp
dHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1
bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0
VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7Ci19Ci0K
LVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwg
d2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIFRy
ZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSk7CiB9
CiAKIFJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiBy
b290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIG51bGxwdHIsIGZhbHNl
LCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgbnVs
bHB0ciwgZWMpOwogfQogCiBSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVX
YWxrZXIoTm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0
ZVRyZWVXYWxrZXIocm9vdCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICBy
ZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBlYyk7CiB9
CiAKIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKQpAQCAtMzM0OCw3
ICszMzM1LDYgQEAgYm9vbCBEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBl
KSBjb25zdAogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRf
RlJBR01FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX05PREU6Ci0gICAgY2FzZSBFTlRJVFlf
UkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2FzZSBYUEFUSF9OQU1F
U1BBQ0VfTk9ERToKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzM3Niw3ICszMzYyLDYgQEAg
Ym9vbCBEb2N1bWVudDo6Y2FuQWNjZXB0Q2hpbGQoY29uc3QgTm9kZSYgbmV3Q2hpbGQsIGNvbnN0
IE5vZGUqIHJlZkNoaWxkLCBBY2NlcHQKICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgIGNh
c2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICBjYXNl
IEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIFhQ
QVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IDc0Y2VhYTk2YmM5MmY0NzgxN2NlYmI1ZjNjZjkzOTBhMTlhNzdkNjkuLjJjYWE4
YjAwY2IyNGQ5MjVkMTE5ODgxNjk5ZDY4MDc4N2M5OTZhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC01MzUsMTIgKzUzNSwxMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8
UmFuZ2U+IGNyZWF0ZVJhbmdlKCk7CiAKLSAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVO
b2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8
Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2ws
IEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRyPE5vZGVJ
dGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hh
dFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQ
dHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPE5vZGVJdGVyYXRv
cj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAg
IFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVh
dGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRy
PE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGlu
Z3MuCiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0
cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDgxYjEwYWU2MDk5NTJlZjQwNjU4NGQwNzc2
NTY2NGU2NzAxMWQ1MTQuLmJhOWVjMzM2MDAyNWZhMWIwNzIyZDNmY2VkZDZmOWM1MmYxYTRlNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMzksNyArMzksMTAgQEAKICAgICBbT2JqQ0xl
Z2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gUHJvY2Vz
c2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihbRGVmYXVsdD1VbmRl
ZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBkYXRhKTsKICAgICBbTmV3
T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEF0dHIgY3JlYXRlQXR0cmlidXRlKFtEZWZhdWx0PVVu
ZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIFtOZXdPYmplY3QsIFJhaXNl
c0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVs
dD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKworI2lmIGRlZmluZWQoTEFO
R1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVsdD1V
bmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyNlbmRpZgogCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICBbSW1w
bGVtZW50ZWRBcz1nZXRFbGVtZW50c0J5VGFnTmFtZUZvck9iakNdIE5vZGVMaXN0IGdldEVsZW1l
bnRzQnlUYWdOYW1lKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHRhZ25h
bWUpOwpAQCAtOTIsMTQgKzk1LDIzIEBACiAKICAgICAvLyBET00gTGV2ZWwgMiBUcmFudmVyc2Fs
IGFuZCBSYW5nZSAoRG9jdW1lbnRUcmF2ZXJzYWwgaW50ZXJmYWNlKQogCi0gICAgW09iakNMZWdh
Y3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVy
YXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAorI2lmIGRlZmluZWQoTEFOR1VBR0Vf
T0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgW09iakNMZWdhY3lVbm5h
bWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSBOb2RlSXRlcmF0b3IgY3JlYXRlTm9kZUl0
ZXJhdG9yKE5vZGUgcm9vdCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93ID0gMHhGRkZGRkZGRiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyLAog
ICAgICAgICBvcHRpb25hbCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOwotICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBU
cmVlV2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSByb290LAorICAgIFtPYmpDTGVnYWN5VW5u
YW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUgcm9vdCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
ID0gMHhGRkZGRkZGRiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyLAogICAg
ICAgICBvcHRpb25hbCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworI2Vsc2UKKyAg
ICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRl
cmF0b3IoTm9kZSByb290LAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3cgPSAweEZGRkZGRkZGLAorICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIpOwor
ICAgIFtSYWlzZXNFeGNlcHRpb24sIE5ld09iamVjdF0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUgcm9vdCwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
ID0gMHhGRkZGRkZGRiwKKyAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyKTsKKyNl
bmRpZgogCiAgICAgLy8gRE9NIExldmVsIDIgQWJzdHJhY3QgVmlld3MgKERvY3VtZW50VmlldyBp
bnRlcmZhY2UpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCBm
OWIzOGEwYmQyOGU4ZTNjNjA5MzRhZmYxYTYwMDU5MjcwOTAzZmVjLi5hNjcwMDJjNGJmOTg3NDRh
Mjk1M2Y0OWUyNmU2MWJhMGNhZDM3MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJh
Z21lbnQuY3BwCkBAIC02MCw3ICs2MCw2IEBAIGJvb2wgRG9jdW1lbnRGcmFnbWVudDo6Y2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgICAgICBjYXNlIENPTU1FTlRfTk9E
RToKICAgICAgICAgY2FzZSBURVhUX05PREU6CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9O
T0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDhiZTMzNzdjODEwMDMyZmFiOGJlN2FiNDM2YjJkMjU0
ODllNzMwZjEuLmY1MzMxYjkwYjViMjdjZTk1YmY3ZTU0MmIzOTVhMzY5NmNkZTk1ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTE3NTEsNyArMTc1MSw2IEBAIGJvb2wgRWxlbWVudDo6Y2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09NTUVOVF9OT0RF
OgogICAgIGNhc2UgUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgIGNhc2UgQ0RBVEFf
U0VDVElPTl9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VudGl0eVJlZmVyZW5jZS5jcHAKaW5kZXggN2U5MWE0NjJkYTgyMDlkOTIyYzQ1ZGM4NGM0MWEw
ODU1YWQ2YmUxYS4uZTU4MjRmMTA4YmI2ZjU0M2I1YTA3NjdhZmUxZmE4NGEyZDQ4MWRjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKQEAgLTI1LDMwICsyNSw5IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIEVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVm
ZXJlbmNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKQoraW5s
aW5lIEVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJikKICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQpCi0gICAgLCBtX2Vu
dGl0eU5hbWUoZW50aXR5TmFtZSkKIHsKIH0KIAotUmVmPEVudGl0eVJlZmVyZW5jZT4gRW50aXR5
UmVmZXJlbmNlOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGVudGl0
eU5hbWUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW50aXR5UmVmZXJlbmNlKGRvY3Vt
ZW50LCBlbnRpdHlOYW1lKSk7Ci19Ci0KLVN0cmluZyBFbnRpdHlSZWZlcmVuY2U6Om5vZGVOYW1l
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbnRpdHlOYW1lOwotfQotCi1Ob2RlOjpOb2RlVHlw
ZSBFbnRpdHlSZWZlcmVuY2U6Om5vZGVUeXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRU5USVRZ
X1JFRkVSRU5DRV9OT0RFOwotfQotCi1SZWY8Tm9kZT4gRW50aXR5UmVmZXJlbmNlOjpjbG9uZU5v
ZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCi17
Ci0gICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgbV9lbnRpdHlOYW1lKTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZl
cmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaAppbmRleCA4NmRm
ZWIzOTgyNWIzNDUwZTc1MzU5MjUwNjg1MTEwYjNhZjBjYThmLi4xOGMyZWMxYWZjZTU3MGU4MGU4
NjVhMDg0NWJhYmQ4ODY2Zjk2MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50
aXR5UmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5o
CkBAIC0yNiwxOCArMjYsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVudGl0
eVJlZmVyZW5jZSBmaW5hbCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPEVudGl0eVJlZmVyZW5jZT4gY3JlYXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiBlbnRpdHlOYW1lKTsKLQorY2xhc3MgRW50aXR5UmVmZXJlbmNlIDogcHVibGljIENvbnRhaW5l
ck5vZGUgewogcHJpdmF0ZToKICAgICBFbnRpdHlSZWZlcmVuY2UoRG9jdW1lbnQmLCBjb25zdCBT
dHJpbmcmIGVudGl0eU5hbWUpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBD
bG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKLQotICAgIFN0cmluZyBtX2VudGl0eU5hbWU7CiB9
OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5
UmVmZXJlbmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCmlu
ZGV4IDZkMDUzNWY5YmMxZGFhNzkxNzgzMWVmZGJlNmFiZDA3YWU5YjdkYmEuLjI3MzFkN2E2NjA5
NjM1YmQ2YzE2ZTZkMmM2NmU2MDdlYmI4YzRjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuaWRsCkBAIC0xNyw4ICsxNywxMiBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCiAgKi8KIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdV
QUdFX09CSkVDVElWRV9DCisKIFsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBKU0dlbmVy
YXRlVG9KU09iamVjdAogXSBpbnRlcmZhY2UgRW50aXR5UmVmZXJlbmNlIDogTm9kZSB7CiB9Owog
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA0MzYyZDY1NmRjNDdmZDY0MzM1YjQ2ODYxNGJl
NzM2NTg4MTMwMmJhLi5kZWYyNGNlNjcwOTU1NjY0YmNiYTEzNTA0NzE2ZmM0MTdjYWY2MzM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCkBAIC0xMDMsNyArMTAzLDYgQEAgdm9pZCBOb2RlOjpkdW1wU3RhdGlz
dGljcygpCiAgICAgc2l6ZV90IHRleHROb2RlcyA9IDA7CiAgICAgc2l6ZV90IGNkYXRhTm9kZXMg
PSAwOwogICAgIHNpemVfdCBjb21tZW50Tm9kZXMgPSAwOwotICAgIHNpemVfdCBlbnRpdHlSZWZl
cmVuY2VOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGVudGl0eU5vZGVzID0gMDsKICAgICBzaXplX3Qg
cGlOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGRvY3VtZW50Tm9kZXMgPSAwOwpAQCAtMTY4LDEwICsx
NjcsNiBAQCB2b2lkIE5vZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICAgICAgICAgICAgICArK2Nv
bW1lbnROb2RlczsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOiB7Ci0gICAgICAgICAgICAgICAgKytl
bnRpdHlSZWZlcmVuY2VOb2RlczsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGNhc2UgRU5USVRZX05PREU6IHsKICAgICAgICAgICAgICAgICArK2Vu
dGl0eU5vZGVzOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjExLDcgKzIwNiw2IEBAIHZv
aWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgIHByaW50ZigiICBOdW1iZXIgb2YgVGV4dCBu
b2RlczogJXp1XG4iLCB0ZXh0Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgQ0RBVEFT
ZWN0aW9uIG5vZGVzOiAlenVcbiIsIGNkYXRhTm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIg
b2YgQ29tbWVudCBub2RlczogJXp1XG4iLCBjb21tZW50Tm9kZXMpOwotICAgIHByaW50ZigiICBO
dW1iZXIgb2YgRW50aXR5UmVmZXJlbmNlIG5vZGVzOiAlenVcbiIsIGVudGl0eVJlZmVyZW5jZU5v
ZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIEVudGl0eSBub2RlczogJXp1XG4iLCBlbnRp
dHlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24g
bm9kZXM6ICV6dVxuIiwgcGlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBEb2N1bWVu
dCBub2RlczogJXp1XG4iLCBkb2N1bWVudE5vZGVzKTsKQEAgLTM4NCwxNCArMzc4LDggQEAgU3Ry
aW5nIE5vZGU6Om5vZGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12
b2lkIE5vZGU6OnNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmIC8qbm9kZVZhbHVlKi8sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQordm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiAvKm5v
ZGVWYWx1ZSovLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlI6IFJhaXNlZCB3aGVuIHRoZSBub2RlIGlzIHJlYWRvbmx5Ci0gICAgaWYgKGlzUmVh
ZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBCeSBkZWZhdWx0LCBzZXR0aW5nIG5v
ZGVWYWx1ZSBoYXMgbm8gZWZmZWN0LgogfQogCkBAIC04OTAsMTEgKzg3OCw2IEBAIHZvaWQgTm9k
ZTo6Y2hlY2tTZXRQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzUmVhZE9ubHlOb2Rl
KCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBGSVhNRTogUmFpc2UgTkFNRVNQQUNFX0VSUiBpZiBw
cmVmaXggaXMgbWFsZm9ybWVkIHBlciB0aGUgTmFtZXNwYWNlcyBpbiBYTUwgc3BlY2lmaWNhdGlv
bi4KIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbm9kZU5hbWVzcGFjZVVSSSA9IG5hbWVzcGFj
ZVVSSSgpOwpAQCAtMTQyMiw3ICsxNDA1LDYgQEAgc3RhdGljIHZvaWQgYXBwZW5kVGV4dENvbnRl
bnQoY29uc3QgTm9kZSogbm9kZSwgYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5lcywgYm9vbCYKICAg
ICAgICAgfQogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9O
T0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgaXNOdWxsU3RyaW5nID0gZmFsc2U7
CiAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CkBAIC0xNDU4LDcgKzE0NDAsNiBAQCB2b2lk
IE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgRUxFTUVOVF9OT0RFOgogICAg
ICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERToKICAgICAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOiB7CiAgICAgICAgICAg
ICBSZWY8Q29udGFpbmVyTm9kZT4gY29udGFpbmVyKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0
aGlzKSk7CiAgICAgICAgICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRh
aW5lcik7CkBAIC0xNDc4LDcgKzE0NTksNiBAQCB2b2lkIE5vZGU6OnNldFRleHRDb250ZW50KGNv
bnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIEVsZW1lbnQqIE5vZGU6OmFu
Y2VzdG9yRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgLy8gSW4gdGhlb3J5LCB0aGVyZSBjYW4gYmUg
RW50aXR5UmVmZXJlbmNlIG5vZGVzIGJldHdlZW4gZWxlbWVudHMsIGJ1dCB0aGlzIGlzIGN1cnJl
bnRseSBub3Qgc3VwcG9ydGVkLgogICAgIGZvciAoQ29udGFpbmVyTm9kZSogYW5jZXN0b3IgPSBw
YXJlbnROb2RlKCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnROb2RlKCkp
IHsKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCphbmNlc3RvcikpCiAgICAgICAgICAgICByZXR1
cm4gZG93bmNhc3Q8RWxlbWVudD4oYW5jZXN0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMDRlMzhkMjVi
NDNiNDBmYmQ1YjM2NGNmNDMzZTc3YzNjMTA3MzVjNC4uYTJmYzQzODg5NDBlMjJjZjc1YmY1OTVi
NzQ4OWRkODM5MmQ1MDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0xMjUsNyArMTI1LDYgQEAgcHVibGlj
OgogICAgICAgICBBVFRSSUJVVEVfTk9ERSA9IDIsCiAgICAgICAgIFRFWFRfTk9ERSA9IDMsCiAg
ICAgICAgIENEQVRBX1NFQ1RJT05fTk9ERSA9IDQsCi0gICAgICAgIEVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERSA9IDUsCiAgICAgICAgIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSA9IDcsCiAgICAg
ICAgIENPTU1FTlRfTk9ERSA9IDgsCiAgICAgICAgIERPQ1VNRU5UX05PREUgPSA5LApAQCAtMTM0
LDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgWFBBVEhfTkFNRVNQQUNFX05PREUgPSAxMywK
ICAgICB9OwogICAgIGVudW0gRGVwcmVjYXRlZE5vZGVUeXBlIHsKKyAgICAgICAgRU5USVRZX1JF
RkVSRU5DRV9OT0RFID0gNSwKICAgICAgICAgRU5USVRZX05PREUgPSA2LAogICAgICAgICBOT1RB
VElPTl9OT0RFID0gMTIsCiAgICAgfTsKQEAgLTQxNyw3ICs0MTcsNiBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0luU2hhZG93VHJlZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNJblNoYWRvd1Ry
ZWVGbGFnKTsgfQogICAgIGJvb2wgaXNJblRyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZs
YWcoc3RhdGljX2Nhc3Q8Tm9kZUZsYWdzPihJbkRvY3VtZW50RmxhZyB8IElzSW5TaGFkb3dUcmVl
RmxhZykpOyB9CiAKLSAgICBib29sIGlzUmVhZE9ubHlOb2RlKCkgY29uc3QgeyByZXR1cm4gbm9k
ZVR5cGUoKSA9PSBFTlRJVFlfUkVGRVJFTkNFX05PREU7IH0KICAgICBib29sIGlzRG9jdW1lbnRU
eXBlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RF
OyB9CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdW5zaWduZWQgY291bnRDaGlsZE5vZGVzKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IDQ4YTBhMTkyYTdiZWUwY2ZmMjA5ZDVl
YTRkODljOWMzMWEwNGM3MDkuLmRhOWQwMjNiMjVlOGY5ZjJiZjU3YWM4ODEwMzhkNzI1ZDVlMWM2
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC03Niw4ICs3Niw4IEBAIGJv
b2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRvUHJldmlvdXMoTm9kZSogcm9vdCkK
ICAgICByZXR1cm4gbm9kZTsKIH0KIAotTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9k
ZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5v
ZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9k
ZUZpbHRlcj4mJiBmaWx0ZXIpCisgICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0
VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkKICAgICAsIG1fcmVmZXJlbmNlTm9kZShyb290KCks
IHRydWUpCiB7CiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmF0dGFjaE5vZGVJdGVyYXRvcih0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAppbmRleCA5NzE5Mjc0YTNkYTFiOTc1NDA2YWE3
MWNjNWU5ZWFlNWYzYzdkMzM1Li40ZjE1MDdkZTAzYWMzMDNlNWYxODBiMzMxMTI2ODA3NGM2OTgw
ODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCkBAIC0zNyw5ICszNyw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE5vZGVJdGVyYXRvciA6IHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPE5vZGVJdGVyYXRvcj4sIHB1YmxpYyBOb2RlSXRl
cmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUl0ZXJhdG9y
PiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJl
bmNlcykKKyAgICAgICAgc3RhdGljIFJlZjxOb2RlSXRlcmF0b3I+IGNyZWF0ZShQYXNzUmVmUHRy
PE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmls
dGVyPiYmIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwg
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkp
OwogICAgICAgICB9CiAgICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIApAQCAtNTQsNyArNTQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9k
ZSYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9k
ZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wg
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIE5vZGVJdGVyYXRvcihQYXNzUmVmUHRy
PE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsK
IAogICAgICAgICBzdHJ1Y3QgTm9kZVBvaW50ZXIgewogICAgICAgICAgICAgUmVmUHRyPE5vZGU+
IG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCmluZGV4IDEyMDI1ZGU2YjhiNDk0
NzNlZmQ3Zjc4NDAxMWY0MWY3NjEzMDdiNjcuLjIzMTEyZDk5NDNmNTkzMzdhZmYxNWRhY2M3YzFl
ZTViN2E1Zjc5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3Iu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCkBAIC0yNiw3ICsy
Niw5IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBOb2RlRmlsdGVyIGZpbHRlcjsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAm
JiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4
cGFuZEVudGl0eVJlZmVyZW5jZXM7CisjZW5kaWYKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZSByZWZlcmVuY2VOb2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBvaW50ZXJC
ZWZvcmVSZWZlcmVuY2VOb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA1MmUyZjE5MzIxNjdh
ZmM4NWE1MTlkZTUwOWZkNTFiYWYxNjA5NDkzLi44YzFlMmIwZDgyNDA3Y2RlMjMwNmFmZjM2YjE1
YWE0OTE3NGEzNGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTU3Miw3ICs1NzIsNiBAQCBzdGF0
aWMgaW5saW5lIHVuc2lnbmVkIGxlbmd0aE9mQ29udGVudHNJbk5vZGUoTm9kZSogbm9kZSkKICAg
ICAgICAgcmV0dXJuIGRvd25jYXN0PENoYXJhY3RlckRhdGE+KCpub2RlKS5sZW5ndGgoKTsKICAg
ICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RF
OgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6
RE9DVU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICBj
YXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC03MzMsNyArNzMyLDYgQEAgUmVm
UHRyPE5vZGU+IFJhbmdlOjpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBl
IGFjdGlvbiwgUGFzc1JlZlB0cjwKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2RlOjpFTEVN
RU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAg
ICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVO
VF9GUkFHTUVOVF9OT0RFOgpAQCAtODU2LDEzICs4NTQsNiBAQCB2b2lkIFJhbmdlOjppbnNlcnRO
b2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6
IFJhaXNlZCBpZiBhbiBhbmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVyIGJvdW5kYXJ5LXBvaW50
IG9mCi0gICAgLy8gdGhlIFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBpZiAoY29udGFpbmVkQnlS
ZWFkT25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBS
YWlzZWQgaWYgdGhlIGNvbnRhaW5lciBvZiB0aGUgc3RhcnQgb2YgdGhlIFJhbmdlIGlzIG9mIGEg
dHlwZSB0aGF0CiAgICAgLy8gZG9lcyBub3QgYWxsb3cgY2hpbGRyZW4gb2YgdGhlIHR5cGUgb2Yg
bmV3Tm9kZSBvciBpZiBuZXdOb2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBjb250YWluZXIuCiAK
QEAgLTEwMjIsNyArMTAxMyw2IEBAIE5vZGUqIFJhbmdlOjpjaGVja05vZGVXT2Zmc2V0KE5vZGUq
IG4sIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5v
ZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
Tk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9k
ZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVT
UEFDRV9OT0RFOiB7CiAgICAgICAgICAgICBpZiAoIW9mZnNldCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKQEAgLTEwNTIsNyArMTA0Miw2IEBAIHZvaWQgUmFuZ2U6OmNoZWNrTm9k
ZUJBKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6
OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAg
ICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElU
WV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNU
SU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5v
ZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTA3Miw3ICsxMDYxLDYgQEAgdm9pZCBSYW5n
ZTo6Y2hlY2tOb2RlQkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAg
IGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZ
UEVfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2Ug
Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJ
TkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAg
ICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTQ5LDcgKzExMzcsNiBA
QCB2b2lkIFJhbmdlOjpzZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAg
ICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpF
TEVNRU5UX05PREU6Ci0gICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9E
RToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgog
ICAgICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6
OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTE2NSw3ICsxMTUyLDYgQEAgdm9pZCBSYW5nZTo6
c2VsZWN0Tm9kZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2Fz
ZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9O
T0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2Rl
OjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19J
TlNUUlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAg
Y2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyMDQsNyArMTE5MCw2IEBAIHZv
aWQgUmFuZ2U6OnNlbGVjdE5vZGVDb250ZW50cyhOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAg
ICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9k
ZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNF
X05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9E
RToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBO
b2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyNDMsMjAgKzEyMjgsMTIgQEAgdm9pZCBS
YW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJlbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToK
ICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxF
TUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAg
ICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNh
c2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9O
T0RFOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVyIG9mIGVpdGhlciBi
b3VuZGFyeS1wb2ludCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9ubHkuCi0gICAgaWYg
KGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIFJhaXNlIGEgSElF
UkFSQ0hZX1JFUVVFU1RfRVJSIGlmIHN0YXJ0Q29udGFpbmVyKCkgZG9lc24ndCBhY2NlcHQgY2hp
bGRyZW4gbGlrZSBuZXdQYXJlbnQuCiAgICAgTm9kZSogcGFyZW50T2ZOZXdQYXJlbnQgPSAmc3Rh
cnRDb250YWluZXIoKTsKIApAQCAtMTMzMCwzNiArMTMwNywxNiBAQCB2b2lkIFJhbmdlOjpjaGVj
a0RlbGV0ZUV4dHJhY3QoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IGlmICghY29tbW9uQW5jZXN0b3JDb250YWluZXIoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKGFjdGlvbiAhPSBFeHRyYWN0KQorICAgICAgICByZXR1cm47CisKICAgICBOb2RlKiBwYXN0
TGFzdCA9IHBhc3RMYXN0Tm9kZSgpOwogICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Tm9kZSgpOyBu
ICE9IHBhc3RMYXN0OyBuID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbikpIHsKLSAgICAgICAgaWYg
KG4tPmlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKGFjdGlvbiA9PSBFeHRyYWN0ICYmIG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6RE9DVU1FTlRf
VFlQRV9OT0RFKSB7CisgICAgICAgIGlmIChuLT5pc0RvY3VtZW50VHlwZU5vZGUoKSkgewogICAg
ICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAoY29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0g
ICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotfQotCi1ib29sIFJhbmdlOjpjb250YWluZWRCeVJlYWRPbmx5KCkgY29uc3QKLXsK
LSAgICBmb3IgKE5vZGUqIG4gPSAmc3RhcnRDb250YWluZXIoKTsgbjsgbiA9IG4tPnBhcmVudE5v
ZGUoKSkgewotICAgICAgICBpZiAobi0+aXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KLSAgICBmb3IgKE5vZGUqIG4gPSAmZW5kQ29udGFpbmVyKCk7IG47
IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwogfQog
CiBOb2RlKiBSYW5nZTo6Zmlyc3ROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggYzhmMjk5
M2FkZDBkMTU5ZmFjNTJiZGFjN2YxY2M5MzBiZGU1ZjZlZS4uNGMxMTE2MjBhNzJkNzE3ODU4MjU1
Y2Q5ZTAzNTFlMzRlZWJlMjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTE2MSw3ICsxNjEsNiBAQCBw
cml2YXRlOgogCiAgICAgTm9kZSogY2hlY2tOb2RlV09mZnNldChOb2RlKiwgaW50IG9mZnNldCwg
RXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tOb2RlQkEoTm9kZSosIEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSBjb25zdDsK
IAogICAgIGVudW0gQWN0aW9uVHlwZSB7IERlbGV0ZSwgRXh0cmFjdCwgQ2xvbmUgfTsKICAgICB2
b2lkIGNoZWNrRGVsZXRlRXh0cmFjdChBY3Rpb25UeXBlLCBFeGNlcHRpb25Db2RlJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggYjdmZDk3MjdmZmU3YzlmNTBmNjI4ODlhNTBiODJm
NzEwNGZiZmIzOS4uYjRkZmUxMDZiM2FjMTY5NDYzOTk0NmI4NmY1MTk2YTIxNzJkMGFiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMTAwLDcgKzEwMCw2IEBAIGJvb2wgU2hhZG93
Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09N
TUVOVF9OT0RFOgogICAgIGNhc2UgVEVYVF9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9O
T0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJz
YWwuY3BwCmluZGV4IDc0YTkyOGY3Y2MwMjliNmYzM2NmZGNlNTFhMWYyYTNhMzFmZWRiNTIuLjNj
NGE5NTViMTExMDZjZGEyMjI4NWE5ZjUyNzE3MDdiMWQ5Yzc3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2
ZXJzYWwuY3BwCkBAIC0zMCwxOCArMzAsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1O
b2RlSXRlcmF0b3JCYXNlOjpOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5v
ZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZp
bHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yQmFzZTo6Tm9k
ZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdo
YXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIG5vZGVGaWx0ZXIpCiAgICAgOiBtX3Jvb3Qo
cm9vdE5vZGUpCiAgICAgLCBtX3doYXRUb1Nob3cod2hhdFRvU2hvdykKICAgICAsIG1fZmlsdGVy
KFdURjo6bW92ZShub2RlRmlsdGVyKSkKLSAgICAsIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlcyhl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKQogewogfQogCiBzaG9ydCBOb2RlSXRlcmF0b3JCYXNlOjph
Y2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IFRvIGhhbmRsZSBY
TUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBjaGVjayBtX2V4cGFuZEVudGl0eVJlZmVyZW5j
ZXMuCi0KICAgICAvLyBUaGUgYml0IHR3aWRkbGluZyBoZXJlIGlzIGRvbmUgdG8gbWFwIERPTSBu
b2RlIHR5cGVzLCB3aGljaCBhcmUgZ2l2ZW4gYXMgaW50ZWdlcnMgZnJvbQogICAgIC8vIDEgdGhy
b3VnaCAxNCwgdG8gd2hhdFRvU2hvdyBiaXQgbWFza3MuCiAgICAgaWYgKCEoKCgxIDw8IChub2Rl
LT5ub2RlVHlwZSgpIC0gMSkpICYgbV93aGF0VG9TaG93KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJhdmVyc2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgK
aW5kZXggZWQ2ZThkZGJkMGMyNjYxNWUzMzdhMmU0MmM5YjlkOTM1OGY4ZmRkYS4uZmZiZDU0OWIx
ZGU4NDg2MDQzZWU0ZDBiNDIwYTdkZGNhNzQ4ZmE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyYXZlcnNhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaApA
QCAtMzgsMTcgKzM4LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9kZSogcm9v
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdC5nZXQoKTsgfQogICAgICAgICB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3coKSBjb25zdCB7IHJldHVybiBtX3doYXRUb1Nob3c7IH0KICAgICAgICAgTm9k
ZUZpbHRlciogZmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXIuZ2V0KCk7IH0KLSAgICAg
ICAgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbmRF
bnRpdHlSZWZlcmVuY2VzOyB9CisgICAgICAgIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIE5vZGVJ
dGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBS
ZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAg
ICAgTm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRU
b1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShO
b2RlKikgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290
OwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fd2hhdFRvU2hvdzsKICAgICAgICAgUmVmUHRyPE5v
ZGVGaWx0ZXI+IG1fZmlsdGVyOwotICAgICAgICBib29sIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNl
czsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtl
ci5jcHAKaW5kZXggYWQwYWNlMTk5YjdkYTY5ZWVjYjIwNDNhMjhjOWVmNDRmYzA2M2Q0Ni4uODc3
NDgyYWZmNDdhM2M1NDM0YWY3NTMyZTZkYzA1M2QxNTEzY2QxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmNwcApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRy
ZWVXYWxrZXI6OlRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5k
RW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRU
b1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorVHJlZVdh
bGtlcjo6VHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKKyAgICA6IE5vZGVJdGVy
YXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpKQogICAgICwg
bV9jdXJyZW50KHJvb3QoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCmluZGV4IGJmNjli
ZGVjZTA5OWJjZDE0ZGJhZmQ1OGYwMTdjZmJkODdiNTE1NjMuLjIyOGYyM2Q0NzQ2YTIxNTliYjUw
YmY2YWE2Mjc4OGI3MzM2NGZiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaApAQCAtMzcsOSAr
MzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUcmVlV2Fsa2VyIDogcHVi
bGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8VHJlZVdhbGtlcj4sIHB1Ymxp
YyBOb2RlSXRlcmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8VHJl
ZVdhbGtlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXMpCisgICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRlKFBhc3NS
ZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5v
ZGVGaWx0ZXI+JiYgZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUcmVlV2Fsa2VyKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVy
KSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVHJlZVdhbGtlcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikp
KTsKICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICBOb2Rl
KiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQpAQCAtNTQs
NyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUqIG5leHROb2RlKCk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVu
c2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5k
RW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIFRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAg
IAogICAgICAgICBOb2RlKiBzZXRDdXJyZW50KFBhc3NSZWZQdHI8Tm9kZT4pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVdhbGtlci5pZGwKaW5kZXggNDgwOWVlM2Q0ZjFkMWZkNDA4NWUxYTExOTczYThkZjQw
MjBlNDcxNS4uYWQ1Y2I1ZDY0MDMxMGY4YzAzODk2MWY1MTMyZDViZGRkMjM2NmM3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlV2Fsa2VyLmlkbApAQCAtMjYsNyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBOb2RlIHJvb3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAg
ICAgIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVD
VElWRV9DCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJl
bmNlczsKKyNlbmRpZgogICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2Rl
IGN1cnJlbnROb2RlOwogCiAgICAgTm9kZSBwYXJlbnROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IDgzNDU1NzIwNDk2YTBkMTBkZDA2
ZmMwZWE0ZWViZjQzOGNiNGVjMjYuLjcxMmFiZmFmOGNlY2NjOGYyNzc2ZWE1MDU4NmRjM2EwMTBh
Y2Y1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3Bw
CkBAIC01NzMsNyArNTczLDYgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRN
YXJrdXAoU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBjb25zdCBOb2RlJiBub2QKICAgICAgICAgYXBw
ZW5kQ0RBVEFTZWN0aW9uKHJlc3VsdCwgZG93bmNhc3Q8Q0RBVEFTZWN0aW9uPihub2RlKS5kYXRh
KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAg
IGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6WFBBVEhf
TkFNRVNQQUNFX05PREU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKaW5kZXggNmY2NjRkODQwMWZmNzE3MDUyNjg2
MDNlMDQxZWJmNzdiNThmM2M0NC4uYmVhZGI0ZGYyMGZlOGU0NDBhMjUzNGMyMTk0Y2M4ODdhNjQ3
NjY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKQEAgLTcxLDcgKzcxLDYgQEAgYm9vbCBp
c1ZhbGlkQ29udGV4dE5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZF
UkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBOb2Rl
OjpURVhUX05PREU6CiAgICAgICAgICAgICByZXR1cm4gIShub2RlLT5wYXJlbnROb2RlKCkgJiYg
bm9kZS0+cGFyZW50Tm9kZSgpLT5pc0F0dHJpYnV0ZU5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5h
bHMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01JbnRlcm5hbHMubW0KaW5kZXggZTVjNmYwMmZjOGRjODExMDg4ODNlYWI3NTAyYzUyMzg4
OGZlN2VlMy4uZDU3ZGZjZDNlYmEwZDI3NTQ2OTUxZmVmNGU0ODA0ZGJhMjI3ZTg3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
RE9NSW50ZXJuYWxzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5tbQpAQCAtNzYsNyArNzYsNiBAQCBzdGF0aWMg
Q2xhc3MgV0tET01Ob2RlQ2xhc3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKICAgICAgICAgcmV0dXJu
IFtXS0RPTVRleHQgY2xhc3NdOwogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6QVRUUklCVVRFX05P
REU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBXZWJDb3Jl
OjpOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpET0NVTUVOVF9UWVBF
X05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KaW5kZXggODcxMDVhOGI2Y2Y2ZGE5OTkwMWMxMWQ3YWJhMDRhZmVkMmVmODNk
MS4uODYzYTg1NGU5NmU0ZmIyNWM0ZjQwOGE0NTZmMjFjZmI4OTllNGIxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAt
MjMyNCwxMSArMjMyNCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBc3Npc3RhYmxlRWxlbWVu
dChFbGVtZW50JiBub2RlKQogICAgIGlmIChpczxIVE1MU2VsZWN0RWxlbWVudD4obm9kZSkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChpczxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2Rl
KSkKLSAgICAgICAgcmV0dXJuICFkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKS5p
c1JlYWRPbmx5Tm9kZSgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoaXM8SFRNTElu
cHV0RWxlbWVudD4obm9kZSkpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVt
ZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obm9kZSk7CiAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIGxhdW5kcnkgbGlzdCBvZiB0eXBlcyBpcyBub3QgYSBnb29kIHdheSB0byBmYWN0b3Ig
dGhpcy4gTmVlZCBhIHN1aXRhYmxlIGZ1bmN0aW9uIG9uIEhUTUxJbnB1dEVsZW1lbnQgaXRzZWxm
LgotICAgICAgICByZXR1cm4gIWlucHV0RWxlbWVudC5pc1JlYWRPbmx5Tm9kZSgpICYmIChpbnB1
dEVsZW1lbnQuaXNUZXh0RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlRmllbGQoKSB8fCBp
bnB1dEVsZW1lbnQuaXNEYXRlVGltZUxvY2FsRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNNb250
aEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzVGltZUZpZWxkKCkpOworICAgICAgICByZXR1cm4g
aW5wdXRFbGVtZW50LmlzVGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZUZpZWxkKCkg
fHwgaW5wdXRFbGVtZW50LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50Lmlz
TW9udGhGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpOwogICAgIH0KICAgICBy
ZXR1cm4gbm9kZS5pc0NvbnRlbnRFZGl0YWJsZSgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM4MWUwZDE5MzA1NmE3
NmI0OWQxNjA4Y2ZhZjcxZWIyOTllYjAyODMuLjA5MzFiZTczODA3MjA0M2FlYzJiZTllZDE5NTM3
NjYyNmY2MDBmODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNCBAQAogMjAxNS0wOS0xOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5
IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHNldmVyYWwgb3V0ZGF0ZWQgRE9NIGNvbXBsaWFu
Y2UgdGVzdHMuIFVwZGF0ZSAvIFJlYmFzZWxpbmUgb3RoZXJzLgorCisyMDE1LTA5LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBF
bnRpdHkgTm9kZSB0eXBlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDkyMzkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDNiNGUz
YTVlMGMzNzgyMTZhMDBlMzA2NTFhZTliNzA1ZGVjYzE0Zi4uNWQ1ZjdlZDZlNDQ0YTk4MTNlNTVh
YmQ4NTNhMGZhMGI0ZjkwZWZjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMTYgQEAKIDIwMTUtMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAorICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5v
ZGUgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmViYXNlbGluZSBXM0MgRE9NIHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3Npbmcu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQu
dHh0OgorCisyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAg
ICAgICAgRHJvcCBzdXBwb3J0IGZvciBFbnRpdHkgTm9kZSB0eXBlCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkyMzkKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyYThlNDY2MTI0YjE4
ZmY0YzViNjQ3ZWFiZmE3NzAxNTQ0ZDgxZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2I1OWFjMzY2OWEwY2Q2NzZiNDZlNGQ5ZmNiNzRmYjYxNmIxODNh
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6
Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0
bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2Ny
aXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJk
b2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMiPjwvc2NyaXB0
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41
NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+
MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1U
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+
Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
Tm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+
MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
Zi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U3ZTEyNzg0MWVmOTg2ZDYxNjg2
OWEyMjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNo
ZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAlj
YXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91
cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hy
b25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0
YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVz
dCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotLyoqCi0qIAotICAgIFRoZSAiY3JlYXRlRW50aXR5UmVmZXJlbmNlKHRh
Z05hbWUpIiBtZXRob2QgcmFpc2VzIGFuCi0gICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgRE9NRXhj
ZXB0aW9uIGlmIHRoZSBzcGVjaWZpZWQKLSAgIHRhZ05hbWUgY29udGFpbnMgYW4gaW52YWxpZCBj
aGFyYWN0ZXIuIAotCi0qIEBhdXRob3IgTklTVAotKiBAYXV0aG9yIE1hcnkgQnJhZHkKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0nSU5W
QUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9S
RUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0Bu
YW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJTlZB
TElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1Ymxp
Yy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2
YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0
L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJmb28iKTsK
LSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29k
ZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0
aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsK
LQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50
aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiaW52YWxpZF5OYW1lIik7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
SU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQkJfQotCQotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9s
ZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYx
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWFlYmU0MDQ0NzhkOGIwMjViNTFjNmFlM2MzNjY1
ZDVhMzcwMzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEK
LVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1s
IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzYjZkMDljZGFiYzIwYzE3MjY1YWFmMjU5NzZlMzMyNDlmNWQxYjk0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3Jn
L1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjRkMWVjOTc1MzI5YjE3ZDcyM2NlM2MwZTk3OWU1
ZDVmOTBmNDBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0
dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1w
dHkgbmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRo
b3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYn
KS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNv
cmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUn
KS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmlu
Zy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24g
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxk
ZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3Mg
PSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBz
dWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkp
OwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsK
LQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCIiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2Yo
ZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRU
cnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0J
Ci19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTA4MmNiZWFlNGY2ZDg4ZGZkMDY0
ZWRiNGMyZDlhYWI5NjE1YzNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1
ZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0YmI3YmI4YzgxMDljZjU5M2RmZWY4NWJjOWNkMzRhZTRjYjI4OGQxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9o
dG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAx
Ly9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwh
LS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzIGIvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjYzJhZTM1ZTI3YjQ5NDQ4ZDA3ZDYxNjRiNDliMGE5
ODMwY2NmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZh
bHVlMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJY
TUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5z
IGVudGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0
cmdldHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFj
cm9ueW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0g
ICAgICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2Rl
OwotICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFs
cGhhUmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7
Ci0gICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVz
ID0gdGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5n
ZXROYW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50
VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJhbHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0J
Ci0JCWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBo
YSIpOwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICBy
ZXR2YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAg
ICAgdmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZh
bHVlMSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzcwYzdjM2RiMWRmZTc4ZDg3
YTUxYzRiYWQxMTZkMjk4MzhmMWMwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFs
dWUwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3Q6CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZh
bHVlMDMKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI4MDQ2ZjEyZmI4OGIyZWI5Y2U2NmY5NjBmMmIyYmQxOWE0NzdhOWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIg
Ci0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5o
Y19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0
bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJoY19ub2RldmFsdWUwMy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTYxNjcxYWE0YjM4YTY1YTFjZWQ0Zjk1OWE4YjE0NjM1ZjMxMjU4NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzIjsKLSAgIH0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1BbiBlbnRpdHkgcmVmZXJlbmNlIGlzIGNyZWF0ZWQsIHNldE5vZGVW
YWx1ZSBpcyBjYWxsZWQgd2l0aCBhIG5vbi1udWxsIGFyZ3VtZW50LCBidXQgZ2V0Tm9kZVZhbHVl
Ci1zaG91bGQgc3RpbGwgcmV0dXJuIG51bGwuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI0lELUY2OEQwODAKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4
L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0xMUM5ODQ5MAotKi8K
LWZ1bmN0aW9uIGhjX25vZGV2YWx1ZTAzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfbm9kZXZhbHVlMDMiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdOb2RlOwotICAgICAgdmFyIG5ld1ZhbHVl
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
IAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7
Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBuZXdOb2Rl
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURf
RVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJbmV3Tm9kZSA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIGFzc2VydE5vdE51bGwoImNyZWF0
ZWRFbnRSZWZOb3ROdWxsIixuZXdOb2RlKTsKLW5ld1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7
Ci0KLSAgICAgIGFzc2VydE51bGwoImluaXRpYWxseU51bGwiLG5ld1ZhbHVlKTsKLSAgICBuZXdO
b2RlLm5vZGVWYWx1ZSA9ICJUaGlzIHNob3VsZCBoYXZlIG5vIGVmZmVjdCI7Ci0KLSAgICAgIG5l
d1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51bGwoIm51bGxBZnRl
ckF0dGVtcHRlZENoYW5nZSIsbmV3VmFsdWUpOwotICAgIAotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19ub2RldmFsdWUwMygpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVf
Tk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZl
bDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzhjZWMwYTg5ZDRhNWZhY2U2
YjNjYjI0MDM2OTg3ZDc5OGI2Zjg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVh
dG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLVhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJS
OiBTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyBiL0xheW91dFRlc3Rz
L2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JU
RURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmUwMThjOGE2NjMwNTQ5
Njc4M2QxYjc1YWMwZTc0YmYyMjM3ZGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTE5ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLS8vIGV4cG9zZSB0ZXN0IGZ1bmN0aW9uIG5hbWVzCi1mdW5jdGlvbiBleHBvc2VU
ZXN0RnVuY3Rpb25OYW1lcygpCi17Ci1yZXR1cm4gWydYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9O
T1RfU1VQUE9SVEVEX0VSUiddOwotfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFy
IGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0
aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3Vp
dGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBh
c3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhl
cndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBl
eGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0
aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRV
cFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNy
ZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8v
Ci0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2Nz
TG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2Mi
LCAic3RhZmZOUyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBj
YXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8v
Ci0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAg
ICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAg
IFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0v
LyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAg
ICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qICAgICAgIAotICAgICAgVGVz
dCBpZiBYUGF0aEV2YWx1YXRvci5ldmFsdWF0ZSBwcm9wZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRF
RF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBlIExlIEjDqWdhcmV0Ci0qIEBhdXRob3Ig
Qm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwt
My1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV2YWx1YXRvci1ldmFsdWF0ZQotKi8KLWZ1bmN0
aW9uIFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiWFBhdGhFdmFs
dWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAg
dmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRvcjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAg
ICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwotCi0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51
bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVhdG9yID0gY3JlYXRlWFBhdGhFdmFs
dWF0b3IoZG9jKTsKLWNvbnRleHROb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50
aXR5bmFtZSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZXN1bHQgPSB4cEV2YWx1YXRvci5ldmFsdWF0ZSgiLy9mb286YmFyIixjb250ZXh0
Tm9kZSxudWxsTlNSZXNvbHZlciwwLG51bGxSZXN1bHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJS
IixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIFhQ
YXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0
aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YjhiZGMxYzZkNDA5NTk2ZTJhZTQ4NDIwZDdiZTdjZTkx
ODJlOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi08c3ZnIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6bmlzdD0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiLz4NCi08
c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9IlhQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIi8+DQotPHNjcmlwdCB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJzdmd1bml0LmpzIi8+DQotPC9zdmc+
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHBy
ZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQ
UE9SVEVEX0VSUi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEw
YTdkY2M2YTY0MGY3ZjZmMDZjY2JmNGJlMDcwNjA1MjU1OTQ3ODAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUjogU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURf
RVJSLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9u
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhY2Y2MTQ2NjEwOTNjY2ZjYzUxNzhiODY0YTZhMmMwYjI5ZGY4Njk1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcv
bGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0vLyBleHBvc2UgdGVzdCBmdW5jdGlvbiBu
YW1lcwotZnVuY3Rpb24gZXhwb3NlVGVzdEZ1bmN0aW9uTmFtZXMoKQotewotcmV0dXJuIFsnWFBh
dGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSJ107Ci19Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICAgIAotICAgICAgIGlm
IChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRp
b25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBp
biBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9j
dW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQg
d2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVk
LgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0v
KioKLSogICAgICAgCi0gICAgICBUZXN0IGlmIFhQYXRoRXhwcmVzc2lvbi5ldmFsdWF0ZSBwcm9w
ZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBl
IExlIEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5v
cmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV4cHJl
c3Npb24tZXZhbHVhdGUKLSovCi1mdW5jdGlvbiBYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxp
emF0aW9uKGJ1aWxkZXIsICJYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9F
UlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRv
cjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAgICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwot
Ci0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsK
LSAgICAgIHZhciB4cGF0aEV4cHJlc3Npb247Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwg
ImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICB4cEV2YWx1YXRvciA9IGNyZWF0ZVhQYXRoRXZhbHVh
dG9yKGRvYyk7Ci14cGF0aEV4cHJlc3Npb24gPSB4cEV2YWx1YXRvci5jcmVhdGVFeHByZXNzaW9u
KCIvL2ZvbyIsbnVsbE5TUmVzb2x2ZXIpOwotICAgICAgY29udGV4dE5vZGUgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJlbnRpdHluYW1lIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHhwYXRoRXhwcmVzc2lvbi5ldmFs
dWF0ZShjb250ZXh0Tm9kZSwwLG51bGxSZXN1bHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixz
dWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIFhQYXRo
RXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRl
X05PVF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRo
L1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmODZkNzUwYTM5ZGFhZjQ2Y2IwNGQ5ZjEzYTI3MGNmMjU1
Y2NjZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05P
VF9TVVBQT1JURURfRVJSLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOm5pc3Q9Imh0dHA6Ly93d3cu
bmlzdC5nb3YiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+DQot
PHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJYUGF0aEV4
cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMiLz4NCi08c2NyaXB0IHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9InN2Z3VuaXQuanMiLz4NCi08L3N2
Zz4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkMmQ2ZDE3NzBhMTI3ODk5YTIyYWFjZjM2ZmNmOTg2MTI2MDc3M2FmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmCi1TdGF0dXMJU3VjY2VzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlN2UxMjc4NDFlZjk4NmQ2MTY4
NjlhMjI0MTQ4MTYxYTM5MTcwMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcworKysgL2Rldi9udWxsCkBAIC0x
LDE0MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7
Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVz
dCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlv
bnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4g
IE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQg
dGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVy
aW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAg
IHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8v
ICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAg
ICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAg
Y2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAg
CWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRo
b2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9u
b3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5j
aHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ug
c3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0
ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgr
K2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJjcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
dGFnTmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFMSURfQ0hBUkFDVEVSX0VSUiBET01F
eGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFtZSBjb250YWlucyBhbiBpbnZhbGlk
IGNoYXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBhdXRob3IgTWFyeSBCcmFkeQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2NvbnN0YW50W0BuYW1lPSdJ
TlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4
L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0zOTJCNzVBRQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3JhaXNlcy9leGNlcHRpb25b
QG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJlZm9yZSguLCc6Jyk9J0lO
VkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVi
bGljL3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlvbiBkb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAg
IHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRl
eHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZvbyIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2Ug
ewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRF
bnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJpbnZhbGlkXk5hbWUiKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkODEwOTgzMzIxMDRmMTBhOWEwNzNhZDAxZTRlNGExM2I4YTFlMzhjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25j
cmVhdGVlbnRyZWYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJp
Y3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEg
IiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRh
ICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFs
cGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFG
aWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNv
bW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hl
YWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVm
ZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0
aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdh
bW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJv
bmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29k
ZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVu
dHJlZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjNiYzk5ODViNWMyYjdmNjAxYTEwZjg0
ZTM5ZTY1MzY4MTM0Njg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVu
dHJlZjEKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVm
MS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNGQxZWM5NzUzMjliMTdkNzIzY2UzYzBlOTc5ZTVkNWY5MGY0MGEyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1D
cmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1wdHkgbmFtZSBzaG91bGQgY2F1
c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9s
ZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0n
SU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5
OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9s
ZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9u
W0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJ
TlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1
YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hh
cmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAg
ICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0g
InRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZv
byIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihl
eC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRy
dWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVs
c2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBi
YWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCIiKTsKLSAgICAgICAgfQot
CQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVm
aW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19JTlZBTElE
X0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS54aHRt
bCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmODNiYWI5ODRhZTdjYTJhZmViY2EwMjRlYzNkODBiODdkNDhmZTg0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElD
ICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0
ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0
NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5
NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFB
VFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgot
ICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9j
b2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVu
Y2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24g
d2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7
Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMjA5YzNlNDM2NGVkYzQ1NWQ1NGQ0MTUyMDk0ZTJl
NjZhYWQ3NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMgotU3Rh
dHVzCWZhaWx1cmUKLU1lc3NhZ2UJYXR0clZhbHVlMTogYXNzZXJ0RXF1YWxzIGZhaWxlZCwgYWN0
dWFsIFnOsSwgZXhwZWN0ZWQgzrFZzrEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NGNjMmFlMzVlMjdiNDk0NDhkMDdkNjE2NGI0OWIwYTk4MzBjY2YxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMiI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DaGVj
a3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5zIGVudGl0eSByZWZlcmVu
Y2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0yMjE2NjI0
NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0g
ICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0cmdldHZhbHVlMiIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFjcm9ueW1MaXN0OwotICAg
ICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0gICAgICB2YXIgdGl0bGVB
dHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIHJl
dHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFscGhhUmVmOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGFjcm9ueW1M
aXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7Ci0gICAgICB0ZXN0Tm9k
ZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVzID0gdGVzdE5vZGUuYXR0
cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oImNs
YXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9o
dG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAg
ICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJ
YWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgZmly
c3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICByZXR2YWwgPSB0aXRsZUF0
dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAgICAgdmFsdWUgPSB0aXRs
ZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZhbHVlMSIsIs6xWc6xIix2
YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBhMmU0MDEzOGM1NTA4NDlkNzlkMTdhODRhOWU0MjdiMjg1ZWVmYjku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RB
VEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0
bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNl
bGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iaGNfYXR0cmdldHZhbHVlMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4
YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJl
ZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29k
ZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZn
YW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4K
LSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFu
YWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFz
IDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0
cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwv
Y29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9u
eW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDdiMWEyNjJmYTg4MTZlOTcxZWMzMDc5NmQ3NjU5
OTRlZjk4ZTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMwotU3RhdHVz
CWVycm9yCi1NZXNzYWdlCUVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUv
aGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNf
bm9kZXZhbHVlMDMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MTY3MWFhNGIz
OGE2NWExY2VkNGY5NTlhOGIxNDYzNWYzMTI1ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hj
X25vZGV2YWx1ZTAzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFuIGVu
dGl0eSByZWZlcmVuY2UgaXMgY3JlYXRlZCwgc2V0Tm9kZVZhbHVlIGlzIGNhbGxlZCB3aXRoIGEg
bm9uLW51bGwgYXJndW1lbnQsIGJ1dCBnZXROb2RlVmFsdWUKLXNob3VsZCBzdGlsbCByZXR1cm4g
bnVsbC4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtRjY4RDA4
MAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgx
MDAxL2xldmVsLW9uZS1jb3JlI0lELTExQzk4NDkwCi0qLwotZnVuY3Rpb24gaGNfbm9kZXZhbHVl
MDMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJoY19ub2RldmFsdWUwMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIG5ld05vZGU7Ci0gICAgICB2YXIgbmV3VmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIu
Y29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIG5ld05vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJlbnQxIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
CX0KLQkKLQkJZWxzZSB7Ci0JCQluZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
ZW50MSIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgiY3JlYXRlZEVudFJlZk5vdE51bGwiLG5ld05v
ZGUpOwotbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgi
aW5pdGlhbGx5TnVsbCIsbmV3VmFsdWUpOwotICAgIG5ld05vZGUubm9kZVZhbHVlID0gIlRoaXMg
c2hvdWxkIGhhdmUgbm8gZWZmZWN0IjsKLQotICAgICAgbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVW
YWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgibnVsbEFmdGVyQXR0ZW1wdGVkQ2hhbmdlIixuZXdW
YWx1ZSk7Ci0gICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
IGhjX25vZGV2YWx1ZTAzKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEyNzY1MWVjODlmYTg4MGJiNTI0Y2EyNGJhZjllMWM1MjgxZmQyZTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NjAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08
IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+
Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+
Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5
OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24x
IFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0g
Im5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgot
XT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imhj
X25vZGV2YWx1ZTAzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9u
Zz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAg
ICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNy
b255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEg
UmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJl
ciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwv
Y29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0
PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJv
Z2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgot
ICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29u
bm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+
MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08
L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzc5M2UwNGNiNjRkOWJlOGFmNWYwNmI3ZTUzODZjZjI0
NmFiYzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYK
LVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4MDRiOTQ4MTUyOGZlMjA4MWZiM2E0ZGMzZDQ5ZDI1ZDA1NWE4ZjIzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTc1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNiI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSBhZG9wdE5vZGUgb24gYSBuZXcgZG9jdW1lbnQg
dG8gYWRvcHQgdGhlIGEgbmV3IEF0dHJpYnV0ZSBub2RlIGhhdmluZyBhIFRleHQgYW5kIGFuIEVu
dGl0eVJlZmVyZW5jZSAKLQljaGlsZC4gIENoZWNrIGlmIHRoaXMgYXR0cmlidXRlIGhhcyBiZWVu
IGFkb3B0ZWQgc3VjY2Vzc2Z1bGx5IGJ5IHZlcmlmeWluZyB0aGUgbm9kZU5hbWUsIG5hbWVzcGFj
ZVVSSSwgcHJlZml4LCAKLQlzcGVjaWZpZWQgYW5kIG93bmVyRWxlbWVudCBhdHRyaWJ1dGVzIG9m
IHRoZSBhZG9wdGVkIG5vZGUuICBBbHNvIHZlcmlmeSB0aGUgb3duZXJEb2N1bWVudCBhdHRyaWJ1
dGUKLQlvZiB0aGUgYWRvcHRlZCBub2RlIGFuZCB0aGUgYWRvcHRlZCBjaGlsZHJlbiBvZiB0aGUg
YXR0cmlidXRlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAw
NDA0MDcvY29yZSNEb2N1bWVudDMtYWRvcHROb2RlCi0qLwotZnVuY3Rpb24gZG9jdW1lbnRhZG9w
dG5vZGUwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgImRvY3VtZW50YWRvcHRub2RlMDYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIHZhciBu
ZXdBdHRyOwotICAgICAgdmFyIG5ld1RleHQ7Ci0gICAgICB2YXIgbmV3RW50UmVmOwotICAgICAg
dmFyIGFkb3B0ZWRBdHRyOwotICAgICAgdmFyIGFkb3B0VGV4dDsKLSAgICAgIHZhciBhZG9wdEVu
dFJlZjsKLSAgICAgIHZhciBub2RlTGlzdDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZh
ciBub2RlTmFtZXNwYWNlVVJJOwotICAgICAgdmFyIG5vZGVQcmVmaXg7Ci0gICAgICB2YXIgYXR0
ck93bmVyRWxlbTsKLSAgICAgIHZhciBpc1NwZWNpZmllZDsKLSAgICAgIHZhciBhZG9wdGVkVGV4
dE5vZGVWYWx1ZTsKLSAgICAgIHZhciBhZG9wdGVkRW50UmVmTm9kZVZhbHVlOwotICAgICAgdmFy
IG51bGxEb2NUeXBlID0gbnVsbDsKLQotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2
YXIgZG9jRWxlbTsKLSAgICAgIHZhciByb290TlM7Ci0gICAgICB2YXIgcm9vdE5hbWU7Ci0gICAg
ICB2YXIgeG1sTlMgPSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIjsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NF
bGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5hbWUgPSBkb2NFbGVtLnRh
Z05hbWU7Ci0KLSAgICAgIHJvb3ROUyA9IGRvY0VsZW0ubmFtZXNwYWNlVVJJOwotCi0gICAgICBk
b21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9tSW1wbC5jcmVhdGVEb2N1
bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAgbmV3QXR0ciA9IGRvYy5j
cmVhdGVBdHRyaWJ1dGVOUyh4bWxOUywieG1sOmxhbmciKTsKLSAgICAgIG5ld1RleHQgPSBkb2Mu
Y3JlYXRlVGV4dE5vZGUoIlRleHQgTm9kZSIpOwotICAgICAgbmV3RW50UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBuZXdBdHRy
LmFwcGVuZENoaWxkKG5ld1RleHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IG5ld0F0dHIuYXBw
ZW5kQ2hpbGQobmV3RW50UmVmKTsKLSAgICAgIGFkb3B0ZWRBdHRyID0gbmV3RG9jLmFkb3B0Tm9k
ZShuZXdBdHRyKTsKLSAgICAgIAotCWlmKAotCQotCShhZG9wdGVkQXR0ciAhPSBudWxsKQotCi0J
KSB7Ci0Jbm9kZU5hbWUgPSBhZG9wdGVkQXR0ci5ub2RlTmFtZTsKLQotICAgICAgbm9kZU5hbWVz
cGFjZVVSSSA9IGFkb3B0ZWRBdHRyLm5hbWVzcGFjZVVSSTsKLQotICAgICAgbm9kZVByZWZpeCA9
IGFkb3B0ZWRBdHRyLnByZWZpeDsKLQotICAgICAgYXR0ck93bmVyRWxlbSA9IGFkb3B0ZWRBdHRy
Lm93bmVyRWxlbWVudDsKLQotICAgICAgaXNTcGVjaWZpZWQgPSBhZG9wdGVkQXR0ci5zcGVjaWZp
ZWQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9ub2RlTmFtZSIs
InhtbDpsYW5nIixub2RlTmFtZSk7Ci0gICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0
bm9kZTA2X25hbWVzcGFjZVVSSSIseG1sTlMsbm9kZU5hbWVzcGFjZVVSSSk7Ci0gICAgICAgYXNz
ZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X3ByZWZpeCIsInhtbCIsbm9kZVByZWZpeCk7
Ci0gICAgICAgYXNzZXJ0TnVsbCgiZG9jdW1lbnRhZG9wdG5vZGUwNl9vd25lckRvYyIsYXR0ck93
bmVyRWxlbSk7Ci0gICAgYXNzZXJ0VHJ1ZSgiZG9jdW1lbnRhZG9wdG5vZGUwNl9zcGVjaWZpZWQi
LGlzU3BlY2lmaWVkKTsKLW5vZGVMaXN0ID0gYWRvcHRlZEF0dHIuY2hpbGROb2RlczsKLQotICAg
ICAgYWRvcHRUZXh0ID0gbm9kZUxpc3QuaXRlbSgwKTsKLSAgICAgIGFkb3B0RW50UmVmID0gbm9k
ZUxpc3QuaXRlbSgxKTsKLSAgICAgIGFkb3B0ZWRUZXh0Tm9kZVZhbHVlID0gYWRvcHRUZXh0Lm5v
ZGVWYWx1ZTsKLQotICAgICAgYWRvcHRlZEVudFJlZk5vZGVWYWx1ZSA9IGFkb3B0RW50UmVmLm5v
ZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfVGV4dE5v
ZGVWYWx1ZSIsIlRleHQgTm9kZSIsYWRvcHRlZFRleHROb2RlVmFsdWUpOwotICAgICAgIGFzc2Vy
dEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9FbnRSZWZOb2RlVmFsdWUiLCJhbHBoYSIsYWRv
cHRlZEVudFJlZk5vZGVWYWx1ZSk7Ci0gICAgICAgCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlv
biBydW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUwNigpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYueGh0
bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUw
Ni54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjkyZDg5MGRhZGI1YTg3MzU5
ZjQ5ZmVkNDE5OTQ3MzU4NGQyMTcyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRh
ZG9wdG5vZGUwNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMDYu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRu
b2RlMTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyOGFiMTg4NjFmYmU4YTUwZjU5YzgxMmFlYmQwNTMzOWVhNTdjZjVkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYKLVN0YXR1cwlTdWNjZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9w
dG5vZGUxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFk
b3B0bm9kZTE2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmQ2ZTJmZGMzNDdh
MzQxMTA1NWJkYTJlZGU5YTIyMjliZTllZmU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudGFkb3B0bm9kZTE2LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotQ3JlYXRlIGEgZG9jdW1lbnQgZnJhZ21lbnQgd2l0aCBhbiBlbnRpdHkgcmVmZXJlbmNlLCBh
ZG9wdCB0aGUgbm9kZSBhbmQgY2hlY2sKLXRoYXQgdGhlIGVudGl0eSByZWZlcmVuY2UgdmFsdWUg
Y29tZXMgZnJvbSB0aGUgYWRvcHRpbmcgZG9jdW1lbnRzIERURC4KLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0RvY3VtZW50My1hZG9wdE5vZGUKLSov
Ci1mdW5jdGlvbiBkb2N1bWVudGFkb3B0bm9kZTE2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRhZG9wdG5vZGUxNiIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWdtZW50OwotICAg
ICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgY2hpbGQ7Ci0g
ICAgICB2YXIgY2hpbGRzQXR0cjsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dE5v
ZGU7Ci0gICAgICB2YXIgYWRvcHRlZDsKLSAgICAgIHZhciBwYXJlbnRJbXA7Ci0gICAgICB2YXIg
Y2hpbGRJbXA7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAgICAgIHZhciBjaGlsZEF0dHJJbXA7
Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2
YXIgYXR0ck5vZGU7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsKLSAgICAgIHZhciBmaXJzdENoaWxk
VHlwZTsKLSAgICAgIHZhciBmaXJzdENoaWxkTmFtZTsKLSAgICAgIHZhciBmaXJzdENoaWxkVmFs
dWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZG9jRnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgcGFy
ZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoInBhcmVudCIpOwotICAgICAgY2hpbGQgPSBkb2MuY3Jl
YXRlRWxlbWVudCgiY2hpbGQiKTsKLSAgICAgIGNoaWxkc0F0dHIgPSBkb2MuY3JlYXRlQXR0cmli
dXRlKCJzdGF0ZSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
Z2FtbWEiKTsKLSAgICAgIHRleHROb2RlID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXN0Iik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gY2hpbGRzQXR0ci5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAg
ICAgYXR0ck5vZGUgPSBjaGlsZC5zZXRBdHRyaWJ1dGVOb2RlKGNoaWxkc0F0dHIpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGNoaWxkLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAgICAgYXBwZW5kZWRDaGls
ZCA9IGRvY0ZyYWdtZW50LmFwcGVuZENoaWxkKHBhcmVudCk7Ci0gICAgICBhZG9wdGVkID0gZG9j
LmFkb3B0Tm9kZShkb2NGcmFnbWVudCk7Ci0gICAgICAKLQlpZigKLQkKLQkoYWRvcHRlZCAhPSBu
dWxsKQotCi0JKSB7Ci0JcGFyZW50SW1wID0gYWRvcHRlZC5maXJzdENoaWxkOwotCi0gICAgICBj
aGlsZEltcCA9IHBhcmVudEltcC5maXJzdENoaWxkOwotCi0gICAgICBhdHRyaWJ1dGVzID0gY2hp
bGRJbXAuYXR0cmlidXRlczsKLQotICAgICAgY2hpbGRBdHRySW1wID0gYXR0cmlidXRlcy5nZXRO
YW1lZEl0ZW0oInN0YXRlIik7Ci0gICAgICBmaXJzdENoaWxkID0gY2hpbGRBdHRySW1wLmZpcnN0
Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImZpcnN0Q2hpbGROb3ROdWxsIixmaXJzdENo
aWxkKTsKLWZpcnN0Q2hpbGROYW1lID0gZmlyc3RDaGlsZC5ub2RlTmFtZTsKLQotICAgICAgZmly
c3RDaGlsZFZhbHVlID0gZmlyc3RDaGlsZC5ub2RlVmFsdWU7Ci0KLSAgICAgIGZpcnN0Q2hpbGRU
eXBlID0gZmlyc3RDaGlsZC5ub2RlVHlwZTsKLQotICAgICAgCi0JaWYoCi0JKDUgPT0gZmlyc3RD
aGlsZFR5cGUpCi0JKSB7Ci0JYXNzZXJ0RXF1YWxzKCJmaXJzdENoaWxkRW50M1JlZiIsImdhbW1h
IixmaXJzdENoaWxkTmFtZSk7Ci0gICAgICAgCi0JfQotCQotCQllbHNlIHsKLQkJCWFzc2VydEVx
dWFscygiZG9jdW1lbnRhZG9wdG5vZGUxNiIsIlRleGFzIixmaXJzdENoaWxkVmFsdWUpOwotICAg
ICAgIAotCQl9Ci0JCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAg
ZG9jdW1lbnRhZG9wdG5vZGUxNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYueGh0bWwgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiYjlkZTFmYjkzOGIwNzk3NTMwZjExMzBjODcxODZlNzYz
N2QxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMTYuanMiLz48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ry
b25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgot
ICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2
ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0
aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlS
ZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50
IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNv
bSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+
Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+
Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIg
aWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3
IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRw
Oi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVu
eSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAg
PHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVN
UDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21w
dXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUy
Ny1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNzM0NDFkNDMw
MjE0OTJmOTQzN2RmYjY2MGRjMGU0ZmEzNjM4MmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19O
T1RfU1VQUE9SVEVEX0VSUl8xOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LmpzIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjczY2FjYmM2ODk2YzY2Y2EyMzMwMmY2YTIx
YWI2OWNlM2Q4NGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUy
Ny5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2Rv
Y3VtZW50cmVuYW1lbm9kZTI3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsK
LXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
YnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0
IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9u
cywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAg
T3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0
aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJp
bmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAg
c2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8g
ICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAg
ICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAg
ZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAg
ICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBl
eCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAot
Ly8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8K
LS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRl
ZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQot
Ly8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHRo
ZSByZW5hbWVOb2RlIG1ldGhvZCB0byBhdHRlbXB0IHRvIHJlbmFtZSBuZXcgVGV4dCwgQ29tbWVu
dCwgQ0RhdGFTZWN0aW9uLAotCVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgRW50aXR5UmVmZXJl
bmNlIG5vZGVzIG9mIGEgbmV3IERvY3VtZW50LgotCUNoZWNrIGlmIGEgTk9UX1NVUFBPUlRFRF9F
UlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQw
NDA3L2NvcmUjRG9jdW1lbnQzLXJlbmFtZU5vZGUKLSovCi1mdW5jdGlvbiBkb2N1bWVudHJlbmFt
ZW5vZGUyNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgImRvY3VtZW50cmVuYW1lbm9kZTI3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZh
ciBkb2M7Ci0gICAgICB2YXIgbmV3RG9jOwotICAgICAgdmFyIGRvbUltcGw7Ci0gICAgICB2YXIg
dGV4dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBp
OwotICAgICAgdmFyIGVudHJlZjsKLSAgICAgIHZhciByZW5hbWVkVHh0OwotICAgICAgdmFyIHJl
bmFtZWRDb21tZW50OwotICAgICAgdmFyIHJlbmFtZWRDZGF0YTsKLSAgICAgIHZhciByZW5hbWVk
UGk7Ci0gICAgICB2YXIgcmVuYW1lZEVudFJlZjsKLSAgICAgIHZhciBudWxsRG9jVHlwZSA9IG51
bGw7Ci0KLSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIHJvb3ROUzsKLSAgICAgIHZhciBy
b290TmFtZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5TID0g
ZG9jRWxlbS5uYW1lc3BhY2VVUkk7Ci0KLSAgICAgIHJvb3ROYW1lID0gZG9jRWxlbS50YWdOYW1l
OwotCi0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9tSW1w
bC5jcmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAgdGV4
dCA9IG5ld0RvYy5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOwotICAgICAgY29tbWVudCA9IG5ld0Rv
Yy5jcmVhdGVDb21tZW50KCJjb21tZW50Iik7Ci0gICAgICBjZGF0YSA9IG5ld0RvYy5jcmVhdGVD
REFUQVNlY3Rpb24oImNkYXRhIik7Ci0gICAgICBwaSA9IG5ld0RvYy5jcmVhdGVQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24oInBpdCIsInBpZCIpOwotICAgICAgZW50cmVmID0gbmV3RG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZFR4dCA9IG5ld0RvYy5yZW5hbWVOb2RlKHRleHQs
Imh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwidGV4dCIpOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURf
RVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVuYW1lZENvbW1lbnQgPSBuZXdEb2MucmVuYW1lTm9kZShjb21tZW50LCJo
dHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNvbW1lbnQiKTsKLSAgICAgICAgfQotCQljYXRj
aChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcg
JiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVE
X0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIHJlbmFtZWRDZGF0YSA9IG5ld0RvYy5yZW5hbWVOb2RlKGNkYXRhLCJodHRw
Oi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNkYXRhIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgp
IHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4
LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJf
MyIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZW5hbWVkUGkgPSBuZXdEb2MucmVuYW1lTm9kZShwaSwiaHR0cDovL3d3dy53My5v
cmcvRE9NL1Rlc3QiLCJwaSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNj
ZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwot
CQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSXzQiLHN1Y2Nlc3MpOwot
CX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1l
ZEVudFJlZiA9IG5ld0RvYy5yZW5hbWVOb2RlKGVudHJlZiwiaHR0cDovL3d3dy53My5vcmcvRE9N
L1Rlc3QiLCJlbnRyZWYiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2Vz
cyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJ
fQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl81IixzdWNjZXNzKTsKLQl9
Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50cmVuYW1lbm9k
ZTI3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
ZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRlNzgxMWI0MmRlMmM0NjdlNWEyYTYwZTE4MjkxZDJkMTA4ZjgzYzkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LnhodG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFU
QT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYj
OTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24g
IiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBT
WVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRB
ICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
Om5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1Q
TElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+
Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9Y
TUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
eGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iZG9jdW1lbnRyZW5hbWVub2RlMjcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0
IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBU
ZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMK
LTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVt
YmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlv
biB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNl
Y3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5F
TVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRl
cGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVu
dDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4
YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2
aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9z
dHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgot
ICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFs
aXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4K
LSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIw
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzhlNGU2NjQ2NmZiZGMxNDA3
Njc1NTM4N2E5YTM1ZjBmMWVhOTZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yMC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjIwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJv
ZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48
L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1
NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFU
QVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZl
bnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBh
IHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8
L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwv
ZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50
IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUz
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29t
Ij4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9u
Zz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29k
ZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgot
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDI0MzczOGY2MGEw
ODg0NjRkYWQ4NDgyN2VhNmMxNGViMDEzZjcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNgotU3RhdHVzCWZhaWx1cmUK
LU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggM2U4YjNmYWU4ODc5YTBhMzRkZjAxYjY0NWRjMzc2MGFiZTAyNzMxYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxk
IFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5k
IE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRo
aXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNl
IFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0
dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUt
MjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZp
ZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAg
Ki8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53
My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIGNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uIGNoZWNrIGlmIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBjb250YWlucyBh
bmQgcHJlY2VkZXMgaXQncyBmaXJzdAotCWNoaWxkRWxlbWVudCwgYW5kIHRoYXQgdGhlIGNoaWxk
RWxlbWVudCBpcyBjb250YWluZWQgYW5kIGZvbGxvd3MgdGhlIEVudGl0eVJlZmVyZW5jZSBub2Rl
LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUz
LWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0
aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNiIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxl
bTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFy
IGVudFJlZlBvc2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0aW9uOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAot
CShnZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIpID09
IGZhbHNlKQotCSkgewotCXZhckxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInZhciIp
OwotICAgICAgdmFyRWxlbSA9IHZhckxpc3QuaXRlbSgyKTsKLSAgICAgIGFzc2VydE5vdE51bGwo
InZhckVsZW1Ob3ROdWxsIix2YXJFbGVtKTsKLWVudFJlZiA9IHZhckVsZW0uZmlyc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmTm90TnVsbCIsZW50UmVmKTsKLQotCX0KLQkK
LQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7
Ci0gICAgICAKLQkJfQotCWVudFJlZkNoaWxkMSA9IGVudFJlZi5maXJzdENoaWxkOwotCi0gICAg
ICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50
UmVmUG9zaXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQx
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uSXNDb250
YWluZWRGb2xsb3dpbmcyNiIsMjAsZW50UmVmUG9zaXRpb24pOwotICAgICAgIGVudFJlZkNoaWxk
MVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZik7
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbkNvbnRhaW5z
UFJFQ0VESU5HMjYiLDEwLGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MzNlMGQwNjU4YmJmYmY0ZmE1MDgzZTBhMjM5NzMyYTQ0
YzFlOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bjI2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MjliNGNkODA1OGEzYzc1Y2E4MTJiNDI1Mjc1
YjM2ZjhlNDI5ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbnRSZWZD
aGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Lmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWUxOWI3NjcwMmIz
NGE5ODVlODI0ZjgxZWFjYWFmM2VlNGJlMGY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCww
IEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29y
dGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4g
UmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtl
aW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQot
Ci0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAg
ICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0
VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IjsKLSAg
IH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gdG8g
Y2hlY2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGNvbnRhaW5zIGFuZCBwcmVjZWRlcyBp
dCdzIGxhc3QKLQljaGlsZEVsZW1lbnQsIGFuZCB0aGF0IHRoaXMgY2hpbGRFbGVtZW50IGlzIGNv
bnRhaW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUuCi0KLSogQGF1dGhv
ciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtY29tcGFyZURvY3Vt
ZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNygp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZh
ciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZhciB2YXJFbGVtOwotICAgICAgdmFy
IGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0gICAgICB2YXIgZW50UmVmUG9zaXRp
b247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JKGdldEltcGxlbWVu
dGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIikgPT0gZmFsc2UpCi0JKSB7
Ci0JdmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidmFyIik7Ci0gICAgICB2YXJF
bGVtID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgidmFyRWxlbU5vdE51
bGwiLHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxlbS5maXJzdENoaWxkOwotCi0gICAgICBhc3Nl
cnROb3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRSZWYpOwotCi0JfQotCQotCQllbHNlIHsKLQkJ
CWVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIAotCQl9
Ci0JZW50UmVmQ2hpbGQxID0gZW50UmVmLmxhc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVs
bCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQxKTsKLWVudFJlZlBvc2l0aW9uID0g
ZW50UmVmLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZkNoaWxkMSk7Ci0gICAgICBhc3Nl
cnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbklzQ29udGFpbmVkRm9sbG93aW5n
MjciLDIwLGVudFJlZlBvc2l0aW9uKTsKLSAgICAgICBlbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVu
dFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWYpOwotICAgICAgYXNzZXJ0
RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Db250YWluc1BSRUNFRElORyIsMTAs
ZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzFhYmUwMWJmOWJkODlkMWExZWFmNmVjYmMwMWIwOTNlNmViZmIxMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcueGh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZ
TEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBn
YW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkg
ZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBk
aXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENE
QVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQg
UElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgot
PCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgi
Lz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzNkMzI0OWQ4NGJiM2MyNjE2NzVlM2U0ZThjYWQzNjI5OGEzZjg1YS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjgKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFz
c2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMmIyOGU4M2MzMDU0NGRhYWE4NDFmMTdmZDE1
ZDdiOGRiYzUyZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHly
aWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0
aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4g
QWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2Fs
LzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAg
KiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJp
IGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0g
ICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgiOwotICAgfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0g
cHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYg
KGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlv
bkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhl
IGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGlu
IHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1
bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3
aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQu
Ci1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8q
KgotKiAKLQlVc2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiBjaGVjayB0aGUgZG9jdW1lbnQg
cG9zaXRpb24gb2YgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGVudDQncwotCWZpcnN0IGNoaWxk
IGFuZCBsYXN0IGNoaWxkLiAgSW52b2tlIGNvbXBhcmVEb2N1bWVudFBvc2l0b24gb24gZmlyc3Qg
Y2hpbGQgd2l0aCBsYXN0IGNoaWxkIGFzIGEgcGFyYW1ldGVyCi0Jc2hvdWxkIHJldHVybiBGT0xM
T1dJTkcsIGFuZCBzaG91bGQgcmV0dXJuIFBSRUNFRElORyB2aWNlIHZlcnNhLgotCi0qIEBhdXRo
b3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgo
KSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIs
ICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2
YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxlbTsKLSAgICAgIHZh
ciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFyIGVudFJlZkNoaWxk
MjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGls
ZDJQb3NpdGlvbjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAKLQlpZigKLQkoZ2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVu
dGl0eVJlZmVyZW5jZXMiKSA9PSBmYWxzZSkKLQkpIHsKLQl2YXJMaXN0ID0gZG9jLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJ2YXIiKTsKLSAgICAgIHZhckVsZW0gPSB2YXJMaXN0Lml0ZW0oMik7Ci0g
ICAgICBhc3NlcnROb3ROdWxsKCJ2YXJFbGVtTm90TnVsbCIsdmFyRWxlbSk7Ci1lbnRSZWYgPSB2
YXJFbGVtLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZk5vdE51bGwi
LGVudFJlZik7Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgCi0JCX0KLQllbnRSZWZDaGlsZDEgPSBlbnRSZWYu
Zmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIs
ZW50UmVmQ2hpbGQxKTsKLWVudFJlZkNoaWxkMiA9IGVudFJlZi5sYXN0Q2hpbGQ7Ci0KLSAgICAg
IGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7Ci1lbnRS
ZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihl
bnRSZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb25Gb2xsb3dpbmcyOCIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgZW50UmVm
Q2hpbGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50
UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uUFJFQ0VESU5HMjgiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjgoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI1MDgyOWYxMmMyOTZiNjE5NTZiODFmYzY2NjU4MmUz
NjMyMjllYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRk
IiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2
OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0
ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICIm
Izk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFU
VExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1s
bnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAg
ICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0
ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRh
PC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RB
VEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRt
bCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNp
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhz
ZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRG
LTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJjYTc4MTdjODE0ODVlZWIxZmQ0YmU0Zjg1
YmQxZWUyMTdmNDk2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1U
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJl
ZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjku
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkOWZkNDVmYTkx
NWM0ZjUyYTBjMDg3N2ExNmI5NWVhN2EyZDg5MTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlDcmVhdGUgdHdvIGVudGl0eSByZWZlcmVuY2Ugbm9k
ZXMuIFVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHRvIGNoZWNrIGlmIHRoZSBjaGlsZCBv
ZiB0aGUgZmlyc3QgRW50aXR5IAotCVJlZiBub2RlIHByZWNlZGVzIHRoZSBjaGlsZCBvZiB0aGUg
c2Vjb25kIEVudGl0eSBSZWYgbm9kZSwgYW5kIHRoYXQgdGhlIGNoaWxkIG9mIHRoZSBzZWNvbmQg
RW50aXR5IFJlZiBub2RlCi0JZm9sbG93cyB0aGUgY2hpbGQgb2YgdGhlIGZpcnN0IEVudGl0eSBS
ZWYgbm9kZS4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjkoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0lu
aXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOSIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0VsZW07Ci0gICAgICB2
YXIgZW50UmVmMTsKLSAgICAgIHZhciBlbnRSZWYyOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsK
LSAgICAgIHZhciBlbnRSZWZDaGlsZDI7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247
Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQyUG9zaXRpb247Ci0gICAgICB2YXIgYXBwZW5kZWRDaGls
ZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICBlbnRSZWYxID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgZW50
UmVmMiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIGRvY0VsZW0g
PSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRWxlbS5h
cHBlbmRDaGlsZChlbnRSZWYxKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NFbGVtLmFwcGVu
ZENoaWxkKGVudFJlZjIpOwotICAgICAgZW50UmVmQ2hpbGQxID0gZW50UmVmMS5maXJzdENoaWxk
OwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGls
ZDEpOwotZW50UmVmQ2hpbGQyID0gZW50UmVmMi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5v
dE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7Ci1lbnRSZWZDaGlsZDFQ
b3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWZDaGls
ZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Gb2xs
b3dpbmcyOSIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgZW50UmVmQ2hpbGQyUG9z
aXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQx
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uUFJFQ0VE
SU5HMjkiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZWEzZDJhOWI3MjExZDRkZjYzNWM0NjViYjU5NmQwNWJhOTEyYmIwYS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS5qcyIv
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291
bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgot
ICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlv
biB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMg
aXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRh
YjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAm
Z2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0g
Sm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3Vw
PjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4K
LSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVj
dG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMg
OTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5n
b3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+
Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+
Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2
aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZl
YXR1cmUwNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3YTk1
YTFmNjJjZTE0NzQ4ZjM0NjA0MjA0YzczMjhiNzY5NDRiZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZWdldGZlYXR1cmUwNAotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxpbmUgMTAxOiBU
eXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0ZmVhdHVyZTA0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXRmZWF0dXJlMDQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ZjVkMjBm
NzdiZmI5ZGNhMGExMGU4MGUxZGY1NWViZmIyM2M0ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVnZXRmZWF0dXJlMDQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDIgKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
Q2hlY2sgaW1wbGVtZW50YXRpb24gb2YgTm9kZS5nZXRGZWF0dXJlIG9uIEVudGl0eVJlZmVyZW5j
ZS4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWdldEZlYXR1cmUK
LSovCi1mdW5jdGlvbiBub2RlZ2V0ZmVhdHVyZTA0KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWdldGZlYXR1cmUwNCIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5vZGU7Ci0gICAgICB2YXIgbnVs
bFZlcnNpb24gPSBudWxsOwotCi0gICAgICB2YXIgZmVhdHVyZUltcGw7Ci0gICAgICB2YXIgaXNT
dXBwb3J0ZWQ7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgZG9tSW1wbCA9IGRvYy5pbXBsZW1lbnRhdGlvbjsK
LW5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBmZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiQ29yZSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0
U2FtZSgiY29yZVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1mZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0
U2FtZSgiY09yRVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1mZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiK2NPckUiLG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2Vy
dFNhbWUoIlBsdXNDb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJbXBsKTsKLWZl
YXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJvcmcudzNjLmRvbXRzLmJvZ3VzLmZlYXR1cmUi
LG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2VydE51bGwoInVucmVjb2duaXplZEZlYXR1cmUiLGZl
YXR1cmVJbXBsKTsKLSAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsIjIu
MCIpOwotICAgICAgYXNzZXJ0U2FtZSgiQ29yZTIwIixub2RlLGZlYXR1cmVJbXBsKTsKLWZlYXR1
cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIiwiMy4wIik7Ci0gICAgICBhc3NlcnRTYW1l
KCJDb3JlMzAiLG5vZGUsZmVhdHVyZUltcGwpOwotaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9y
dGVkKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0
dXJlKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7
Ci0JYXNzZXJ0U2FtZSgiWE1MVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQot
CWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiU1ZHIixudWxsVmVyc2lvbik7Ci0gICAg
ICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZHIixudWxsVmVyc2lvbik7Ci0gICAg
ICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIlNWR1Vuc3BlY2lmaWVk
Iixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0
ZWQoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0
dXJlKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkg
ewotCWFzc2VydFNhbWUoIkhUTUxVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9
Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJFdmVudHMiLG51bGxWZXJzaW9uKTsK
LSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJFdmVudHMiLG51bGxWZXJzaW9u
KTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiRXZlbnRz
VW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9k
ZS5pc1N1cHBvcnRlZCgiTFMiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9k
ZS5nZXRGZWF0dXJlKCJMUyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0
ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJMU1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsK
LQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkxTLUFzeW5jIixudWxsVmVy
c2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiTFMtQXN5bmMiLG51
bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2Ft
ZSgiTFNBc3luY1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBv
cnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIlhQYXRoIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0
dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiWFBhdGgiLG51bGxWZXJzaW9uKTsKLSAgICAgIAot
CWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiWFBhdGhVbnNwZWNpZmllZCIs
bm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVk
KCIrSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1
cmUoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7
Ci0JYXNzZXJ0Tm90TnVsbCgiUGx1c0hUTUxVbnNwZWNpZmllZCIsZmVhdHVyZUltcGwpOwotCi0J
fQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiK1NWRyIsbnVsbFZlcnNpb24pOwot
ICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIlNWRyIsbnVsbFZlcnNpb24pOwot
ICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnROb3ROdWxsKCJQbHVzU1ZH
VW5zcGVjaWZpZWQiLGZlYXR1cmVJbXBsKTsKLQotCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVnZXRmZWF0dXJlMDQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZDg1YzUzYzM4MjNiYjgxMWIxZTc0OTMzOWE1
NTczYjI1NzA0NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBbCi08IUVO
VElUWSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50MiAnZm9vPGJyLz4nPgotPCFFTEVNRU5UIGh0
bWwgKGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0bWwgeG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci08
IUVMRU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+Ci08IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRB
KT4KLTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNyYyBDREFUQSAjSU1QTElFRAotICAgICB0eXBl
IENEQVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQg
dGl0bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJvZHkgKHApPgotPCFBVFRMSVNUIGJvZHkgb25s
b2FkIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHAgKCNQQ0RBVEF8YnIpKj4KLTwhRUxFTUVO
VCBiciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hvbGVUZXh0IHNhbXBsZTwvdGl0bGU+Ci08c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdzZWxmeGh0bWwuanMnPjwvc2NyaXB0Pjxz
Y3JpcHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdub2RlZ2V0
ZmVhdHVyZTA0LmpzJz48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotPHA+YmFyPC9wPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDljNWMyOWNkZDk5N2JhZTkxYmMwYzVhYjc5NDA1YjgwMTI2ODMzY2IuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1Ci1TdGF0dXMJ
ZXJyb3IKLU1lc3NhZ2UJTGluZSAxMjE6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTQ2N2EzYmM0MTYyMGQzOTBlYzdkNGQ1ZDkyMjhi
ODg0MGM5MGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE1IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZh
ciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
dGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1
aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywg
YXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3Ro
ZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUg
ZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcg
dGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0
VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBj
cmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAv
LwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJ
bXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBz
ZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LQlUaGUgbWV0aG9kIGdldFRleHRDb250ZW50IHJldHVybnMgdGhlIHRleHQgY29udGVudCBvZiB0
aGlzIG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJbnZva2UgdGhlIG1ldGhvZCBnZXRU
ZXh0Q29udGVudCBvbiBhIG5ldyBFbGVtZW50IG5vZGUgd2l0aCBuZXcgVGV4dCwgRW50aXR5UmVm
ZXJlbmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29tbWVudCBub2RlcyBhbmQgY2hlY2sg
aWYgdGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAotCWNvbmNhdGVuYXRlZCBTdHJpbmcg
d2l0aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4
dGNvbnRlbnQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgY29t
bWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcGk7
Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0g
ZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVs
ZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNv
bW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEgPSBkb2Mu
Y3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0u
YXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxk
KGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVm
KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIHRleHRDb250ZW50
ID0gZWxlbS50ZXh0Q29udGVudDsKLQotICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVudDE1IiwiVGV4dCDOskNEYXRhIix0
ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBub2RlZ2V0dGV4dGNvbnRlbnQxNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LnhodG1sIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmQzNmNiYTNjM2RhMDkwY2JhZDc3NDdkMGU4OTFj
NWYyNGI2OTQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS54
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/
Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAg
IDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAg
IDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0g
ICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBw
Ci0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1Q
TElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAy
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4
bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFu
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+
PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1Q
TElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVh
ZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVnZXR0ZXh0Y29udGVudDE1LmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjQx
NDRkMDVmZjA4ZDcyZThlOTg0YWExMTMxNTQ4NjRiODExYTRiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNgotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxp
bmUgMTIzOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTQxZjdjODQxOWU4ZDExNTY0MjA4ODQ5NTg4NjhmYWFkNjE1NWQ5YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNiI7
Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7
Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1l
d29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElm
IHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8g
ICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1
cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1l
ZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0
ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdy
dW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3Vt
ZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9
IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRy
aWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25B
dHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBnZXRU
ZXh0Q29udGVudCByZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhpcyBub2RlIGFuZCBpdHMg
ZGVzY2VuZGFudHMuCi0JCi0JSW52b2tlIHRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgb24gYSBu
ZXcgRG9jdW1lbnRGcmFnbWVudCBub2RlIHdpdGggbmV3IFRleHQsIEVudGl0eVJlZmVyZW5jZXMg
IAotCUNEQVRBU2VjdGlvbiwgUEkgYW5kIENvbW1lbnQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZSB2
YWx1ZSByZXR1cm5lZCBpcyBhIHNpbmdsZSAKLQljb25jYXRlbmF0ZWQgU3RyaW5nIHdpdGggaXRz
IGNvbnRlbnQuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQw
Ny9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9kZWdldHRleHRjb250ZW50
MTYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJub2RlZ2V0dGV4dGNvbnRlbnQxNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbGVtQ2hp
bGQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVm
OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50
OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwg
ImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53
My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0
Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVu
dCAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsK
LSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRh
ICIpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAg
ICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFw
cGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNk
YXRhKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVsZW0pOwot
ICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0gICAgICB0ZXh0Q29udGVudCA9IGRvY0Zy
YWcudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50
MTYiLCJUZXh0IM6yQ0RhdGEiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE2KCk7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmZWZjMTVlYjRl
ZjAxZmIzZmVkMWNiZDg1ODY0ZTQ1NTkxZDFjZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXR0ZXh0Y29udGVudDE2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRt
bAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRt
bDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElU
WSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElU
WSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90
YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZp
bGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHht
bG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAot
ICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAg
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBz
cGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAg
ICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
Ci0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRj
b250ZW50MTYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9
ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMg
YSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08
IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNl
IHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAg
PHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0
cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwv
Y29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4
NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBE
YWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRw
Oi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3Jk
aWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM2YmViMzI3ZDgwZGVmMmM5NzllYjQ5MTFmYjM3NzcxMDMzMzIyY2Eu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3Ci1TdGF0
dXMJZmFpbHVyZQotTWVzc2FnZQlub2RlZ2V0dGV4dGNvbnRlbnQxNzogYXNzZXJ0RXF1YWxzIGZh
aWxlZCwgYWN0dWFsICwgZXhwZWN0ZWQgzrIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAyNGJhNjAxYTkxZmU1MTU4YThiMTMyN2M4MzMyMzhjZmI5YTU4
NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZva2UgdGhlIG1ldGhvZCBn
ZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhbmQgY2hlY2sgaWYg
dGhlIAotCXZhbHVlIHJldHVybmVkIGlzIHRoZSBFbnRpdHlSZWZlcmVuY2UncyBjb250ZW50Lgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
dGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4dGNvbnRlbnQxNygpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXR0
ZXh0Y29udGVudDE3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIHRleHRDb250ZW50ID0gZW50
UmVmLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVu
dDE3IiwizrIiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcu
eGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3OWMyMmM0ZDFlNTg0ZGEwZGFm
OWU4MzZkYzQ1YzFhNjM0Mzk0ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVy
c2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0
LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICIm
Izk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAi
JiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmls
ZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAg
PCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3Rj
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAg
ICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkg
ZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQg
ZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5z
IENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgot
PGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5z
OnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFm
Zi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRjb250ZW50MTcu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZv
cmUxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzk3ZmE4MzEwZDM3ZGVlMDEwYmU1YzQ5MTc5MDY2NTE3ZThiMzFlMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3Jl
MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9y
ZTExLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGE4YjllYzJjMjA0MGRiMTgy
ZDExYjZjMWRjODlkZmQ4MjQ1NDQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0
YmVmb3JlMTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotCi0vKgotQ29weXJp
Z2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1
c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRp
dW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBB
bGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUg
VzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwv
MjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAq
ICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkg
aWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAg
ICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0K
LQlVc2luZyBpbnNlcnRCZWZvcmUgb24gYSBEb2N1bWVudEZyYWdtZW50IG5vZGUgYXR0ZW1wdCB0
byBpbnNlcnQgYSBjaGlsZCBub2RlcyBiZWZvcmUKLQlvdGhlciBwZXJtaXNzaWJsZSBub2RlcyBh
bmQgdmVyaWZ5IHRoZSBjb250ZW50cy9uYW1lIG9mIGVhY2ggaW5zZXJ0ZWQgbm9kZS4KLQotKiBA
YXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5v
cmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcy
NwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUxMSgpIHsKLSAgIHZhciBzdWNjZXNzOwot
ICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxMSIp
ICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAg
ICB2YXIgZWxlbTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFy
IHR4dDsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIGluc2Vy
dGVkOwotICAgICAgdmFyIGluc2VydGVkVmFsOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9j
RnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImJvZHkiKTsKLSAg
ICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUYXJnZXQiLCJQSURh
dGEiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAg
ICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICBjZGF0YSA9IGRvYy5j
cmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVu
ZENoaWxkKGVsZW0pOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQo
cGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY29tbWVudCk7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZVJlZik7Ci0gICAgICBpbnNlcnRlZCA9IGRv
Y0ZyYWcuaW5zZXJ0QmVmb3JlKGNvbW1lbnQscGkpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNl
cnRlZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9Db21t
ZW50IiwiQ29tbWVudCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5p
bnNlcnRCZWZvcmUodHh0LGNvbW1lbnQpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5k
YXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9UZXh0IiwiVGV4
dCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUo
Y2RhdGEsdHh0KTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5zZXJ0ZWQuZGF0YTsKLQotICAgICAg
YXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfQ0RBVEEiLCJDREFUQSIsaW5zZXJ0ZWRW
YWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUoZVJlZixjZGF0YSk7
Ci0gICAgICBpbnNlcnRlZFZhbCA9IGluc2VydGVkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9FbnQxIiwiYWxwaGEiLGluc2VydGVkVmFsKTsKLSAg
ICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVpbnNlcnRiZWZv
cmUxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFhNGFhNjgzNzM4NWUwMDAzMzNkNmJjNWM0ODExODY3OTQ2YWQ1ZGQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/Pgot
PCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8v
RU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsi
PgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0Nzsi
PgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0
OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVN
ICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRs
JwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0g
ICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMg
Y29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
ZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Im5vZGVpbnNlcnRiZWZvcmUxMS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQyZjNlNjM1NDc1MDdlZTVkYTJkZjM2ZWVkMTViNGNj
MmZkNTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1Ci1T
dGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdmMzcxNmVhMTlkNGFmNzE3ZGI2NGExYjA2MzVlNDU5NTkwNWUzZTQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3NyAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNSI7Ci0gICB9Ci0KLXZh
ciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAg
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUK
LS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBu
byBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3Vt
ZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAg
IGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8g
ICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1
bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAg
IHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIs
IG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZp
Z3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotCUEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHJhaXNlZCBp
ZiB0aGUgbm9kZSBpcyByZWFkLW9ubHkuCi0JCi0JVXNpbmcgaW5zZXJ0QmVmb3JlIG9uIGEgbmV3
IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gaW5zZXJ0IEVsZW1lbnQsIFRleHQsCi0J
Q29tbWVudCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZCBDREFUQVNlY3Rpb24gbm9kZXMgYmVm
b3JlIGFuIGVsZW1lbnQgY2hpbGQKLQlhbmQgdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVs
aW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29y
ZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZv
cmUxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxNSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0
OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBwaTsKLSAg
ICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBpbnNlcnRlZDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZWxlbUNoaWxkID0gZW50UmVmLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9u
Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAg
IGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjZGF0YSxlbGVtQ2hpbGQpOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci1waSA9IGRvYy5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIAotCXsKLQkJ
c3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYu
aW5zZXJ0QmVmb3JlKHBpLGVsZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSXzIiLHN1Y2Nlc3MpOwotCX0KLWNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVu
dCIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAg
ICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoY29tbWVudCxlbGVtQ2hpbGQpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci10eHQgPSBkb2Mu
Y3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKHR4dCxl
bGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl80IixzdWNjZXNzKTsK
LQl9Ci1lbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCIsImJvZHkiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKGVsZW0sZWxlbUNoaWxk
KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVl
KCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlaW5zZXJ0YmVmb3JlMTUoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5z
ZXJ0YmVmb3JlMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWluc2VydGJlZm9yZTE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjBk
MDBiOWNhMTYzNzFlZmMwMmY4ZTQwMWViNDVkODU3ZjQxZGMxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlaW5z
ZXJ0YmVmb3JlMTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxv
YWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25n
PgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMg
aXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+
Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJl
bmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4K
LSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAg
PHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdl
cjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8
ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2Rl
PlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0i
Xzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2Fk
LiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJo
dHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVy
dCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8
c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBO
b3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFjMGUxNzU0ZjdhOTJjZmVlODk0MTkyOGI0ZWY2YjE3YjlhNzdmMWYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyCi1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1v
dmVjaGlsZDEyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1v
dmVjaGlsZDEyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTE4YTIyNzFlOGFj
OWU4NjliYzFmOWFmNWQxNzExNjM3ODk4Yjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAt
MTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5n
IHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24g
ZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBz
dGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBs
ZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdo
ZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdl
KCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8K
LSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2Vw
dGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsK
LSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVl
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJv
cihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21w
bGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRV
cFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQg
aGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2gg
YWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSog
Ci0JVGhlIG1ldGhvZCByZW1vdmVDaGlsZCByZW1vdmVzIHRoZSBjaGlsZCBub2RlIGluZGljYXRl
ZCBieSBvbGRDaGlsZCBmcm9tIHRoZSBsaXN0IAotCW9mIGNoaWxkcmVuLCBhbmQgcmV0dXJucyBp
dC4gCi0KLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBEb2N1bWVudEZyYWdtZW50IG5vZGUg
YXR0ZW1wdCB0byByZW1vdmUgYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUuCi0gICAgICAgIEFs
c28gYXR0ZW1wdCB0byByZW1vdmUgdGhlIGRvY3VtZW50IGZyYWdtZW50IG5vZGUgZnJvbSB0aGUg
RW50aXR5UmVmZXJlbmNlLiAgVmVyaWZ5IHRoYXQgYSAKLSAgICAgICAgTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSIChFbnRpdHlSZWZlcmVuY2Ugbm9kZSBpcyByZWFkLW9ubHkpIG9yIGEgTk9U
X0ZPVU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNo
aWxkMTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciByZW1vdmVk
RVJlZjsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlbW92ZWRDaGlsZDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBk
b2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVSZWYgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9j
RnJhZy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92ZWRDaGlsZCA9IGRvY0ZyYWcucmVt
b3ZlQ2hpbGQoZVJlZik7Ci0gICAgICByZW1vdmVkRVJlZiA9IGRvY0ZyYWcuZmlyc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0TnVsbCgibm9kZXJlbW92ZWNoaWxkMTIiLHJlbW92ZWRFUmVmKTsKLSAg
ICAKLSAgICAgIHRyeSB7Ci0gICAgICByZW1vdmVkQ2hpbGQgPSBlUmVmLnJlbW92ZUNoaWxkKGRv
Y0ZyYWcpOwotICAgICAgCi0gICAgICB9IGNhdGNoIChleCkgewotCQkgIGlmICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcpIHsgICAgICAKLSAgICAgICBzd2l0Y2goZXguY29kZSkgewot
ICAgICAgIGNhc2UgLyogTk9UX0ZPVU5EX0VSUiAqLyA4IDoKLSAgICAgICBicmVhazsKLSAgICAg
IGNhc2UgLyogTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSICovIDcgOgotICAgICAgIGJyZWFr
OwotICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgdGhyb3cgZXg7Ci0gICAgICAgICAgfQot
ICAgICAgIH0gZWxzZSB7IAotICAgICAgIHRocm93IGV4OwotICAgICAgICB9Ci0gICAgICAgICB9
Ci0gICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlbW92
ZWNoaWxkMTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzM2ZWQ5MmYwM2JhNTRhZWM4MjdkYjc4NGY2MDU2ZDkyMzQ5NDk0Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVtb3ZlY2hpbGQxMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTZlNTZhNmM2YTA2MzIwMDg2NTE1MGZkZTg4YzgzZjk0ZjUy
YTRhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMKLVN0YXR1
cwlmYWlsdXJlCi1NZXNzYWdlCXR4dE5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxk
MTMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxk
MTMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjODBmZmI0YTY1MmQ5MDJkYTJk
MmRmZjUxNzY4NjdmZTk2MmYzZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAg
ICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQot
ICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIs
IGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2Yg
Ci0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0v
LwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxl
dGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhl
Ci0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBy
ZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92
ZSB0aGUgZmlyc3QgY2hpbGQgCi0Jb2YgdGhpcyBub2RlIGFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00t
TGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5v
ZGVyZW1vdmVjaGlsZDEzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFs
aXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTMiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBy
ZW1vdmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAg
dHh0ID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJ0eHROb3ROdWxs
Iix0eHQpOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBy
ZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZCh0eHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICBub2RlcmVtb3ZlY2hpbGQxMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3MTMxN2E0NjNlMTllOTZkOWMxMjU0Njc5ZmI1NzVlN2I5ZmMw
NTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAg
IGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdl
dCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjM1YmY0ZGZkYjAwZTI1ZTA4MThi
MTZkMGQwY2FhNTg5NWY3OTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcGlOb3ROdWxsOiBhc3NlcnROb3ROdWxs
IGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2Q1YTE5
MzNlZTk3NjVhMjljNTc1YmNiNWYwZjU5ZGQxYWZlZWExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAg
IC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBA
cmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0
VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0
ZW1wdCB0byByZW1vdmUgaXRzIGxhc3QgUHJvY2Vzc2luZ0luc3RydWN0aW9uIAotCWNoaWxkIG5v
ZGUgYW5kIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24u
Ci0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0x
NzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxkMTQoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hp
bGQxNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHJlbW92ZWQ7
Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBlbnROYW1lOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYg
PSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICBwaSA9IGVSZWYubGFz
dENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJwaU5vdE51bGwiLHBpKTsKLQotCXsKLQkJ
c3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVtb3ZlZCA9IGVSZWYucmVt
b3ZlQ2hpbGQocGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7
Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hp
bGQxNCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDE0LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDg0ZjdkNzQ1ZWZkMjdjNDZlZDg1NzVmNjc3ZDgyZjA4NzY0MzZlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcz
ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFE
T0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4i
Ci0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgot
ICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgot
ICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsi
PgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQ
VUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJu
b3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwot
ICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8
IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29t
bWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1h
LWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFm
ZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpz
Ii8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5v
ZGVyZW1vdmVjaGlsZDE0LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4MDJlMGMyYmE4YmY4ZWNhNjFhODUyZjk1NmYwYzgxZDViYjhjOTIw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNQotU3RhdHVzCWZh
aWx1cmUKLU1lc3NhZ2UJZWxlbU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzYjNmN2NjOGUwODExYmI4MGIzZTdi
NGNhOTkwNDlkZDA5NWM3ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDD
gsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRz
IEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAot
Zm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAot
UmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OC
wq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIv
Y29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0
cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50
aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICBy
ZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBk
b2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAg
IH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4
KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
Ci0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0v
LyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwot
Ly8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVk
LAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0v
LyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZW1v
dmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBh
biBFbGVtZW50IGNoaWxkIAotCWFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlIgaXMgdGhyb3duLiAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1h
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0y
MDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlvbiBub2RlcmVtb3ZlY2hpbGQx
NSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRl
ciwgIm5vZGVyZW1vdmVjaGlsZDE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0g
ICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudE5hbWU7Ci0gICAg
ICB2YXIgcmVtb3ZlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwot
ICAgICAgZWxlbSA9IGVSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZWxl
bU5vdE51bGwiLGVsZW0pOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZChlbGVtKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTUoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE0ODYyN2E1YzExYmUyNjdlMGRjYTM0ZDA1
OGI4NGRiOTA1MmM1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxNS5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MTgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDlmODQxODhk
ZjFhMDFkOTRlMDNiYzUyNDc2NzUxYjMyOTEyMTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDE4Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTguanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMGI2NzJiYzQ4ZDlhN2M1NjA5YzY2ZjY4ZmI5YzBj
MWE5MjI0OGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAx
LTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZv
cm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBS
ZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3
YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdo
dC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRo
YXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9m
IHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQxOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGls
ZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYSBDREFUQVNl
Y3Rpb24gbm9kZSB3aXRoIAotCWEgRW50aXR5UmVmZXJlbmNlIGFuZCB2aWNlIHZlcnNhIHZlcmlm
eSB0aGUgZGF0YSBvZiB0aGUgcmVwbGFjZWQgbm9kZXMuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1
dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBu
b2RlcmVwbGFjZWNoaWxkMTgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRp
YWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMTgiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVudFJlZjsKLSAg
ICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciByZXBsYWNlZENEYXRhOwotICAgICAgdmFyIHJlcGxh
Y2VkRXJlZjsKLSAgICAgIHZhciBjZGF0YU5hbWU7Ci0gICAgICB2YXIgZXJlZk5hbWU7Ci0gICAg
ICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7
Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAg
ICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIHJlcGxhY2Vk
Q0RhdGEgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChlbnRSZWYsY2RhdGEpOwotICAgICAgY2RhdGFO
YW1lID0gcmVwbGFjZWRDRGF0YS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZXJlcGxhY2VjaGlsZDE4XzEiLCJDREFUQVNlY3Rpb24iLGNkYXRhTmFtZSk7Ci0gICAgICAgcmVw
bGFjZWRFcmVmID0gZG9jRnJhZy5yZXBsYWNlQ2hpbGQoY2RhdGEsZW50UmVmKTsKLSAgICAgIGVy
ZWZOYW1lID0gcmVwbGFjZWRFcmVmLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5v
ZGVyZXBsYWNlY2hpbGQxOF8yIiwiYWxwaGEiLGVyZWZOYW1lKTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQxOCgpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQxOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMTgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkNzY3YjllYWY4
NGUyYWNlZDMxY2E1OWNmYTM5MTQzNmQzYzJlM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hp
bGQxOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDE5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhOGEyZDM2MWU5MTA2ZDRkMWQ4MGU1MTJiY2RlYzU4MGIzYjBlNzQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5Ci1TdGF0dXMJU3VjY2Vzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQxOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMTkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiOWExN2RmOTdmNDNk
MDM1MmYzYmQ4YWQxYzVjOTM0MDhmMzViMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQxOS5qcworKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
CVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRv
IHJlcGxhY2UgYW4gRWxlbWVudCBub2RlIHdpdGggCi0JaXRzIEVudGl0eVJlZmVyZW5jZSBjaGls
ZCB2ZXJpZnkgdGhlIG5vZGVOYW1lIG9mIHRoZSByZXBsYWNlZCBub2RlLgotCi0qIEBhdXRob3Ig
SUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwot
ZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDE5KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDE5IikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBl
bnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBu
b2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBw
ZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICByZXBsYWNlZCA9IGRvY0ZyYWcucmVwbGFjZUNoaWxkKGVu
dFJlZixlbGVtKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAg
IGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE5IiwiZG9tMzpwIixub2RlTmFtZSk7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNo
aWxkMTkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzMjViMmNiM2IzYmU3MGVkNzk0YmUxZjAyMDMwYjM2ZDE5MzQ3M2U3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVwbGFjZWNoaWxkMTkuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxZGFmMmZlZjM1ZWRiMzczOTVmNDQ5NzNjODgxNTUy
MjZiYjdiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMgot
U3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmZDNmNDIzZjczNWYzZjFiMjVjYTVlNGNiMzYwODI1NjMwM2E3NDVhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJl
bmNlIG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGFuIEVudGl0eVJlZmVyZW5jZSBub2RlIHdpdGgg
Ci0JaXRzIEVsZW1lbnQgcGFyZW50LCB3aXRoIGl0c2VsZiBhbmQgdmljZSB2ZXJzYSB2ZXJpZnkg
aWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3Ig
SUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwot
ZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDIyIikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmTWFpbjsKLSAgICAgIHZh
ciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgdmFyIHJlcGxhY2VkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZk1haW4gPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgcmVwbGFjZWRDaGlsZCA9IGVudFJlZk1haW4ucmVwbGFjZUNoaWxkKGVs
ZW0sZW50UmVmKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0
eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlh
c3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMSIsc3VjY2Vzcyk7
Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBs
YWNlZENoaWxkID0gZW50UmVmTWFpbi5yZXBsYWNlQ2hpbGQoZW50UmVmLGVsZW0pOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nl
c3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkQ2hpbGQgPSBlbnRSZWZN
YWluLnJlcGxhY2VDaGlsZChlbnRSZWZNYWluLGVudFJlZik7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDIyKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YzMjU0ZTJjYWJhMzJiYjQwNTNkNzQ2NDlj
YzlmYTgzMDFhZWQwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIy
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDIyLmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQyMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxOGI3N2Iz
OGUzYmMxYzM3YWJhZjY2ZGNhZWFjMGQ5NGFlYjQ5ZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICsw
LDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMjMKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLmpzIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMzMWFmYzlkYzdlNTQwM2E4NWNmNDc1NGQ4NmJm
YzRlZDJlNmExOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkg
dGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIg
b2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4g
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNo
aWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhbiBF
bGVtZW50LCBUZXh0LAotCUNvbW1lbnQsIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgQ0RBVEFT
ZWN0aW9uIG5vZGVzIHdpdGggZWFjaCBvdGhlciBhbmQgaW4gZWFjaCBjYXNlCi0JdmVyaWZ5IGlm
IGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElC
TQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1
bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQyMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQyMyIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0eHQ7
Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIHBpOwotICAg
ICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFyIGFwcGVuZGVkQ2hp
bGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImRlbHRhIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAg
IGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAgY2RhdGEgPSBk
b2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIHBpID0gZG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBl
bmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxk
KHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAg
ICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFj
ZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGNkYXRhLGVsZW0pOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElP
Tl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChwaSxj
ZGF0YSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQg
PSBlbnRSZWYucmVwbGFjZUNoaWxkKGNvbW1lbnQscGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJ
dHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZCh0eHQsY29t
bWVudCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzQiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQg
PSBlbnRSZWYucmVwbGFjZUNoaWxkKGVsZW0sdHh0KTsKLSAgICAgICAgfQotCQljYXRjaChleCkg
ewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXgu
Y29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMjMoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNThhMWQyNTE2M2ZkNWEzZmJhYzdkMTAxNDkzZDRh
NTcxYWViMTdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMjMuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMw
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDlmODNlNzRiOTI2
NzMzMWMxNzAzYmQyOGQxNmVmYzIxZjQ2ZmIwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBA
QAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNzM1OGY5MzQ3MjYzYjgyN2E4ZTg4ODEzZTdhZTM3YzBi
NzYzMmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0y
MDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl
IG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3Jt
YXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVz
ZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2Fy
ZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAK
LQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQt
c29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0
IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0
ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzAiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0KLQlVc2luZyByZXBsYWNl
Q2hpbGQgb24gYW4gRWxlbWVudCBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhIG5ldyBFbGVtZW50
IGNoaWxkIG5vZGUgd2l0aCAKLQluZXcgY2hpbGQgbm9kZXMgYW5kIHZpY2UgdmVyc2EgYW5kIGlu
IGVhY2ggY2FzZSB2ZXJpZnkgdGhlIG5hbWUgb2YgdGhlIHJlcGxhY2VkIG5vZGUuCi0KLSogQGF1
dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcK
LSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzAoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzAiKSAh
PSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2
YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3RWxlbWVudDsKLSAgICAgIHZhciBuZXdUZXh0Owot
ICAgICAgdmFyIG5ld0NvbW1lbnQ7Ci0gICAgICB2YXIgbmV3UEk7Ci0gICAgICB2YXIgbmV3Q2Rh
dGE7Ci0gICAgICB2YXIgbmV3RVJlZjsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBu
b2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpodG1sIik7Ci0gICAg
ICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiLCJ4aHRtbDpoZWFkIik7Ci0gICAgICBuZXdFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1l
bnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1sOmJvZHkiKTsKLSAgICAg
IGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdFbGVtZW50KTsKLSAgICAgIG5ld1Rl
eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBw
YXJlbnQuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBuZXdDb21tZW50ID0gZG9jLmNyZWF0
ZUNvbW1lbnQoIkNvbW1lbnQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5k
Q2hpbGQobmV3Q29tbWVudCk7Ci0gICAgICBuZXdQSSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQu
YXBwZW5kQ2hpbGQobmV3UEkpOwotICAgICAgbmV3Q2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0
aW9uKCJDZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChu
ZXdDZGF0YSk7Ci0gICAgICBuZXdFUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVs
dGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3RVJlZik7
Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3RWxlbWVudCxvbGRDaGls
ZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8xIiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAg
ICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdFbGVtZW50KTsK
LSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZXJlcGxhY2VjaGlsZDMwXzIiLCJ4aHRtbDpib2R5Iixub2RlTmFtZSk7Ci0gICAgICAg
cmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld1RleHQsb2xkQ2hpbGQpOwotICAgICAg
bm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2Rl
cmVwbGFjZWNoaWxkMzBfMyIsInhodG1sOmhlYWQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNl
ZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3VGV4dCk7Ci0gICAgICBub2RlTmFt
ZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNl
Y2hpbGQzMF80IiwiI3RleHQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5y
ZXBsYWNlQ2hpbGQobmV3Q29tbWVudCxvbGRDaGlsZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxh
Y2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF81
IiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxh
Y2VDaGlsZChvbGRDaGlsZCxuZXdDb21tZW50KTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQu
bm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzYiLCIj
Y29tbWVudCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGls
ZChvbGRDaGlsZCxuZXdQSSk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwot
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF83IiwidGFyZ2V0Iixub2Rl
TmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5l
d0NkYXRhKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFz
c2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzgiLCIjY2RhdGEtc2VjdGlvbiIsbm9kZU5h
bWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdF
UmVmKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2Vy
dEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzkiLCJkZWx0YSIsbm9kZU5hbWUpOwotICAgICAg
IAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDMw
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDMwLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2RiNWNiYjEzM2ZhYWYyZWI0ZjEwNDNkMjFmYzQzNTA4YjdkYzdlMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0g
ICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJ
U1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAg
ICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBM
SUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwh
QVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21t
ZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEt
aW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9k
ZXJlcGxhY2VjaGlsZDMwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDIzM2Y5MjkzMzU4MmE3MDU0MjYxNWQxMjUwYTQ5MTBhNzQ5M2Qw
YTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMKLVN0YXR1
cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDMzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc0
YmU0NGQ0YjBhNzcxY2I3OTIwNDM2YzdhM2MyZDhhNjIxNjRiNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzIjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgZGVmYXVsdCBBdHRyIG5vZGUgdG8g
cmVwbGFjZSBpdHMgVGV4dCBDaGlsZCB3aXRoIGEgCi0JbmV3IEVudGl0eVJlZmVyZW5jZSBOb2Rl
IGFuZCB2ZXJpZnkgdGhlIHZhbHVlIG9mIHRoZSByZXBsYWNlZCBjaGlsZC4KLQotKiBAYXV0aG9y
IElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8K
LWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzMyIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZh
ciBlbGVtOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZh
ciBuZXdDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgbmV3
Q2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY2hpbGRM
aXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7Ci0gICAgICBlbGVtID0gY2hpbGRM
aXN0Lml0ZW0oMyk7Ci0gICAgICBwYXJlbnQgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoImRpciIp
OwotICAgICAgb2xkQ2hpbGQgPSBwYXJlbnQubGFzdENoaWxkOwotCi0gICAgICByZXBsYWNlZCA9
IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVl
ID0gcmVwbGFjZWQubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNl
Y2hpbGQzMyIsInJ0bCIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3OTkwYzE1ODA2NTU1ZWRlY2QxNWYz
MjEwMWE4Y2ZhMjQ2M2E2N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249
IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAi
LS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQi
IFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7
Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4
OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRU
TElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAg
ICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQg
IjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8
L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFU
QSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1s
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNk
Ij48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzMy5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzVl
ZTRkNTg2Y2YwMDk4NmM5MDFlZWQ0ZjE0Yzk0NzNiYzczZWJjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNGEzNWEwMWVhNGUzZThmYmE5YzA5MzIx
YTJmODA0ODgyZTViZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxh
Y2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcmVu
Y2UgQ2hpbGQgd2l0aCBhIAotCW5ldyBUZXh0IE5vZGUgYW5kIHZlcmlmeSB0aGUgdmFsdWUgb2Yg
dGhlIG5ldyBjaGlsZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNCgp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVyZXBsYWNlY2hpbGQzNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsK
LSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIHZh
ciByZXBsYWNlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMu
b3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
cGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0
ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQo
bmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVlID0gcGFyZW50LnZhbHVlOwotCi0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzNCIsIlRleHQiLG5vZGVWYWx1ZSk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFj
ZWNoaWxkMzQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzMDY5YmIwMzgwZDE1ZGNlMzVhY2E4NTBhNTgzNjJiNGQxYjZjMmI5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJub2RlcmVwbGFjZWNoaWxkMzQuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUxYzk4OGY2NGZjOTgzMjM1ODcyOGMxMDM3NWE3
Mjk2YTA3NzZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxYmFlODY3YTVlZjJiYjdkY2E5MWViNzI3ZjJkYzU1YzYwODExOWIzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgQXR0ciBub2Rl
LCByZXBsYWNlIGl0cyBuZXcgRW50aXR5UmVmZXJuZWNlIENoaWxkIHdpdGggYSAKLQluZXcgQXR0
ciBOb2RlIGFuZCB2ZXJpZnkgaWYgYSBISUVSQVJDSFlfUkVRVUVTVF9FUlIgaXMgdGhyb3duLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1
ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDM1KCkgewotICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGls
ZDM1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgcGFyZW50Owot
ICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVW
YWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVu
dCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFt
ZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hp
bGQob2xkQ2hpbGQpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0
dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICAK
LQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0g
cGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0
Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQn
ICYmIGV4LmNvZGUgPT0gMyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfSElFUkFSQ0hZX1JF
UVVFU1RfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNjcyMWNkOTRmMTVlMjZjZmU1YWNmODM1NDIzZmZk
NmQ2OTg4YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/
VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9E
VEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwh
RU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwh
RU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8
IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0g
ICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxu
czp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9Q
SXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElF
RD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNS5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTk5ZTAxNjExOWJj
YjkwNDEyNDkzYzcyZjEwZWFmMTg3M2M0NzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlYTIyNWJlZWYyZmEzOGVlYzk1ZTAwOGUxMmI2Nzk1NzZj
MGE0YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBv
biBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcm5lY2Ugbm9kZSB3
aXRoIGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5IGlmIGEgTk9UX0ZPVU5EX0VSUiBpcyB0
aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29y
ZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzYoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVw
bGFjZWNoaWxkMzYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBw
YXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0gICAgICB2
YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRy
aWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmci
KTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsK
LSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICAKLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gcGFy
ZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gOCk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX0ZPVU5EX0VSUiIs
c3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rl
cmVwbGFjZWNoaWxkMzYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjYWE4ODBiMDcyYTM1Nzg0MDFmYjFiZWVmZDdhMjRhNmFjMTg4MGM0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIg
Q0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRB
ICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElk
YXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEt
LSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48
dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9s
ZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1
MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFs
dGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjMWFhNWJmODg5ZDI1NjZhYTM1M2Iw
OWM0NDFhYTc3YTBiZjZhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhyb3dfV1JPTkdfRE9DVU1FTlRfRVJS
OiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRmZDAyNjQ0MTNkYjc2NmJiNGFmZjIwNjM0YTk4N2MzOTIxNzQ0ODkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNyI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgIHZhciBkb2MyUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2My
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2MyUmVmID0gdGhpcy5kb2MyOwotICAgICAg
fQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvYzJSZWYsICJkb2MyIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDIpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMikgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEg
bmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IFRleHQgbm9kZSB3aXRoIGEgCi0JbmV3IEVu
dGl0eVJlZmVyZW5jZSBOb2RlIGNyZWF0ZWQgYnkgYW5vdGhlciBkb2N1bWVudCBhbmQgdmVyaWZ5
IGlmIGEgCi0JV1JPTkdfRE9DVU1FTlRfRVJSIGlzIHJhaXNlZC4KLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0
aW9uIG5vZGVyZXBsYWNlY2hpbGQzNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzNyIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvYzI7Ci0gICAgICB2YXIgcGFyZW50Owot
ICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVW
YWx1ZTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotICAg
ICAgdmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYzIpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlzLmRvYzI7Ci0gICAgICB9Ci0gICAg
ICBkb2MyID0gbG9hZChkb2MyUmVmLCAiZG9jMiIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50
ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1l
c3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlVGV4dE5vZGUo
IlRleHQiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jMi5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRl
bHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxk
KTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAg
cmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA0KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19X
Uk9OR19ET0NVTUVOVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LnhodG1sIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy54aHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlkZGJkMjMzMTk5N2UzMzM4NWZhYTBm
ZjI3MzI5NDliZWZiYWY2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM3LmpzIi8+PHNj
cmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3Rh
cnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdp
dGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBh
biBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11d
Pjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1t
YTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
bmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25l
czwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAw
LDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1
NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcg
VGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRl
eHRjb250ZW50MTAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
NzYwOTM0ZmVjNGQ5NDc4NmFlMWJmNThmNWQ0NWE1OWIxYTkyYzU2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRl
bnQxMC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU3MWFlNzczOGEwYjI4
M2JjOTJjODdhZmQzYWM1MTM2MjliMzE1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNl
dHRleHRjb250ZW50MTAuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwg
dHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJl
ZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBzZXRUZXh0Q29udGVudCBoYXMgbm8gZWZmZWN0
IHdoZW4gdGhlIG5vZGUgaXMgZGVmaW5lZCB0byBiZSBudWxsLgotCQotCVVzaW5nIHNldFRleHRD
b250ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSwgYXR0ZW1wdCB0byBzZXQgaXRzIGNvbnRlbnQg
dG8gRUxFTUVOVC4KLQlSZXRyZWl2ZSB0aGUgdGV4dENvbnRlbnQgYW5kIHZlcmlmeSBpZiBpdCBp
cyB3YXMgc2V0IHRvIEVMRU1FTlQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0
ZXh0Y29udGVudDEwKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTAiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBj
b21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBw
aTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0g
PSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImRvbTM6
ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0ICIpOwotICAgICAg
Y29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwotICAgICAgZW50UmVmID0g
ZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRl
UHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRv
Yy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hp
bGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRS
ZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgZWxlbS50ZXh0
Q29udGVudCA9ICJFTEVNRU5UIjsKLQotICAgICAgdGV4dENvbnRlbnQgPSBlbGVtLnRleHRDb250
ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVzZXR0ZXh0Y29udGVudDEwIiwiRUxFTUVO
VCIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgbm9kZXNldHRleHRjb250ZW50MTAoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkZTc2MGYwZjBhMmI3NThlNmYyZWU4MGUz
MGM1YzlmNGE1NzQ1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50
MTAueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBb
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+
Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsi
PgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1
MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJ
U1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAg
ICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8
c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9z
cGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEg
I0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmJjMTQ3MDg4NmJmMDRlNGIwOTUyNjdmNjUzNDVlMDRiM2VhMzM2Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250
ZW50MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRj
b250ZW50MTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NDMxZjc5MjMxZjAw
YjI0YzU0ODA4YTk2OGMzOTM5ZTYzMWUyZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDExLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEiOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IERvY3VtZW50RnJhZ21lbnQg
bm9kZSBFbGVtZW50IGNoaWxkLCBhdHRlbXB0IHRvIHNldCBpdHMgY29udGVudCB0byAKLQlET0NV
TUVOVEZSQUdNRU5ULiAgUmV0cmVpdmUgdGhlIHRleHRDb250ZW50IGFuZCB2ZXJpZnkgaWYgaXQg
aXMgd2FzIHNldCB0byBET0NVTUVOVEZSQUdNRU5UCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhv
ciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1M
ZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9u
IG5vZGVzZXR0ZXh0Y29udGVudDExKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTEiKSAhPSBudWxsKSBy
ZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVsZW07
Ci0gICAgICB2YXIgZWxlbUNoaWxkOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjb21tZW50
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBwaTsKLSAg
ICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBk
b2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpwIik7Ci0gICAgICB0
eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNy
ZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNl
Y3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0
eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcu
YXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBlbGVtLnRleHRDb250ZW50ID0gIkRPQ1VNRU5URlJB
R01FTlQiOwotCi0gICAgICBlbGVtQ2hpbGQgPSBkb2NGcmFnLmxhc3RDaGlsZDsKLQotICAgICAg
dGV4dENvbnRlbnQgPSBlbGVtQ2hpbGQudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZWdldHRleHRjb250ZW50MTEiLCJET0NVTUVOVEZSQUdNRU5UIix0ZXh0Q29udGVudCk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dGV4
dGNvbnRlbnQxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0MmNiZDA0YWM5MWZkOThmNDAyMTM5NzQzMTk4NWRkZTFiODEzZmZkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS54aHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlM
RSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFs
cGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdh
bW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBl
cHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRp
ciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQ
SWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIv
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29udGVudDExLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTBmYmY0MmIyZTk2NzUw
ODNmMjE3YzE1ZmFkNzgyZGQ3ZmRkNDRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZjMzZmZTZiMTFlY2JlODFjNTYzNmRhYWVhODBi
NDU5YjcwYTg3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkg
MjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5z
dGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3Ig
SW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdo
dHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBT
b2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5
cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVS
SSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmll
ciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVy
biAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
c2V0dGV4dGNvbnRlbnQxMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCi0JCi0JVXNpbmcg
c2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUsIGF0dGVtcHQgdG8g
c2V0IGl0cyB2YWx1ZS4KLQlTaW5jZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIFJlYWRPbmx5
LCBjaGVjayBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiAgCi0JaXMgcmFpc2VkLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
dGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rlc2V0dGV4dGNvbnRlbnQxMigpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR0
ZXh0Y29udGVudDEyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9
IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgZW50UmVmLnRleHRDb250ZW50ID0gIk5BIjsK
LQotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUo
Im5vZGVzZXR0ZXh0Y29udGVudDEyIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR0ZXh0Y29udGVudDEyKCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250
ZW50MTIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0YmY5Njg3YTBlYjRk
ODczOTQyNzMzNTVmMDczNDNkMWYxYmM5MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDEyLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAot
ICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEt
c3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBi
ZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBk
ZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRp
b24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUi
PgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5z
OmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAg
ICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jv
bnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFF
TlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVs
ZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFu
IHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAx
Li0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAg
IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0g
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBo
Y19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNo
YXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXNldHRleHRjb250
ZW50MTIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBD
REFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtD
REFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRv
IGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7
IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1Q
MDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNv
bm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8v
d3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1
c2VyZGF0YTA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY4ZDdhZjJmZjk4M2UxNzMxZTA2ZGFkYjUzZjQ4MDJmZGRlMmY2ZWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4Ci1TdGF0dXMJZXJyb3IKLU1lc3Nh
Z2UJTGluZSAxMTM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5YjZmNTg2M2JmNDY3OGFlNTBhZTk1ZDg4NmQ2NmUwYzhlMzU0ZGQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4IjsKLSAgIH0K
LQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8K
LS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJl
Zm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUg
YXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAg
ZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAg
ICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5
Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0v
LwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcn
OwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVp
bGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRl
Q29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAg
IAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNo
SW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxv
YWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91
cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVz
IGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRv
IGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHNldFVzZXJEYXRhIG9uIGEgQ0RBVEFTZWN0aW9u
IGFuZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZSB0byBzZXQgdGhlaXIgCi0JVXNlckRhdGEgdG8gdGhp
cyBEb2N1bWVudCBhbmQgRG9jdW1lbnRFbGVtZW50IG5vZGUuICBWZXJpZnkgaWYgdGhlIFVzZXJE
YXRhIAotCW9iamVjdCB0aGF0IHdhcyBzZXQgZm9yIGJvdGggbm9kZXMgaXMgZGlmZmVyZW50Lgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
c2V0VXNlckRhdGEKLSovCi1mdW5jdGlvbiBub2Rlc2V0dXNlcmRhdGEwOCgpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR1c2Vy
ZGF0YTA4IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRWxl
bTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY0RhdGE7Ci0gICAgICB2YXIgZWxlbUxp
c3Q7Ci0gICAgICB2YXIgZWxlbU5hbWU7Ci0gICAgICB2YXIgdXNlckRhdGE7Ci0gICAgICB2YXIg
cmV0dXJuZWQxOwotICAgICAgdmFyIHJldHVybmVkMjsKLSAgICAgIHZhciBzdWNjZXNzOwotICAg
ICAgdmFyIHJldFVzZXJEYXRhOwotICAgICAgdmFyIG51bGxIYW5kbGVyID0gbnVsbDsKLQotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0Vs
ZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY0RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0
aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIGlmIChudWxsID09IG51bGxIYW5kbGVyKSB7Ci0g
ICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51bGwpOwotICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51bGxIYW5k
bGVyLmhhbmRsZSk7Ci0gICAgICB9Ci0gICAgICAgaWYgKG51bGwgPT0gbnVsbEhhbmRsZXIpIHsK
LSAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxlbSwgbnVsbCk7Ci0gICAg
ICB9IGVsc2UgewotICAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxlbSwg
bnVsbEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAgICByZXR1cm5lZDEgPSBlbnRSZWYu
Z2V0VXNlckRhdGEoIktleTEiKTsKLSAgICAgIHJldHVybmVkMiA9IGNEYXRhLmdldFVzZXJEYXRh
KCJLZXkyIik7Ci0gICAgICBzdWNjZXNzID0gcmV0dXJuZWQxLmlzRXF1YWxOb2RlKHJldHVybmVk
Mik7Ci0gICAgICBhc3NlcnRGYWxzZSgibm9kZXNldHVzZXJkYXRhMDgiLHN1Y2Nlc3MpOwotCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dXNlcmRhdGEwOCgpOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1
c2VyZGF0YTA4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR1c2VyZGF0YTA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjQ2NDA2
OTZlNmY5MjQzYTYwODFmNzkyMjE3OGRjMWViNmFhZmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dXNlcmRhdGEwOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR1c2Vy
ZGF0YTA4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJs
b2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEg
Q0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFb
Q0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0
byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxz
dXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVN
UDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJz
b25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1
NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDov
L3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGlj
LiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTI1YTM4MDlkNzkwMWZhMDQ0NmM3Nzc3YjRlYWFjYmQ0ZjRlZTEx
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2
Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGQxOGYyNzYxMjQzNTE0YWJhMTZmYmY0MzJmY2VjOGFmZDM3Y2QwMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29y
bGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVj
aG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBh
bmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4g
VGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vu
c2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2Fy
ZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRp
ZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAg
ICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0
ZXh0MDYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0
aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUpOwotICAgICAgIHNldEltcGxlbWVu
dGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIiwgdHJ1ZSk7Ci0KLSAgICAg
IGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwg
ImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0g
ICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwg
ZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAK
LS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8v
Ci0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0
ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUK
LS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRo
b2QgcmVwbGFjZVdob2xlVGV4dCBzdWJzdGl0dXRlcyB0aGUgYSBzcGVjaWZpZWQgdGV4dCBmb3Ig
dGhlIHRleHQgb2YgCi0JdGhlIGN1cnJlbnQgbm9kZSBhbmQgYWxsIGxvZ2ljYWxseS1hZGphY2Vu
dCB0ZXh0IG5vZGVzLiAgVGhpcyBtZXRob2QgcmFpc2VzCi0JYSBOT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlIgaWYgb25lIG9mIHRoZSBUZXh0IG5vZGVzIGJlaW5nIHJlcGxhY2VkIGlzIHJlYWRv
bmx5LgotCQotCUludm9rZSByZXBsYWNlV2hvbGVUZXh0IG9uIGFuIGV4aXN0aW5nIHRleHQgbm9k
ZSB3aXRoIG5ld2x5IGNyZWF0ZWQgdGV4dCBhbmQgRW50aXR5cmVmZXJlbmNlCi0Jbm9kZXMgKHdo
b3NlIHJlcGxhY2VtZW50IHRleHQgaXMgYSBjaGFyYWN0ZXIgZW50aXR5IHJlZmVyZW5jZSkgYXBw
ZW5kZWQgYXMgY2hpbGRyZW4gb2YgaXRzIHBhcmVudCBlbGVtZW50IG5vZGUuICAKLQlXaGVyZSB0
aGUgbm9kZXMgdG8gYmUgcmVtb3ZlZCBhcmUgcmVhZC1vbmx5IGRlc2NlbmRhbnRzIG9mIGFuIEVu
dGl0eVJlZmVyZW5jZSwgdGhlIEVudGl0eVJlZmVyZW5jZSAKLSAgICAgICAgbXVzdCBiZSByZW1v
dmVkIGluc3RlYWQgb2YgdGhlIHJlYWQtb25seSBub2Rlcy4gT25seSBpZiBhbnkgRW50aXR5UmVm
ZXJlbmNlIHRvIGJlIHJlbW92ZWQgaGFzIAotICAgICAgICBkZXNjZW5kYW50cyB0aGF0IGFyZSBu
b3QgRW50aXR5UmVmZXJlbmNlLCBUZXh0LCBvciBDREFUQVNlY3Rpb24gbm9kZXMsIHRoZSByZXBs
YWNlV2hvbGVUZXh0IAotICAgICAgICBtZXRob2QgbXVzdCBmYWlsLCByYWlzaW5nIGEgTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSLiBWZXJpZnkgdGhhdCB0aGUgbWV0aG9kIGRvZXMgbm90IHJh
aXNlCi0gICAgICAgIGFuIGV4Y2VwdGlvbiBhbmQgdmVyaWZ5IHRoZSBjb250ZW50IG9mIHRoZSBy
ZXR1cm5lZCB0ZXh0IG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGlt
YQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUt
MjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qLwotZnVuY3Rpb24gdGV4dHJl
cGxhY2V3aG9sZXRleHQwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlh
bGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDYiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAgICAgIHZhciBlbGVtZW50
U3Ryb25nOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIGVyZWZOb2RlOwotICAgICAg
dmFyIHJlcGxhY2VkVGV4dDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIG5v
ZGVWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3Ryb25nIik7Ci0g
ICAgICBlbGVtZW50U3Ryb25nID0gaXRlbUxpc3QuaXRlbSgwKTsKLSAgICAgIHRleHROb2RlID0g
ZG9jLmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAgICAgZXJlZk5vZGUgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVu
dFN0cm9uZy5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bWVudFN0cm9uZy5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICB0ZXh0Tm9kZSA9IGVsZW1l
bnRTdHJvbmcuZmlyc3RDaGlsZDsKLQotICAgICAgcmVwbGFjZWRUZXh0ID0gdGV4dE5vZGUucmVw
bGFjZVdob2xlVGV4dCgiTmV3IFRleHQgYW5kIENkYXRhIik7Ci0gICAgICBub2RlVmFsdWUgPSB0
ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygidGV4dHJlcGxhY2V3aG9s
ZXRleHQwNiIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQot
Ci0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIHRleHRyZXBsYWNld2hvbGV0ZXh0MDYoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDc5NzBiNjBiMTA5MDhhMGM3OWZkNTdjODEzOWJkOTE4YzM3MWVjMmIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRz
Ci08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51
bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rp
b24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZl
bnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRh
dmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwv
c3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4K
LSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lh
bGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA3NWVjYmQwOGU2ODZmNjlm
YWZlNGE2MzdhYzk2NTYyMGEyZjQ5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxh
Y2V3aG9sZXRleHQwNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90
ZXh0cmVwbGFjZXdob2xldGV4dDA3Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcuanMgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU2NGQzMmRkMzEzMjlkNjdhOTkxYTc5
MTQyMTAwZjAwMWYzZWIwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9s
ZXRleHQwNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
ICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LUFwcGVuZCBhbiBlbnRpdHkgcmVmZXJlbmNlIGFuZCBhIHRleHQgbm9kZSBhZnRlciB0byB0aGUg
Y29udGVudCBvZiB0aGUKLWZpcnN0IHN0cm9uZyBlbGVtZW50LiAgVGhlbiBjYWxsIHJlcGxhY2VX
aG9sZVRleHQgb24gaW5pdGlhbCBjb250ZW50Ci1vZiB0aGF0IGVsZW1lbnQuICBTaW5jZSB0aGUg
ZW50aXR5IHJlZmVyZW5jZSBkb2VzIG5vdCBjb250YWluIGFueSAKLWxvZ2ljYWxseS1hZGphY2Vu
dCB0ZXh0IGNvbnRlbnQsIG9ubHkgdGhlIGluaXRpYWwgdGV4dCBlbGVtZW50IHNob3VsZAotYmUg
cmVwbGFjZWQuIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQGF1
dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTQyNQotKi8K
LWZ1bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0ZXh0cmVwbGFjZXdob2xldGV4dDA3
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgaXRlbUxpc3Q7Ci0g
ICAgICB2YXIgZWxlbWVudE5hbWU7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgZXJl
Zk5vZGU7Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7
Ci0gICAgICB2YXIgbm9kZTsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgbm9kZVR5
cGU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgaXRlbUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0cm9uZyIpOwotICAgICAg
ZWxlbWVudE5hbWUgPSBpdGVtTGlzdC5pdGVtKDApOwotICAgICAgZXJlZk5vZGUgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICB0ZXh0Tm9kZSA9IGRvYy5jcmVhdGVU
ZXh0Tm9kZSgiTmV3IFRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtZW50TmFtZS5h
cHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVudE5hbWUu
YXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgdGV4dE5vZGUgPSBlbGVtZW50TmFtZS5maXJz
dENoaWxkOwotCi0gICAgICByZXBsYWNlZFRleHQgPSB0ZXh0Tm9kZS5yZXBsYWNlV2hvbGVUZXh0
KCJOZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAgIHRleHROb2RlID0gZWxlbWVudE5hbWUuZmly
c3RDaGlsZDsKLQotICAgICAgYXNzZXJ0U2FtZSgicmV0dmFsX3NhbWUiLHRleHROb2RlLHJlcGxh
Y2VkVGV4dCk7Ci1ub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2Vy
dEVxdWFscygibm9kZVZhbHVlU2FtZSIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsK
LSAgICAgICBub2RlID0gdGV4dE5vZGUubmV4dFNpYmxpbmc7Ci0KLSAgICAgIGFzc2VydE5vdE51
bGwoInNlY29uZENoaWxkTm90TnVsbCIsbm9kZSk7Ci1ub2RlVHlwZSA9IG5vZGUubm9kZVR5cGU7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygic2Vjb25kQ2hpbGRJc0VudFJlZiIsNSxub2RlVHlwZSk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICB0ZXh0cmVwbGFj
ZXdob2xldGV4dDA3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZDI5NzdiYTE4OGFhMWIxMzg4NjZlZGFiMzU1NWI3OTdjMjQx
NzgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9U
RVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFF
TlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwh
RU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAg
ICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5z
OnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJ
dGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVE
PgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3
dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2Nh
dGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0idGV4dHJlcGxhY2V3aG9sZXRleHQwNy5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3
aG9sZXRleHQwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0
NTFhNDY2YjY0MzFhMjRkNmI3YTQ5MzJhNmRjZDMxNDQ1ZTY0MmUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOAotU3RhdHVzCWZhaWx1cmUKLU1l
c3NhZ2UJdGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBhc3NlcnRUcnVlIGZhaWxl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBs
YWNld2hvbGV0ZXh0MDguanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4
dHJlcGxhY2V3aG9sZXRleHQwOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA4
NTRiMzBmMmZmYTc0ZDczYTcxNGFmZjdkYzdiZDMwYTA1ODljMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNiAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1BcHBlbmRzIGFuIGVudGl0eSByZWZlcmVuY2UgY29udGFpbmluZyB0
ZXh0IGFuZCBhbiBlbGVtZW50IHRvIGFuIGV4aXN0aW5nCi10ZXh0IG5vZGUsIHRoZW4gY2FsbHMg
VGV4dC5yZXBsYWNlV2hvbGVUZXh0IG9uIHRoZSBleGlzdGluZyB0ZXh0IG5vZGUuCi1BIE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUiBzaG91bGQgYmUgdGhyb3duLgotCi0qIEBhdXRob3IgQ3Vy
dCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwt
My1Db3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdob2xlVGV4dAotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD00MjUKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTQwCi0qLwotZnVuY3Rp
b24gdGV4dHJlcGxhY2V3aG9sZXRleHQwOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDgiKSAhPSBu
dWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAgICAgIHZh
ciBwOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBub2RlOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0g
bG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRF
bGVtZW50c0J5VGFnTmFtZSgicCIpOwotICAgICAgcCA9IGl0ZW1MaXN0Lml0ZW0oMCk7Ci0gICAg
ICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQyIik7Ci0gICAgICBub2Rl
ID0gcC5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgbm9kZSA9IHAuZmlyc3RDaGlsZDsKLQot
ICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBub2Rl
ID0gbm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJ5byIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4Lnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmFlOTk2OWFmOGM2ZDEwMjM0ZmEw
MDM2MmQ3ODUzZTY5N2QwZDFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdo
b2xldGV4dDA4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWwgWwotPCFFTlRJVFkgZW50MSAnZm9vJz4KLTwhRU5USVRZIGVudDIgJ2Zvbzxici8+Jz4K
LTwhRUxFTUVOVCBodG1sIChoZWFkLCBib2R5KT4KLTwhQVRUTElTVCBodG1sIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotPCFFTEVNRU5UIGhlYWQgKHRpdGxlLHNjcmlwdCopPgotPCFFTEVNRU5UIHNj
cmlwdCAoI1BDREFUQSk+Ci08IUFUVExJU1Qgc2NyaXB0IAotICAgICBzcmMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgdHlwZSBDREFUQSAjSU1QTElFRAotICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVE
PgotPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KLTwhRUxFTUVOVCBib2R5IChwKT4KLTwhQVRU
TElTVCBib2R5IG9ubG9hZCBDREFUQSAjSU1QTElFRD4KLTwhRUxFTUVOVCBwICgjUENEQVRBfGJy
KSo+Ci08IUVMRU1FTlQgYnIgRU1QVFk+Ci1dPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPgotPGhlYWQ+Ci08dGl0bGU+cmVwbGFjZVdob2xlVGV4dCBzYW1wbGU8
L3RpdGxlPgotPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nc2VsZnhodG1sLmpz
Jz48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9J1VURi04JyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
IHNyYz0ndGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyc+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08
L3NjcmlwdD48L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLTxwPmJhcjwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vu
dGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFjM2Q5Y2JkZjcwMGU2OTZiNmEw
NzQ4NTBjNjI2YzQzODYzNjc5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHkt
ZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1U
ZXN0IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIGFsd2F5cyB0cmVhdGVk
IHJlYWRvbmx5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHhtbERvYzIu
YWRvcHROb2RlKGVudGl0eVJlZmVyZW5jZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVu
Y2Uub3duZXJEb2N1bWVudCBpcyB4bWxEb2MKLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1
ZSA9ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSBpcyBu
dWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5hbWVzcGFjZUVycm9yOiBET00gRXhjZXB0aW9uIDE0LgotUEFTUyBlbnRpdHlSZWZl
cmVuY2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLnRleHRDb250ZW50ID0g
J2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA3LgotRkFJTCBlbnRpdHlSZWZlcmVuY2UudGV4dENvbnRlbnQgc2hvdWxk
IGJlID4uIFdhcyAuCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBiZSAx
LiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24g
Ny4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIGlzIGNoaWxkcmVuQmVm
b3JlRmFpbGVkQXBwZW5kCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBi
ZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmluc2VydEJlZm9yZSh0ZXh0LCBlbnRp
dHlSZWZlcmVuY2UuZmlyc3RDaGlsZCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uu
Y2hpbGROb2Rlcy5sZW5ndGggaXMgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2Vw
dGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZiMTY0MWJlZDQ0NzMw
NzBmYmMyZTlmMzQ5YzE5Y2I4MWQzZThmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVh
ZG9ubHktZXhjZXB0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlYWRvbmx5
LWV4Y2VwdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1Q
TEFURS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10
ZXN0cy9URU1QTEFURS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmVlZDkz
YTVlMDZkODg0MTI4ZGYzYjM0ZGI1NDJkODUwNzFlMzVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVy
ZW5jZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICsw
LDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9IllPVVJfSlNfRklM
RV9IRVJFIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhj
ZXB0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQt
dGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWYyNDY1N2Q4MmRiM2U4YTdmYmJlNDg3N2QzZDNkNjNiMTA5ZDQ3Ny4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9F
bnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdCB0byBtYWtlIHN1cmUg
RW50aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBhbHdheXMgdHJlYXRlZCByZWFkb25seSIpCi0KLXZh
ciB4bWxEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7Ci12YXIgeG1sRG9jMiA9IGRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZhciBlbnRpdHlSZWZlcmVuY2UgPSB4bWxEb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotCi1zaG91bGRUaHJvdygieG1sRG9jMi5hZG9w
dE5vZGUoZW50aXR5UmVmZXJlbmNlKSIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5vd25l
ckRvY3VtZW50IiwgInhtbERvYyIpCi0KLS8vIG5vZGVWYWx1ZSBpcyBkZWZpbmVkIHRvIGJlIG51
bGwgZm9yIEVudGl0eSBSZWZlcmVuY2Ugbm9kZXMsIGFuZCB0aHVzIHNob3VsZCBzaWxlbnRseSBm
YWlsIHRvIG1vZGlmeQotLy8gU3BlYyBpcyBhbWJpZ2lvdXMgYXMgdG8gaWYgd2Ugc2hvdWxkIHRo
cm93IGhlcmUgb3Igbm90LiAgSSd2ZSByZXF1ZXN0ZWQgY2xhcmlmaWNhdGlvbjoKLS8vIGh0dHA6
Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAwOEphbk1hci8wMDA5Lmh0
bWwKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlID0gJ2ZvbyciKTsKLXNo
b3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQotc2hvdWxkVGhy
b3coImVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJl
ZmVyZW5jZS5wcmVmaXgiLCAibnVsbCIpOwotCi1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNl
LnRleHRDb250ZW50ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UudGV4dENv
bnRlbnQiLCAiJz4nIik7Ci0KLXZhciBjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCA9IGVudGl0
eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3VsZEJlKCJjaGlsZHJlbkJlZm9yZUZh
aWxlZEFwcGVuZCIsICIxIik7Ci12YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJG
QUlMIik7Ci1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIik7
Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIiwgImNoaWxkcmVu
QmVmb3JlRmFpbGVkQXBwZW5kIik7Ci0KLWNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kID0gZW50
aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hvdWxkQmUoImNoaWxkcmVuQmVmb3Jl
RmFpbGVkQXBwZW5kIiwgIjEiKTsKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2UuaW5zZXJ0
QmVmb3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENoaWxkKSIpOwotc2hvdWxkQmUoImVu
dGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCIsICJjaGlsZHJlbkJlZm9yZUZhaWxlZEFw
cGVuZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFsLXZh
bHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFs
dWVzLWV4cGVjdGVkLnR4dAppbmRleCAyNmYwZWMyYTNkZWJmZTdhN2VkZWIwOGUyZDEwMWE3NDE1
ZGNkZmI1Li4xYzk4MWZiM2I1ZDg5MjdkNWE4NDMzOGYzNzEyNDUzYTYwY2U4MWYxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVk
LnR4dApAQCAtMTEzLDEyICsxMTMsNiBAQCBQQVNTIGVsZW1lbnQubmFtZXNwYWNlVVJJIGlzICdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwogUEFTUyBlbGVtZW50LnByZWZpeCBpcyAnaHRt
bCcKIFBBU1MgZWxlbWVudC5ub2RlVmFsdWUgaXMgbnVsbAogUEFTUyBlbGVtZW50LmF0dHJpYnV0
ZXMudG9TdHJpbmcoKSBpcyAnW29iamVjdCBOYW1lZE5vZGVNYXBdJwotUEFTUyBkb2N1bWVudC5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoJ2d0JykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBw
b3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZU5h
bWUgaXMgJ2d0JwotUEFTUyBlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIGlzIG51bGwKLVBBU1Mg
ZW50aXR5UmVmZXJlbmNlLm5hbWVzcGFjZVVSSSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5j
ZS5wcmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIGlzIG51bGwK
IFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5vZGVOYW1lIGlzICd4bWwtc3R5bGVzaGVldCcK
IFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLmxvY2FsTmFtZSBpcyBudWxsCiBQQVNTIHByb2Nl
c3NpbmdJbnN0cnVjdGlvbi5uYW1lc3BhY2VVUkkgaXMgbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1ZXMuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwppbmRl
eCA3MzFhODA2MzkwODY5OGI0Njk1YjI4YzM2Yjc3M2E3ZGQxYTMwMzU0Li45YjEyYTk3OTAxYzAz
OTQzMjMzMmQzM2RmY2FkYzk4MjdmYjZhYWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwpAQCAtMTU2LDE2
ICsxNTYsNiBAQCBzaG91bGRCZSgiZWxlbWVudC5wcmVmaXgiLCAiJ2h0bWwnIik7CiBzaG91bGRC
ZSgiZWxlbWVudC5ub2RlVmFsdWUiLCAibnVsbCIpOwogc2hvdWxkQmUoImVsZW1lbnQuYXR0cmli
dXRlcy50b1N0cmluZygpIiwgIidbb2JqZWN0IE5hbWVkTm9kZU1hcF0nIik7CiAKLS8vIE5vdCBw
b3NzaWJsZSB0byBjcmVhdGUgRW50aXR5IG5vZGVzIHZpYSB0aGUgRE9NLCBXZWJLaXQgZG9lc24n
dCBjcmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKLQotc2hvdWxkVGhyb3coImRvY3VtZW50LmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgnZ3QnKSIpOwotdmFyIGVudGl0eVJlZmVyZW5jZSA9IHhtbERvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5v
ZGVOYW1lIiwgIidndCciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIiwg
Im51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubmFtZXNwYWNlVVJJIiwgIm51bGwi
KTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UucHJlZml4IiwgIm51bGwiKTsKLXNob3VsZEJl
KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQogLy8gTm90IHBvc3NpYmxl
IHRvIGNyZWF0ZSBOb3RhdGlvbiBub2RlcyB2aWEgdGhlIERPTSwgV2ViS2l0IGRvZXNuJ3QgY3Jl
YXRlIHRoZW0gZnJvbSBwYXJzaW5nCiAKIHZhciBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSBkb2N1
bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3htbC1zdHlsZXNoZWV0JywgJ3R5cGU9
XCJ0ZXh0L3hzbFwiIGhyZWY9XCJtaXNzaW5nLnhzbFwiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
CmluZGV4IDc3MTNmYzljZjQ4N2Y2OTc5ODE4NzQyMmUxMjcxYWE4NjJiZTYyNTcuLjc0N2NkN2U2
MjU5Y2RkY2EwYmUyNWNlZTRiNWNjMmEwMWY3MGNmMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
CkBAIC0zMyw4ICszMyw2IEBAIFBBU1M6IGNhbkdldCgnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJl
ICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0RvY3VtZW50VHlwZScpIHNob3VsZCBiZSAn
dHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFbGVtZW50Jykgc2hvdWxkIGJlICd0cnVlJyBh
bmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0VsZW1lbnQnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4K
LVBBU1M6IGNhbkdldCgnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMu
Ci1QQVNTOiBjYW5TZXQoJ0VudGl0eVJlZmVyZW5jZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlz
LgogUEFTUzogY2FuR2V0KCdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBB
U1M6IGNhblNldCgnRXZhbEVycm9yJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBj
YW5HZXQoJ0V2ZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggZmZmNWM0
YWQwODE0YWI5YzFjYzA0NmFmZWJiMThjOWQ3OGJjNjc0MC4uNDQzMTZhYzc4ZjEzODc4MDQ5MGU0
ZTU2MTJhYjJhZDhmYjdlMDllYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbApAQCAtODQsNyArODQsNiBAQCB2YXIgd2luZG93
UmVhZFdyaXRlUHJvcGVydGllcyA9IFsKICAgICAiRG9jdW1lbnRGcmFnbWVudCIsIAogICAgICJE
b2N1bWVudFR5cGUiLCAKICAgICAiRWxlbWVudCIsIAotICAgICJFbnRpdHlSZWZlcmVuY2UiLCAK
ICAgICAiRXZhbEVycm9yIiwgCiAgICAgIkV2ZW50IiwgCiAgICAgIkhUTUxBbmNob3JFbGVtZW50
IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dp
bmRvdy1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNl
cy93aW5kb3ctcHJvcGVydGllcy5qcwppbmRleCBmOWM3MDkyOTI5Mjk4Yzc2Zjc5Y2U1ZjZhNmFl
NTJmYzljZWMwZGY1Li45ZDQzMGVjZWIyZWFjN2E1NzE4YjM3ZmQ2M2RlN2NlMjRhYmExYjNlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1w
cm9wZXJ0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMv
d2luZG93LXByb3BlcnRpZXMuanMKQEAgLTU2LDcgKzU2LDYgQEAgdmFyIHByb3BlcnR5SW5mbyA9
IFsKICAgICBbIkRvY3VtZW50RnJhZ21lbnQiLCAib2JqZWN0Il0sCiAgICAgWyJEb2N1bWVudFR5
cGUiLCAib2JqZWN0Il0sCiAgICAgWyJFbGVtZW50IiwgIm9iamVjdCJdLAotICAgIFsiRW50aXR5
UmVmZXJlbmNlIiwgIm9iamVjdCJdLAogICAgIFsiRXZlbnQiLCAib2JqZWN0Il0sCiAgICAgWyJF
dmVudEV4Y2VwdGlvbiIsICJvYmplY3QiXSwKICAgICBbIkhUTUxBbmNob3JFbGVtZW50IiwgIm9i
amVjdCJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1s
b29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCA2N2QzMDJjZWVk
NTIwNTYzZGZlMWRiZjdmNzkwMGQyMGZkODQ4OGIwLi4xMTIyMTRhNzdiZjUzZjBjMTJmZjNhYmEz
ZTcwN2VmMTMwN2U2YWI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAt
MTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1
bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9
PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydF
bGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3
aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1Q
QVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29u
c3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmpl
Y3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQn
XSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50
J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVu
dEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0
cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKaW5kZXggMzAyYTA5Yjg2YTVi
ZjJlNzk5ZDI0YzhlNjllMTMwN2UxYTRkMjZkMS4uYWJmNjdhZDJlOWFmNjE4Y2FmODU3NzcwYmEw
OTExNDRhMTcyNDRhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dApAQCAt
OTYsOCArOTYsNiBAQCBQQVNTOiBDb21tZW50IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzog
Q0RBVEFTZWN0aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogRG9jdW1lbnRUeXBlIHN1
Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
Ci1QQVNTOiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1QQVNTOiBFbnRpdHlSZWZlcmVu
Y2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gc3Vj
Y2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRG9jdW1lbnQgc3VjY2Vzc2Z1bGx5IHNoYWRv
d2VkCiBQQVNTOiBIVE1MRWxlbWVudCBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2lu
Zy5odG1sCmluZGV4IDliNDZlYWNlMDEzNzBjNTUyNjJkMGVmNjRkNjgxYWU1NmVhYmMwMmMuLmNi
NzRmYjA0YTA3MjUyZjEwYjVkYzYzZjljNjA0YjE1MTkwYzVkOWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcu
aHRtbApAQCAtMjE1LDEwICsyMTUsNiBAQAogICAgICAgICBsb2coRG9jdW1lbnRUeXBlID09IDEg
PyAiUEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRG9j
dW1lbnRUeXBlIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIE5vdGF0aW9uID0gMTsK
ICAgICAgICAgbG9nKE5vdGF0aW9uID09IDEgPyAiUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5
IHNoYWRvd2VkIiA6ICJGQUlMOiBOb3RhdGlvbiB3YXMgbm90IHNoYWRvd2VkIik7Ci0gICAgICAg
IHZhciBFbnRpdHkgPSAxOwotICAgICAgICBsb2coRW50aXR5ID09IDEgPyAiUEFTUzogRW50aXR5
IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRW50aXR5IHdhcyBub3Qgc2hhZG93ZWQi
KTsKLSAgICAgICAgdmFyIEVudGl0eVJlZmVyZW5jZSA9IDE7Ci0gICAgICAgIGxvZyhFbnRpdHlS
ZWZlcmVuY2UgPT0gMSA/ICJQQVNTOiBFbnRpdHlSZWZlcmVuY2Ugc3VjY2Vzc2Z1bGx5IHNoYWRv
d2VkIiA6ICJGQUlMOiBFbnRpdHlSZWZlcmVuY2Ugd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAg
ICB2YXIgUHJvY2Vzc2luZ0luc3RydWN0aW9uID0gMTsKICAgICAgICAgbG9nKFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiA9PSAxID8gIlBBU1M6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBzdWNjZXNzZnVs
bHkgc2hhZG93ZWQiIDogIkZBSUw6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiB3YXMgbm90IHNoYWRv
d2VkIik7CiAgICAgICAgIHZhciBIVE1MRG9jdW1lbnQgPSAxOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRleCA0YTE4YWRmN2Jh
ZjY2OWM3NjFkNTE5N2IxMzRkYTBiZmVlODcyZTg2Li4zN2MzNTQxOTM4ZjExMDdkNjZjYzkzMTUw
YzFiMTQzNjVmNWVhOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29u
c3RydWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29u
c3RydWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDYgQEAgUEFTUyBUcnlBbGxvY2F0ZSgn
Q2hhcmFjdGVyRGF0YScpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdDREFUQVNl
Y3Rpb24nKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRG9jdW1lbnRUeXBlJykg
aXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0VsZW1lbnQnKSBpcyAnZXhjZXB0aW9u
JwotUEFTUyBUcnlBbGxvY2F0ZSgnRW50aXR5UmVmZXJlbmNlJykgaXMgJ2V4Y2VwdGlvbicKIFBB
U1MgVHJ5QWxsb2NhdGUoJ0V2ZW50VGFyZ2V0JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxs
b2NhdGUoJ0hUTUxEb2N1bWVudCcpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdO
b2RlJykgaXMgJ2V4Y2VwdGlvbicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Rv
bS1jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3Rv
cnMuaHRtbAppbmRleCBmMjQ5OWRjMDQ2NTM3NzM3NmZhODg2YjJjYmIzYmQwYTlkODZlNDIxLi43
OTUzYjYxYTI1ZDIxMDczN2JiY2Y2YTQwODE2ZTFhZmM1MGNkYmUwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCkBAIC0xOCw3ICsxOCw2IEBAIHZhciBvYmpl
Y3RzX2V4Y2VwdGlvbiA9IFsKICAgICAnQ0RBVEFTZWN0aW9uJywKICAgICAnRG9jdW1lbnRUeXBl
JywKICAgICAnRWxlbWVudCcsCi0gICAgJ0VudGl0eVJlZmVyZW5jZScsCiAgICAgJ0V2ZW50VGFy
Z2V0JywKICAgICAnSFRNTERvY3VtZW50JywKICAgICAnTm9kZScsCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAppbmRleCA3ODhjYWJlNWQw
M2I1MWZmYmM0MGZmMzYzY2FkNmNhMDZhYjg1ZDQ5Li42OTJiYTcwNWZlZDgzYjI5NWEyNzA4ZDVl
NzM2MDZiMGU2YTAxYTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVy
LWNsYXNzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXIt
Y2xhc3Nlcy1leHBlY3RlZC50eHQKQEAgLTQ3LDkgKzQ3LDYgQEAgUEFTUyBqc1dyYXBwZXJDbGFz
cyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKS5jb25zdHJ1Y3RvcikgaXMgJ0NEQVRB
U2VjdGkKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4
JywgJ3gnLCAneCcpKSBpcyAnRWxlbWVudCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLl9fcHJvdG9fXykgaXMgJ0VsZW1lbnRQ
cm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnRO
UygneCcsICd4JywgJ3gnKS5jb25zdHJ1Y3RvcikgaXMgJ0VsZW1lbnRDb25zdHJ1Y3RvcicKLVBB
U1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkpIGlz
ICdFbnRpdHlSZWZlcmVuY2UnCi1QQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgpLl9fcHJvdG9fXykgaXMgJ0VudGl0eVJlZmVyZW5jZVByb3RvdHlw
ZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCkuY29uc3RydWN0b3IpIGlzICdFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3RvcicKIFBBU1MganNX
cmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpIGlz
ICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50
LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLl9fcHJvdG9fXykgaXMgJ1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvblByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuY29uc3RydWN0b3IpIGlzICdQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb25Db25zdHJ1Y3RvcicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2Vz
Lmh0bWwKaW5kZXggOGJlOGZlM2JmMGMyM2MwMzRhMDc3ODIzNTUwZDY3M2RmZTEwZWRjNy4uZmY4
MWQ4ZjkwNTA0NDBkYzFlMzFkMzA4MzM1NWM2NjMxMjljOTYzMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKQEAgLTkwLDcgKzkwLDYgQEAgZnVuY3Rpb24gcnVu
VGVzdCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9jdW1lbnQiKTsKICAgICB0ZXN0KCJ4
bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJDREFUQVNlY3Rpb24iKTsKICAgICB0
ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykiLCAiRWxlbWVu
dCIpOwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpIiwgIkVu
dGl0eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpOwogCiAgICAgZGVidWcoJycp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKaW5kZXggNjNlMjQyYTJmYmUz
MmI5ZDZiODNkNThjZWFkNTY0OWI0OTY3NDFiYi4uZWE5NjIyMzFhNmY1OTY3YmU0ZWE4MzUyZTcy
YTJmYmI2ZmZmZGI1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CkBA
IC0yMzUsNyArMjM1LDYgQEAgUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRG9jdW1lbnRGcmFn
bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2lu
ZG93LkRvY3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdl
dCgndGFyZ2V0V2luZG93LkVsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNT
OiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHknKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMu
Ci1QQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQgYmUg
J2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FdmFsRXJyb3InKSBz
aG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FdmVu
dCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93
LkhUTUxBbmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXQuaHRtbAppbmRleCAzODAwYTBiNWU4MTI0Yjk0NWQ4MTAzOTBjM2U5YjVmOTBlNTc4Mzhk
Li5jY2U1ZjdhM2YyMzQxY2FiN2ZmMDljYmU3NWIzYjJlNjlkZWE2Y2Y5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXQuaHRtbApAQCAtMjAsNyArMjAsNiBAQAogICAgICAgICAgICAgIkRvY3VtZW50VHlwZSIs
IAogICAgICAgICAgICAgIkVsZW1lbnQiLCAKICAgICAgICAgICAgICJFbnRpdHkiLCAKLSAgICAg
ICAgICAgICJFbnRpdHlSZWZlcmVuY2UiLCAKICAgICAgICAgICAgICJFdmFsRXJyb3IiLCAKICAg
ICAgICAgICAgICJFdmVudCIsIAogICAgICAgICAgICAgIkhUTUxBbmNob3JFbGVtZW50IiwgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yLWV4cGVjdGVkLnR4dAppbmRleCBlNDU4NWFiZDUxNjA1YzFlMmQ5ZThiOWYyY2Q4OGFi
Y2Q1Y2FkMmUwLi4xZWE1YmRjNmQ5NDk3NDZlMWU5YzI1MzU2NjQ2NWM0MGIzOWI4NWM5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVz
Y3JpcHRvci1leHBlY3RlZC50eHQKQEAgLTc4LDcgKzc4LDYgQEAgUEFTUzogY2FuR2V0RGVzY3Jp
cHRvcih0YXJnZXRXaW5kb3csICdEb2N1bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4K
IFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRG9jdW1lbnRGcmFnbWVudCcp
IHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0
V2luZG93LCAnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzog
Y2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxz
ZScgYW5kIGlzLgotUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbnRpdHlS
ZWZlcmVuY2UnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlw
dG9yKHRhcmdldFdpbmRvdywgJ0V2YWxFcnJvcicpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4K
IFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRXZlbnQnKSBzaG91bGQgYmUg
J2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0hU
TUxBbmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbAppbmRleCBk
ZWEwMTdkNjc4YTE1ZmRkMTNjNzdhOTJhZTUxNWM3MDhlN2JkM2FjLi4zMDY2YjNhMmFmY2I1ZDVk
MjM5MWZjZjQ5OWQxZTM0OTQ2NTE1NDEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbApAQCAtMTksNyArMTksNiBAQAogICAg
ICAgICAgICAgIkRvY3VtZW50RnJhZ21lbnQiLCAKICAgICAgICAgICAgICJEb2N1bWVudFR5cGUi
LCAKICAgICAgICAgICAgICJFbGVtZW50IiwgCi0gICAgICAgICAgICAiRW50aXR5UmVmZXJlbmNl
IiwgCiAgICAgICAgICAgICAiRXZhbEVycm9yIiwgCiAgICAgICAgICAgICAiRXZlbnQiLCAKICAg
ICAgICAgICAgICJIVE1MQW5jaG9yRWxlbWVudCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1l
eHBlY3RlZC50eHQKaW5kZXggNDdmZDU0MzlkMzdkNzZkMTA2NTQ5YTcxOWJiNWFjOTIyOTIzY2Jl
Yy4uYzRhMDNiNjQ1ZGQ1OTJjM2E4MjBmYTdiMWRhNmJlMjllNTkwOTZhYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZy
YW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0CkBAIC0xNCw4ICsxNCw2IEBAIEFMRVJUOiBQQVNT
OiB3aW5kb3cuRE9NRXhjZXB0aW9uIHNob3VsZCBiZSAnW29iamVjdCBET01FeGNlcHRpb25Db25z
dHJ1Y3Rvcl0nIGFuCiBBTEVSVDogUEFTUzogd2luZG93LkRPTUltcGxlbWVudGF0aW9uIHNob3Vs
ZCBiZSAnW29iamVjdCBET01JbXBsZW1lbnRhdGlvbkNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxF
UlQ6IFBBU1M6IHdpbmRvdy5ET01QYXJzZXIgc2hvdWxkIGJlICdbb2JqZWN0IERPTVBhcnNlckNv
bnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FbGVtZW50IHNob3VsZCBi
ZSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBhbmQgaXMuCi1BTEVSVDogUEFTUzogd2lu
ZG93LkVudGl0eSBzaG91bGQgYmUgJ3VuZGVmaW5lZCcgYW5kIGlzLgotQUxFUlQ6IFBBU1M6IHdp
bmRvdy5FbnRpdHlSZWZlcmVuY2Ugc2hvdWxkIGJlICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNv
bnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FdmFsRXJyb3Igc2hvdWxk
IGJlICdmdW5jdGlvbiBFdmFsRXJyb3IoKSB7ICAgIFtuYXRpdmUgY29kZV19JyBhbmQgaXMuCiBB
TEVSVDogUEFTUzogd2luZG93LkV2ZW50IHNob3VsZCBiZSAnW29iamVjdCBFdmVudENvbnN0cnVj
dG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCBzaG91
bGQgYmUgJ1tvYmplY3QgSFRNTEFuY2hvckVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLXB1dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtcHV0Lmh0bWwKaW5kZXggYWMwMjRmODU1YWE4NjZlNjcxN2I5N2ZmYjFiNzQ5NTZi
M2M1ZDczYy4uYTJiNmI4NzBhMThjNzM5MjU0OGMxZWE5ZDg1OTIyNzgyOWNiNmUwMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
cHV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtcHV0Lmh0bWwKQEAgLTUwLDcgKzUwLDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJET01JbXBsZW1lbnRhdGlvbiIp
OwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgIkRPTVBhcnNlciIpOwog
ICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgIkVsZW1lbnQiKTsKLSAgICBz
ZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJFbnRpdHlSZWZlcmVuY2UiKTsKICAg
ICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJFdmFsRXJyb3IiKTsKICAgICBz
ZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJFdmVudCIpOwogICAgIHNldEZvcmJp
ZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgIkhUTUxBbmNob3JFbGVtZW50Iik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFt
ZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwKaW5kZXgg
MzZmODI2YmQ5MDVmMDU3NzgwYjhiNjM4Njk2Zjc5MzdlNWM0Yzg4Zi4uZDk3YzJjOWJjZjRkYjdh
NGU5YjRjZDhkZWU2OWMyMTM5MGZhNWYwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3Nz
LWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRtbApAQCAtNTksNyArNTksNiBAQAogICAgICAg
ICB2YXIgRE9NUGFyc2VyT2xkID0gd2luZG93LkRPTVBhcnNlcjsKICAgICAgICAgdmFyIEVsZW1l
bnRPbGQgPSB3aW5kb3cuRWxlbWVudDsKICAgICAgICAgdmFyIEVudGl0eU9sZCA9IHdpbmRvdy5F
bnRpdHk7Ci0gICAgICAgIHZhciBFbnRpdHlSZWZlcmVuY2VPbGQgPSB3aW5kb3cuRW50aXR5UmVm
ZXJlbmNlOwogICAgICAgICB2YXIgRXZhbEVycm9yT2xkID0gd2luZG93LkV2YWxFcnJvcjsKICAg
ICAgICAgdmFyIEV2ZW50T2xkID0gd2luZG93LkV2ZW50OwogICAgICAgICB2YXIgSFRNTEFuY2hv
ckVsZW1lbnRPbGQgPSB3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQ7CkBAIC0yNjIsNyArMjYxLDYg
QEAKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRE9NUGFyc2VyIiwgIkRPTVBhcnNlck9s
ZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbGVtZW50IiwgIkVsZW1lbnRPbGQi
KTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRW50aXR5IiwgIkVudGl0eU9sZCIpOwot
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbnRpdHlSZWZlcmVuY2UiLCAiRW50aXR5UmVm
ZXJlbmNlT2xkIik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkV2YWxFcnJvciIsICJF
dmFsRXJyb3JPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZlbnQiLCAiRXZl
bnRPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQi
LCAiSFRNTEFuY2hvckVsZW1lbnRPbGQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNh
bC1leHBlY3RlZC50eHQKaW5kZXggOWJlYTJhM2Q2NjY2ZDBkOTM2YzEwY2ZiMTE2OTFhMTk2YjRh
ZGI4My4uOWJhYzg3NmI0MDlhNDc4ZGRlZmViYjA5NWY2NjQwZDQ0MmRjMDNiNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9y
aWNhbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKQEAgLTksNyArOSw3IEBAIFBB
U1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01Mb2NhdG9yCiBQ
QVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NT2JqZWN0IAog
UEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTVVzZXJEYXRh
IAogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eSAK
LUZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlSZWZl
cmVuY2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXSIK
K1BBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlSZWZl
cmVuY2UgCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRXZl
bnRFeGNlcHRpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVk
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0
b3JdIgogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5hbWVM
aXN0IAogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5vdGF0
aW9uIApAQCAtMTksOSArMTksNyBAQCBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3Qg
YmUgcmVtb3ZlZDogUmFuZ2VFeGNlcHRpb24KIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMg
bXVzdCBiZSByZW1vdmVkOiBjcmVhdGVDREFUQVNlY3Rpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gY3JlYXRlQ0RBVEFTZWN0aW9uKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iCi1GQUlM
IEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogY3JlYXRlRW50aXR5UmVm
ZXJlbmNlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQg
Z290IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIGNyZWF0ZUVudGl0eVJlZmVyZW5jZSgp
IHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IgorUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBt
dXN0IGJlIHJlbW92ZWQ6IGNyZWF0ZUVudGl0eVJlZmVyZW5jZSAKIEZBSUwgSGlzdG9yaWNhbCBE
T00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxFbmNvZGluZyBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBudWxsCiBGQUlM
IEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogeG1sU3RhbmRhbG9uZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoYm9v
bGVhbikgZmFsc2UKIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVk
OiB4bWxWZXJzaW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5l
ZCBidXQgZ290IChvYmplY3QpIG51bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXgg
MmQ4ZGM4ZTE5ODU5NzQ1OGM5MzE0ZGVkYmVlMjdjZjM2MWQ2ZTM4ZC4uNzk4OTU4MmFiM2ViOGFj
MDUwYTNkOGE3NWRhZWM0MjY4YmRlZDdmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQK
QEAgLTMxMywxMSArMzEzLDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVy
dHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRy
dWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlS
ZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0
eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UK
LVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZl
cmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50
JykudmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50
JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYmFhYjQ5ODIwZjRkYTlmMzM5MzBi
MmI3OTk0MmU5MzMxMDVlOGY3MC4uNDU3ZTk5MDE0ZDQzODkzMmNhNDYzMjc4NGM5YjZjYTU3ODlk
MmUyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dApAQCAtMzEzLDExICszMTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Q
cm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUg
aXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vu
dGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMg
dHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9y
RXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9y
RXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRl
bmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCBlZGI3NTUwNzYy
OWM3YzBkYzYyMDdiZjA0OTQ2MGE0ZDU3ODk0YTgyLi44MmIwMjRhODY2YTQwZDMyOTFjNjVjNzNh
ZmNmOWJjMjQzYTk3NDVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXBy
ZWNlZGVuY2UtZXhwZWN0ZWQudHh0CkBAIC0xMTQsOCArMTE0LDYgQEAgUEFTUyB3aW5bJ0RvY3Vt
ZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQog
UEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVj
dG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29u
c3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1l
bnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAn
W29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydF
bnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0n
IGlzIHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3Jd
JyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9y
XScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50RXhjZXB0aW9uJ10gPT0gJ1tvYmplY3QgRXZlbnRF
eGNlcHRpb25Db25zdHJ1Y3Rvcl0nIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBhMGM2ZmY0Zjg3OWM1OTljNjAwN2U2N2U2
OTViMjFhNTYyZTI2OTlmLi5lNjgxYTQ2YTRmOGU2ZWQ1ZTI0Yjc3YTE3OTMwYWM1MTVlOGU2NGQ1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CkBAIC0zMTgsMTEgKzMxOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0
cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVy
dHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVu
dCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVu
dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3Mv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXgg
YzE1YjY2NWEwZmZhYjY3NmMwZmU4ZDk3NWY4MzhiNzdkODk4OWJjOC4uZTE4NDI5NWMwZWMxM2M4
MDNkM2JmNTk1MDQxNzhhY2Y1M2NhNmVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEg
KzMwOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vs
ZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJyku
dmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlz
IGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50
aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51
bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlz
IEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blBy
b3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAwZmJjNGIwMjhkOTJl
NmFkZmE2NjM3NmU4ZWUyYmY2N2VjNGZjZjMuLjk0ZDc4MTI2MjkwZDBiM2YwMzdhNDk2NWZhNWRm
N2RhM2RjMjg3NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0
ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4LDYgQEAgUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Q
cm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1lcmFi
bGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlS
ZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5o
YXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlz
IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBl
Y3RlZC50eHQKaW5kZXggOTNkYWRjMDMxZjYyZjM2NjNhODk2NjAzYTNkYWIxOGVlMjY0MzJhNC4u
MTYyZjQ4ZmM1NmI5ODc5YjNhOWIxMzZiOGI3MWIyZWY5YTg3YTJlZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNl
ZGVuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0LDgg
KzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5
cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29i
amVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50
J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0Vs
ZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdp
blsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0
b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50
aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAn
W29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0g
J1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudEV4Y2Vw
dGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXgg
MDQ0ZjE0ZjBlNTI5NmU2NzVkOGI0M2M4YjQzZDgwMmQyNjk3NzExOC4uYzFhNDIyZjBhMTU1Nzcx
OGMxYTdlZDlmMTA0Zjg4Y2Q5NTBhNTYxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICszMDgsNiBAQCBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3Bl
cnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vs
ZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVy
ZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093
blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApp
bmRleCAwODNhMDcxZjZjZTZlYjVlZDIxY2QwNDYwMWEzYWJlNzYxOTMxZmJmLi42ZWJhYWFmNmNj
Y2EwMTBhOTJmZjcwN2YxOTI0MWRjODU1N2NlZjhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0yMzgsMTEgKzIzOCw2IEBAIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3du
UHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJh
YmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5
UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxz
ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJl
ZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50Jyku
aGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261515</attachid>
            <date>2015-09-18 13:11:26 -0700</date>
            <delta_ts>2015-09-18 13:37:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150918131112.patch</filename>
            <type>text/plain</type>
            <size>446311</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMjVmMWQ5MGYzN2Zm
Y2E3YjE2NjZmNmUxNGQ5YzViMTc5ZGY1My4uZjVhZDM1ZDRiYWY3OWEwNmRkMGU5NGIyZTk5OGUz
OWU0NDQ3NjhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEyMSBAQAogMjAxNS0wOS0xOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKKzIwMTUtMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKwogICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIEVudGl0eSBOb2RlIHR5cGUKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTIzOQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggOGU2ODI3Njg2YWI4NGE3ODBiZWUwMzA3N2Q1OGU1MTcwNzc3NDM2ZS4uODVkZWJm
MDkwYmYwYzBkODkwMGU5OTkwY2VhODAxYzVlZmYwNmNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDE5IEBACiAyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAg
ICAgICAgRHJvcCBzdXBwb3J0IGZvciBsZWdhY3kgRW50aXR5UmVmZXJlbmNlIERPTSBOb2RlIHR5
cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTM0
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3Ag
aGFuZGxpbmcgRW50aXR5UmVmZXJlbmNlIE5vZGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tOgorICAgICAgICAoV2ViS2l0
OjpXS0RPTU5vZGVDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0Fzc2lzdGFibGVFbGVtZW50
KToKKworMjAxNS0wOS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAg
ICAgIERyb3Agc3VwcG9ydCBmb3IgRW50aXR5IE5vZGUgdHlwZQogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MjM5CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLmNwcAppbmRleCBkM2ViNTE3MzFlMDYwMDJlMTM0MzhkYWNiZjU3ZWE0N2FkZGM0MzFjLi4z
NDNhODAxMjVmNDJmOGQ5ODI4NzBjMzdiNDUyNDE0YmY4OGY1Yzg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCkBAIC0xNDksNyArMTQ5LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5j
cHAiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDU1MuY3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudC5j
cHAiCi0jaW5jbHVkZSAiSlNFbnRpdHlSZWZlcmVuY2UuY3BwIgogI2luY2x1ZGUgIkpTRXJyb3JF
dmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEV4Y2Vw
dGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCAwOGM0NDk2NjhhYTI4ZDYwZTU1M2Y5NWUyNjIyZmYwMjA1MWY2YjUwLi4wNzdk
NzQ2MTI2NmY4OWM3ZDY0MTJiOTcxMDFhZDNhYTcyYmY0MzY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE4MzIsMjAgKzE4MzIsNiBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAi
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk4NTks
NyArMTk4NDUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRE9NVVJMLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNET01XaW5kb3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0
dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQo
UGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJy
b3JFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0V2ZW50RXhjZXB0aW9uLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOTc4
N2JjODA1YjNiMTkxYzA0OTE5MzJjZTQ3ZjY1N2RkOTAwOWIzNy4uOGJlZTJhZjkyMTg3YmI2NjQw
Yjc0MzAzNWFiMDFjYWU3OGUyNGRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNTI1Nyw5ICs1MjU3LDYg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vs
ZW1lbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAiPgogICAgICAgPEZpbHRlcj5E
ZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTI2NDYsOSArMTI2
NDMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRWxlbWVudC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJj
ZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vycm9yRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPkRl
cml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzkwZDE1MTU2ZWJl
NDYxNGE0OGUzZTI5OTAxYTY3OGVkOGU1ZDc3Zi4uM2JjNTAxMzM2ZTM5NjhlODBhOWQwY2FkNDk2
MGY4ZjAzODgyMzlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzU4Nyw4ICszNTg3LDYgQEAKIAkJOTNGOUI2NTgwQkEwRjM1
RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNjU1MEJBMEYzNUUwMDg1NDA2
NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggKi87IH07CiAJCTkzRjlCNkUwMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2REUwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVu
dC5jcHAgKi87IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRGMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKLQkJOTNGOUI3NzQwQkE1RkREQzAw
ODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0
eVJlZmVyZW5jZS5jcHAgKi87IH07Ci0JCTkzRjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0Vu
dGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi87
IH07CiAJCTkzRjlCN0EwMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc5RTBCQTYw
MzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovOyB9OwogCQk5M0Y5QjdBMTBCQTYw
MzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRB
U2VjdGlvbi5oICovOyB9OwogCQk5M0ZEQUZDQTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5z
ZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwOTU5LDggKzEw
OTU3LDYgQEAKIAkJOTNGOUI2NTUwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVt
ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTENh
bnZhc0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5
QjZERTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29tbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudGl0eVJlZmVyZW5j
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjlCNzczMEJBNUZEREMwMDg1
NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0VudGl0eVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDREFUQVNlY3Rpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RjBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNl
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDREFUQVNlY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREFGQzkwQjExMzA3NDAwRTI3NDZG
IC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MDA0Nyw4ICsyMDA0Myw2IEBACiAJCQkJQkM2NDY0OTYxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9N
U3RyaW5nTWFwLmggKi8sCiAJCQkJNjVERjMxRTUwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVu
dC5jcHAgKi8sCiAJCQkJNjVERjMxRTYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5oICov
LAotCQkJCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAg
Ki8sCi0JCQkJOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmgg
Ki8sCiAJCQkJRkU4MERBNUYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwICov
LAogCQkJCUZFODBEQTYwMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggKi8sCiAJ
CQkJRkU4MERBNjEwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uY3BwICovLApAQCAt
MjU1NzksNyArMjU1NzMsNiBAQAogCQkJCUZENzg2OEJBMTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUZBMDlEMUND
NjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFERUM3OEY4MThF
RTUzMDgwMDEzMTVDMiAvKiBKU0VsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAotCQkJCTkz
RjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkVDRjdBREQxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEU4Mzc4RTA5Rjg1RDRGMDBCODVBRTQgLyogSlNFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTEzOSw3ICsyOTEzMiw2IEBACiAJCQkJRkQ3ODY4Qjkx
MzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk2NURGMzFGOTA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDMkVENTU1MEM2QjlCRDMwMDkyMEJGRiAvKiBKU0VsZW1lbnRDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGOUI3NzQwQkE1RkREQzAwODU0MDY0IC8qIEpT
RW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFQ0Y3QURDMTAxNjJCMzgw
MDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjNENDYxNDgx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0RTgzNzg0MDlGODVEMUMwMEI4NUFFNCAvKiBKU0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0
ZS5jcHAKaW5kZXggNTljZjY4YzEyOTBhN2FiMDI2ZTMxZTMyNjFiMDY4YTQzZDM2NjA5My4uZTNi
OTcxNjYzYmNhYmY4N2M1NDU1ODM5NTM4MTI4ZTkwMGIzOGYwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCkBAIC05Myw4
ICs5Myw2IEBAIFdlYktpdERPTU5vZGUqIHdyYXAoTm9kZSogbm9kZSkKICAgICAgICAgcmV0dXJu
IFdFQktJVF9ET01fTk9ERSh3cmFwVGV4dChkb3duY2FzdDxUZXh0Pihub2RlKSkpOwogICAgIGNh
c2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9O
T0RFKHdyYXBDREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpKTsK
LSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgcmV0dXJuIFdF
QktJVF9ET01fTk9ERSh3cmFwRW50aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0PEVudGl0eVJlZmVy
ZW5jZSo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05P
REU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcFByb2Nlc3NpbmdJbnN0cnVj
dGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2RlKSkpOwogICAgIGNh
c2UgTm9kZTo6Q09NTUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAKaW5kZXggYWVhYzA4N2Q5ZGNmYTUxMTA3OTNkMmZmMmM5YWZjMjNlMTJiODE1
Mi4uYjI3YTk4MWM3ZDA5ZmE1NWNiZTI5NjliYjczYjIxZDQxNDQ4ODQ0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0zMyw3ICszMyw2IEBACiAj
aW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgog
I2luY2x1ZGUgIkVudGl0eS5oIgotI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MQXVkaW9FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKQEAgLTUxLDcgKzUwLDYgQEAKICNpbmNsdWRlICJK
U0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAi
SlNEb2N1bWVudFR5cGUuaCIKLSNpbmNsdWRlICJKU0VudGl0eVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnQuaCIKICNpbmNs
dWRlICJKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKQEAgLTIwOSw5ICsyMDcsNiBAQCBz
dGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGNyZWF0ZVdyYXBwZXJJbmxpbmUoRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iagogI2VuZGlmCiAgICAgICAgICAgICAgICAgd3JhcHBlciA9
IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIERvY3VtZW50RnJhZ21lbnQsIG5vZGUp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5D
RV9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxP
YmplY3QsIEVudGl0eVJlZmVyZW5jZSwgbm9kZSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xv
YmFsT2JqZWN0LCBOb2RlLCBub2RlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Lm1tCmluZGV4IDhlMWZiZTFmY2Q3YzM3YzQ2ZTkwYzMzY2MwNDQyMzRhMWFlNDg3ODIuLmU4Mzk2
NWRiYzM0ZjIxYzNjZTMxMTYwZDQ3NWE2ZDI4MmNhM2ZiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NLm1tCkBAIC0zMTEsOCArMzExLDYgQEAgQ2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6
Tm9kZSogaW1wbCkKICAgICAgICAgICAgIHJldHVybiBbRE9NVGV4dCBjbGFzc107CiAgICAgICAg
IGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICAgICAgcmV0
dXJuIFtET01DREFUQVNlY3Rpb24gY2xhc3NdOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgICAgIHJldHVybiBbRE9NRW50aXR5UmVm
ZXJlbmNlIGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9DRVNTSU5HX0lO
U1RSVUNUSU9OX05PREU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTVByb2Nlc3NpbmdJbnN0cnVj
dGlvbiBjbGFzc107CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q09NTUVOVF9OT0RFOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuY3BwCmluZGV4IGFjN2I2NmY5OTcwNWQ4OTllZWNlM2MyODk0Zjg5ZTFmODA5ZDE1
ZjguLjk2ZDdlZWQzYjBmZjIxNTU5YWRjMzM1ZTIwYTRjNDU5ZGYyMWJkYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0
ci5jcHAKQEAgLTE0OCwxMyArMTQ4LDcgQEAgUmVmPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIC8vIERPTSBT
ZWN0aW9uIDEuMS4xCiBib29sIEF0dHI6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkg
Y29uc3QKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBURVhUX05PREU6Ci0g
ICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQor
ICAgIHJldHVybiB0eXBlID09IFRFWFRfTk9ERTsKIH0KIAogdm9pZCBBdHRyOjpjaGlsZHJlbkNo
YW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0F0dHIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKaW5kZXggMTI0YzZkN2EyYWEyODY4
MzBmY2JhMjk2Mjg4ODhiNzIwMjI5OTI4Ni4uZjZmMzYyMDc3MTdhMzVjMmIyNDNmYWFhOTY1ZGMz
YWI3MmYyNmJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzOwogCi0vLyBBdHRyIGNhbiBoYXZlIFRleHQgYW5kIEVudGl0eVJlZmVyZW5jZSBjaGls
ZHJlbgorLy8gQXR0ciBjYW4gaGF2ZSBUZXh0IGNoaWxkcmVuCiAvLyB0aGVyZWZvcmUgaXQgaGFz
IHRvIGJlIGEgZnVsbGJsb3duIE5vZGUuIFRoZSBwbGFuCiAvLyBpcyB0byBkeW5hbWljYWxseSBh
bGxvY2F0ZSBhIHRleHRjaGlsZCBhbmQgc3RvcmUgdGhlCiAvLyByZXN1bHRpbmcgbm9kZXZhbHVl
IGluIHRoZSBhdHRyaWJ1dGUgdXBvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmlu
ZGV4IGM5NjM0YjBjZTEwMDM0ZTkyYjVjNTE2ZTEzMmQwYzQzNDMxN2E1MGQuLjNmNGZlMGY4MDM3
NGM4MzcwMDk5MGVkNGI0NWE0YTlkMjE5NDliYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5jcHAKQEAgLTE4MCw3ICsxODAsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUg
Y2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogewog
ICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUuCiAgICAgaWYgKChu
ZXdDaGlsZC5pc0VsZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQuaXNUZXh0Tm9kZSgpKSAmJiBuZXdQ
YXJlbnQuaXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVh
ZE9ubHlOb2RlKCkpOwogICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5v
ZGUoKSk7CiAgICAgICAgIEFTU0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdD
aGlsZCkpOwogICAgICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdD
aGlsZCwgbmV3UGFyZW50KSkKQEAgLTE5Myw4ICsxOTIsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2Vw
dGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUm
IG5ldwogICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJu
IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQuaXNSZWFkT25seU5v
ZGUoKSkKLSAgICAgICAgcmV0dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICBp
ZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkK
ICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIApAQCAtMjA5LDcgKzIwNiw2
IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5l
ck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0Fj
Y2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5v
ZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlQoIW5ld1BhcmVu
dC5pc1JlYWRPbmx5Tm9kZSgpKTsKICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlw
ZU5vZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0No
aWxkKSk7CiAgICAgaWYgKG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7CkBAIC01MjEs
MTIgKzUxNyw2IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSYgb2xkQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMgPSAwOwogCi0gICAgLy8gTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgdGhpcyBub2RlIGlzIHJlYWRvbmx5LgotICAg
IGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgLy8gTk9UX0ZP
VU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZS4K
ICAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAgICAgZWMgPSBO
T1RfRk9VTkRfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjE3OTNjMjJmMDUzZmI3
YjA2NTY4MTdjZmM3ZGFiMzE4NGFlOGJkNC4uNmNmMGVhZTQwNjQwZDBmMTFkNjE0NDQ3OTEwNDE3
NjU3NDhhZDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC05MDksMTcgKzkwOSwxMCBA
QCBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBEb2N1bWVudDo6Y3JlYXRlUHJvY2Vzc2lu
Z0luc3RydWN0aW9uKGNvbnN0IFN0cmluZwogICAgIHJldHVybiBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b246OmNyZWF0ZSgqdGhpcywgdGFyZ2V0LCBkYXRhKTsKIH0KIAotUmVmUHRyPEVudGl0eVJlZmVy
ZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmIG5hbWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNy
ZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICBpZiAoIWlzVmFsaWROYW1lKG5hbWUpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9DSEFS
QUNURVJfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgaWYgKGlzSFRN
TERvY3VtZW50KCkpIHsKLSAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0
ZSgqdGhpcywgbmFtZSk7CisgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAogUmVmPFRleHQ+IERvY3VtZW50OjpjcmVhdGVFZGl0aW5nVGV4dE5vZGUo
Y29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtOTQ0LDcgKzkzNyw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1
bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wgZGVlcCwgRXhjZXB0aW9u
Q29kZSYKICAgICBjYXNlIEVMRU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBj
YXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBjYXNlIENPTU1FTlRf
Tk9ERToKICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC05NzQsMTEgKzk2Niw2
IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291
cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
Ci0gICAgaWYgKHNvdXJjZS0+aXNSZWFkT25seU5vZGUoKSkgewotICAgICAgICBlYyA9IE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
CiAgICAgRXZlbnRRdWV1ZVNjb3BlIHNjb3BlOwogCiAgICAgc3dpdGNoIChzb3VyY2UtPm5vZGVU
eXBlKCkpIHsKQEAgLTE3MTAsNTIgKzE2OTcsNTIgQEAgUmVmPFJhbmdlPiBEb2N1bWVudDo6Y3Jl
YXRlUmFuZ2UoKQogICAgIHJldHVybiBSYW5nZTo6Y3JlYXRlKCp0aGlzKTsKIH0KIAotUmVmUHRy
PE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9v
bCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2Rl
SXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwg
d2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGVjKTsKK30KKworUmVmUHRyPE5vZGVJdGVy
YXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIE5vZGVJdGVyYXRvcjo6Y3Jl
YXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzKTsKKyAgICByZXR1cm4gTm9kZUl0ZXJhdG9yOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hv
dywgV1RGOjptb3ZlKGZpbHRlcikpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVu
dDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0
cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1
cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
LCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRv
U2hvdywgbnVsbHB0ciwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6
Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywg
RXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRl
Tm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVy
biBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZmFsc2UsIGVj
KTsKKyAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIDB4RkZGRkZGRkYsIG51bGxw
dHIsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJ
dGVyYXRvcihOb2RlKiByb290LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2Vy
PiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdo
YXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCAweEZGRkZGRkZG
LCBudWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3Qs
IHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBlYyk7CiB9CiAKLVJlZlB0cjxUcmVlV2Fs
a2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRp
dHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1
bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0
VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7Ci19Ci0K
LVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwg
d2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIFRy
ZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSk7CiB9
CiAKIFJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiBy
b290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIG51bGxwdHIsIGZhbHNl
LCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgbnVs
bHB0ciwgZWMpOwogfQogCiBSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVX
YWxrZXIoTm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0
ZVRyZWVXYWxrZXIocm9vdCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICBy
ZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBlYyk7CiB9
CiAKIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKQpAQCAtMzM0OCw3
ICszMzM1LDYgQEAgYm9vbCBEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBl
KSBjb25zdAogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRf
RlJBR01FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX05PREU6Ci0gICAgY2FzZSBFTlRJVFlf
UkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2FzZSBYUEFUSF9OQU1F
U1BBQ0VfTk9ERToKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzM3Niw3ICszMzYyLDYgQEAg
Ym9vbCBEb2N1bWVudDo6Y2FuQWNjZXB0Q2hpbGQoY29uc3QgTm9kZSYgbmV3Q2hpbGQsIGNvbnN0
IE5vZGUqIHJlZkNoaWxkLCBBY2NlcHQKICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgIGNh
c2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICBjYXNl
IEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIFhQ
QVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IDc0Y2VhYTk2YmM5MmY0NzgxN2NlYmI1ZjNjZjkzOTBhMTlhNzdkNjkuLjJjYWE4
YjAwY2IyNGQ5MjVkMTE5ODgxNjk5ZDY4MDc4N2M5OTZhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC01MzUsMTIgKzUzNSwxMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8
UmFuZ2U+IGNyZWF0ZVJhbmdlKCk7CiAKLSAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVO
b2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8
Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2ws
IEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRyPE5vZGVJ
dGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hh
dFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQ
dHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPE5vZGVJdGVyYXRv
cj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAg
IFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVh
dGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRy
PE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGlu
Z3MuCiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0
cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDgxYjEwYWU2MDk5NTJlZjQwNjU4NGQwNzc2
NTY2NGU2NzAxMWQ1MTQuLmJhOWVjMzM2MDAyNWZhMWIwNzIyZDNmY2VkZDZmOWM1MmYxYTRlNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMzksNyArMzksMTAgQEAKICAgICBbT2JqQ0xl
Z2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gUHJvY2Vz
c2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihbRGVmYXVsdD1VbmRl
ZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBkYXRhKTsKICAgICBbTmV3
T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEF0dHIgY3JlYXRlQXR0cmlidXRlKFtEZWZhdWx0PVVu
ZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIFtOZXdPYmplY3QsIFJhaXNl
c0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVs
dD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKworI2lmIGRlZmluZWQoTEFO
R1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVsdD1V
bmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyNlbmRpZgogCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICBbSW1w
bGVtZW50ZWRBcz1nZXRFbGVtZW50c0J5VGFnTmFtZUZvck9iakNdIE5vZGVMaXN0IGdldEVsZW1l
bnRzQnlUYWdOYW1lKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHRhZ25h
bWUpOwpAQCAtOTIsMTQgKzk1LDIzIEBACiAKICAgICAvLyBET00gTGV2ZWwgMiBUcmFudmVyc2Fs
IGFuZCBSYW5nZSAoRG9jdW1lbnRUcmF2ZXJzYWwgaW50ZXJmYWNlKQogCi0gICAgW09iakNMZWdh
Y3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVy
YXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAorI2lmIGRlZmluZWQoTEFOR1VBR0Vf
T0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgW09iakNMZWdhY3lVbm5h
bWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSBOb2RlSXRlcmF0b3IgY3JlYXRlTm9kZUl0
ZXJhdG9yKE5vZGUgcm9vdCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93ID0gMHhGRkZGRkZGRiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyLAog
ICAgICAgICBvcHRpb25hbCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOwotICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBU
cmVlV2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSByb290LAorICAgIFtPYmpDTGVnYWN5VW5u
YW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUgcm9vdCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
ID0gMHhGRkZGRkZGRiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyLAogICAg
ICAgICBvcHRpb25hbCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworI2Vsc2UKKyAg
ICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRl
cmF0b3IoTm9kZSByb290LAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3cgPSAweEZGRkZGRkZGLAorICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIpOwor
ICAgIFtSYWlzZXNFeGNlcHRpb24sIE5ld09iamVjdF0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUgcm9vdCwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
ID0gMHhGRkZGRkZGRiwKKyAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyKTsKKyNl
bmRpZgogCiAgICAgLy8gRE9NIExldmVsIDIgQWJzdHJhY3QgVmlld3MgKERvY3VtZW50VmlldyBp
bnRlcmZhY2UpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCBm
OWIzOGEwYmQyOGU4ZTNjNjA5MzRhZmYxYTYwMDU5MjcwOTAzZmVjLi5hNjcwMDJjNGJmOTg3NDRh
Mjk1M2Y0OWUyNmU2MWJhMGNhZDM3MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJh
Z21lbnQuY3BwCkBAIC02MCw3ICs2MCw2IEBAIGJvb2wgRG9jdW1lbnRGcmFnbWVudDo6Y2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgICAgICBjYXNlIENPTU1FTlRfTk9E
RToKICAgICAgICAgY2FzZSBURVhUX05PREU6CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9O
T0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDhiZTMzNzdjODEwMDMyZmFiOGJlN2FiNDM2YjJkMjU0
ODllNzMwZjEuLmY1MzMxYjkwYjViMjdjZTk1YmY3ZTU0MmIzOTVhMzY5NmNkZTk1ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTE3NTEsNyArMTc1MSw2IEBAIGJvb2wgRWxlbWVudDo6Y2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09NTUVOVF9OT0RF
OgogICAgIGNhc2UgUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgIGNhc2UgQ0RBVEFf
U0VDVElPTl9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VudGl0eVJlZmVyZW5jZS5jcHAKaW5kZXggN2U5MWE0NjJkYTgyMDlkOTIyYzQ1ZGM4NGM0MWEw
ODU1YWQ2YmUxYS4uZTU4MjRmMTA4YmI2ZjU0M2I1YTA3NjdhZmUxZmE4NGEyZDQ4MWRjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKQEAgLTI1LDMwICsyNSw5IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIEVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVm
ZXJlbmNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKQoraW5s
aW5lIEVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJikKICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQpCi0gICAgLCBtX2Vu
dGl0eU5hbWUoZW50aXR5TmFtZSkKIHsKIH0KIAotUmVmPEVudGl0eVJlZmVyZW5jZT4gRW50aXR5
UmVmZXJlbmNlOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGVudGl0
eU5hbWUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW50aXR5UmVmZXJlbmNlKGRvY3Vt
ZW50LCBlbnRpdHlOYW1lKSk7Ci19Ci0KLVN0cmluZyBFbnRpdHlSZWZlcmVuY2U6Om5vZGVOYW1l
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbnRpdHlOYW1lOwotfQotCi1Ob2RlOjpOb2RlVHlw
ZSBFbnRpdHlSZWZlcmVuY2U6Om5vZGVUeXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRU5USVRZ
X1JFRkVSRU5DRV9OT0RFOwotfQotCi1SZWY8Tm9kZT4gRW50aXR5UmVmZXJlbmNlOjpjbG9uZU5v
ZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCi17
Ci0gICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgbV9lbnRpdHlOYW1lKTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZl
cmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaAppbmRleCA4NmRm
ZWIzOTgyNWIzNDUwZTc1MzU5MjUwNjg1MTEwYjNhZjBjYThmLi4xOGMyZWMxYWZjZTU3MGU4MGU4
NjVhMDg0NWJhYmQ4ODY2Zjk2MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50
aXR5UmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5o
CkBAIC0yNiwxOCArMjYsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVudGl0
eVJlZmVyZW5jZSBmaW5hbCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPEVudGl0eVJlZmVyZW5jZT4gY3JlYXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiBlbnRpdHlOYW1lKTsKLQorY2xhc3MgRW50aXR5UmVmZXJlbmNlIDogcHVibGljIENvbnRhaW5l
ck5vZGUgewogcHJpdmF0ZToKICAgICBFbnRpdHlSZWZlcmVuY2UoRG9jdW1lbnQmLCBjb25zdCBT
dHJpbmcmIGVudGl0eU5hbWUpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBD
bG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKLQotICAgIFN0cmluZyBtX2VudGl0eU5hbWU7CiB9
OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5
UmVmZXJlbmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCmlu
ZGV4IDZkMDUzNWY5YmMxZGFhNzkxNzgzMWVmZGJlNmFiZDA3YWU5YjdkYmEuLjI3MzFkN2E2NjA5
NjM1YmQ2YzE2ZTZkMmM2NmU2MDdlYmI4YzRjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuaWRsCkBAIC0xNyw4ICsxNywxMiBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCiAgKi8KIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdV
QUdFX09CSkVDVElWRV9DCisKIFsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBKU0dlbmVy
YXRlVG9KU09iamVjdAogXSBpbnRlcmZhY2UgRW50aXR5UmVmZXJlbmNlIDogTm9kZSB7CiB9Owog
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA0MzYyZDY1NmRjNDdmZDY0MzM1YjQ2ODYxNGJl
NzM2NTg4MTMwMmJhLi5kZWYyNGNlNjcwOTU1NjY0YmNiYTEzNTA0NzE2ZmM0MTdjYWY2MzM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCkBAIC0xMDMsNyArMTAzLDYgQEAgdm9pZCBOb2RlOjpkdW1wU3RhdGlz
dGljcygpCiAgICAgc2l6ZV90IHRleHROb2RlcyA9IDA7CiAgICAgc2l6ZV90IGNkYXRhTm9kZXMg
PSAwOwogICAgIHNpemVfdCBjb21tZW50Tm9kZXMgPSAwOwotICAgIHNpemVfdCBlbnRpdHlSZWZl
cmVuY2VOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGVudGl0eU5vZGVzID0gMDsKICAgICBzaXplX3Qg
cGlOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGRvY3VtZW50Tm9kZXMgPSAwOwpAQCAtMTY4LDEwICsx
NjcsNiBAQCB2b2lkIE5vZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICAgICAgICAgICAgICArK2Nv
bW1lbnROb2RlczsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOiB7Ci0gICAgICAgICAgICAgICAgKytl
bnRpdHlSZWZlcmVuY2VOb2RlczsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGNhc2UgRU5USVRZX05PREU6IHsKICAgICAgICAgICAgICAgICArK2Vu
dGl0eU5vZGVzOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjExLDcgKzIwNiw2IEBAIHZv
aWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgIHByaW50ZigiICBOdW1iZXIgb2YgVGV4dCBu
b2RlczogJXp1XG4iLCB0ZXh0Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgQ0RBVEFT
ZWN0aW9uIG5vZGVzOiAlenVcbiIsIGNkYXRhTm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIg
b2YgQ29tbWVudCBub2RlczogJXp1XG4iLCBjb21tZW50Tm9kZXMpOwotICAgIHByaW50ZigiICBO
dW1iZXIgb2YgRW50aXR5UmVmZXJlbmNlIG5vZGVzOiAlenVcbiIsIGVudGl0eVJlZmVyZW5jZU5v
ZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIEVudGl0eSBub2RlczogJXp1XG4iLCBlbnRp
dHlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24g
bm9kZXM6ICV6dVxuIiwgcGlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBEb2N1bWVu
dCBub2RlczogJXp1XG4iLCBkb2N1bWVudE5vZGVzKTsKQEAgLTM4NCwxNCArMzc4LDggQEAgU3Ry
aW5nIE5vZGU6Om5vZGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12
b2lkIE5vZGU6OnNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmIC8qbm9kZVZhbHVlKi8sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQordm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiAvKm5v
ZGVWYWx1ZSovLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlI6IFJhaXNlZCB3aGVuIHRoZSBub2RlIGlzIHJlYWRvbmx5Ci0gICAgaWYgKGlzUmVh
ZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBCeSBkZWZhdWx0LCBzZXR0aW5nIG5v
ZGVWYWx1ZSBoYXMgbm8gZWZmZWN0LgogfQogCkBAIC04OTAsMTEgKzg3OCw2IEBAIHZvaWQgTm9k
ZTo6Y2hlY2tTZXRQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzUmVhZE9ubHlOb2Rl
KCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBGSVhNRTogUmFpc2UgTkFNRVNQQUNFX0VSUiBpZiBw
cmVmaXggaXMgbWFsZm9ybWVkIHBlciB0aGUgTmFtZXNwYWNlcyBpbiBYTUwgc3BlY2lmaWNhdGlv
bi4KIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbm9kZU5hbWVzcGFjZVVSSSA9IG5hbWVzcGFj
ZVVSSSgpOwpAQCAtMTQyMiw3ICsxNDA1LDYgQEAgc3RhdGljIHZvaWQgYXBwZW5kVGV4dENvbnRl
bnQoY29uc3QgTm9kZSogbm9kZSwgYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5lcywgYm9vbCYKICAg
ICAgICAgfQogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9O
T0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgaXNOdWxsU3RyaW5nID0gZmFsc2U7
CiAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CkBAIC0xNDU4LDcgKzE0NDAsNiBAQCB2b2lk
IE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgRUxFTUVOVF9OT0RFOgogICAg
ICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERToKICAgICAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOiB7CiAgICAgICAgICAg
ICBSZWY8Q29udGFpbmVyTm9kZT4gY29udGFpbmVyKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0
aGlzKSk7CiAgICAgICAgICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRh
aW5lcik7CkBAIC0xNDc4LDcgKzE0NTksNiBAQCB2b2lkIE5vZGU6OnNldFRleHRDb250ZW50KGNv
bnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIEVsZW1lbnQqIE5vZGU6OmFu
Y2VzdG9yRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgLy8gSW4gdGhlb3J5LCB0aGVyZSBjYW4gYmUg
RW50aXR5UmVmZXJlbmNlIG5vZGVzIGJldHdlZW4gZWxlbWVudHMsIGJ1dCB0aGlzIGlzIGN1cnJl
bnRseSBub3Qgc3VwcG9ydGVkLgogICAgIGZvciAoQ29udGFpbmVyTm9kZSogYW5jZXN0b3IgPSBw
YXJlbnROb2RlKCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnROb2RlKCkp
IHsKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCphbmNlc3RvcikpCiAgICAgICAgICAgICByZXR1
cm4gZG93bmNhc3Q8RWxlbWVudD4oYW5jZXN0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMDRlMzhkMjVi
NDNiNDBmYmQ1YjM2NGNmNDMzZTc3YzNjMTA3MzVjNC4uYTJmYzQzODg5NDBlMjJjZjc1YmY1OTVi
NzQ4OWRkODM5MmQ1MDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0xMjUsNyArMTI1LDYgQEAgcHVibGlj
OgogICAgICAgICBBVFRSSUJVVEVfTk9ERSA9IDIsCiAgICAgICAgIFRFWFRfTk9ERSA9IDMsCiAg
ICAgICAgIENEQVRBX1NFQ1RJT05fTk9ERSA9IDQsCi0gICAgICAgIEVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERSA9IDUsCiAgICAgICAgIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSA9IDcsCiAgICAg
ICAgIENPTU1FTlRfTk9ERSA9IDgsCiAgICAgICAgIERPQ1VNRU5UX05PREUgPSA5LApAQCAtMTM0
LDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgWFBBVEhfTkFNRVNQQUNFX05PREUgPSAxMywK
ICAgICB9OwogICAgIGVudW0gRGVwcmVjYXRlZE5vZGVUeXBlIHsKKyAgICAgICAgRU5USVRZX1JF
RkVSRU5DRV9OT0RFID0gNSwKICAgICAgICAgRU5USVRZX05PREUgPSA2LAogICAgICAgICBOT1RB
VElPTl9OT0RFID0gMTIsCiAgICAgfTsKQEAgLTQxNyw3ICs0MTcsNiBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0luU2hhZG93VHJlZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNJblNoYWRvd1Ry
ZWVGbGFnKTsgfQogICAgIGJvb2wgaXNJblRyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZs
YWcoc3RhdGljX2Nhc3Q8Tm9kZUZsYWdzPihJbkRvY3VtZW50RmxhZyB8IElzSW5TaGFkb3dUcmVl
RmxhZykpOyB9CiAKLSAgICBib29sIGlzUmVhZE9ubHlOb2RlKCkgY29uc3QgeyByZXR1cm4gbm9k
ZVR5cGUoKSA9PSBFTlRJVFlfUkVGRVJFTkNFX05PREU7IH0KICAgICBib29sIGlzRG9jdW1lbnRU
eXBlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RF
OyB9CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdW5zaWduZWQgY291bnRDaGlsZE5vZGVzKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IDQ4YTBhMTkyYTdiZWUwY2ZmMjA5ZDVl
YTRkODljOWMzMWEwNGM3MDkuLmRhOWQwMjNiMjVlOGY5ZjJiZjU3YWM4ODEwMzhkNzI1ZDVlMWM2
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC03Niw4ICs3Niw4IEBAIGJv
b2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRvUHJldmlvdXMoTm9kZSogcm9vdCkK
ICAgICByZXR1cm4gbm9kZTsKIH0KIAotTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9k
ZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5v
ZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9k
ZUZpbHRlcj4mJiBmaWx0ZXIpCisgICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0
VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkKICAgICAsIG1fcmVmZXJlbmNlTm9kZShyb290KCks
IHRydWUpCiB7CiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmF0dGFjaE5vZGVJdGVyYXRvcih0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAppbmRleCA5NzE5Mjc0YTNkYTFiOTc1NDA2YWE3
MWNjNWU5ZWFlNWYzYzdkMzM1Li40ZjE1MDdkZTAzYWMzMDNlNWYxODBiMzMxMTI2ODA3NGM2OTgw
ODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCkBAIC0zNyw5ICszNyw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE5vZGVJdGVyYXRvciA6IHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPE5vZGVJdGVyYXRvcj4sIHB1YmxpYyBOb2RlSXRl
cmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUl0ZXJhdG9y
PiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJl
bmNlcykKKyAgICAgICAgc3RhdGljIFJlZjxOb2RlSXRlcmF0b3I+IGNyZWF0ZShQYXNzUmVmUHRy
PE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmls
dGVyPiYmIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwg
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkp
OwogICAgICAgICB9CiAgICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIApAQCAtNTQsNyArNTQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9k
ZSYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9k
ZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wg
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIE5vZGVJdGVyYXRvcihQYXNzUmVmUHRy
PE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsK
IAogICAgICAgICBzdHJ1Y3QgTm9kZVBvaW50ZXIgewogICAgICAgICAgICAgUmVmUHRyPE5vZGU+
IG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCmluZGV4IDEyMDI1ZGU2YjhiNDk0
NzNlZmQ3Zjc4NDAxMWY0MWY3NjEzMDdiNjcuLjIzMTEyZDk5NDNmNTkzMzdhZmYxNWRhY2M3YzFl
ZTViN2E1Zjc5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3Iu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCkBAIC0yNiw3ICsy
Niw5IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBOb2RlRmlsdGVyIGZpbHRlcjsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAm
JiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4
cGFuZEVudGl0eVJlZmVyZW5jZXM7CisjZW5kaWYKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZSByZWZlcmVuY2VOb2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBvaW50ZXJC
ZWZvcmVSZWZlcmVuY2VOb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA1MmUyZjE5MzIxNjdh
ZmM4NWE1MTlkZTUwOWZkNTFiYWYxNjA5NDkzLi44YzFlMmIwZDgyNDA3Y2RlMjMwNmFmZjM2YjE1
YWE0OTE3NGEzNGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTU3Miw3ICs1NzIsNiBAQCBzdGF0
aWMgaW5saW5lIHVuc2lnbmVkIGxlbmd0aE9mQ29udGVudHNJbk5vZGUoTm9kZSogbm9kZSkKICAg
ICAgICAgcmV0dXJuIGRvd25jYXN0PENoYXJhY3RlckRhdGE+KCpub2RlKS5sZW5ndGgoKTsKICAg
ICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RF
OgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6
RE9DVU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICBj
YXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC03MzMsNyArNzMyLDYgQEAgUmVm
UHRyPE5vZGU+IFJhbmdlOjpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBl
IGFjdGlvbiwgUGFzc1JlZlB0cjwKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2RlOjpFTEVN
RU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAg
ICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVO
VF9GUkFHTUVOVF9OT0RFOgpAQCAtODU2LDEzICs4NTQsNiBAQCB2b2lkIFJhbmdlOjppbnNlcnRO
b2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6
IFJhaXNlZCBpZiBhbiBhbmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVyIGJvdW5kYXJ5LXBvaW50
IG9mCi0gICAgLy8gdGhlIFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBpZiAoY29udGFpbmVkQnlS
ZWFkT25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBS
YWlzZWQgaWYgdGhlIGNvbnRhaW5lciBvZiB0aGUgc3RhcnQgb2YgdGhlIFJhbmdlIGlzIG9mIGEg
dHlwZSB0aGF0CiAgICAgLy8gZG9lcyBub3QgYWxsb3cgY2hpbGRyZW4gb2YgdGhlIHR5cGUgb2Yg
bmV3Tm9kZSBvciBpZiBuZXdOb2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBjb250YWluZXIuCiAK
QEAgLTEwMjIsNyArMTAxMyw2IEBAIE5vZGUqIFJhbmdlOjpjaGVja05vZGVXT2Zmc2V0KE5vZGUq
IG4sIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5v
ZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
Tk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9k
ZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVT
UEFDRV9OT0RFOiB7CiAgICAgICAgICAgICBpZiAoIW9mZnNldCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKQEAgLTEwNTIsNyArMTA0Miw2IEBAIHZvaWQgUmFuZ2U6OmNoZWNrTm9k
ZUJBKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6
OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAg
ICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElU
WV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNU
SU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5v
ZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTA3Miw3ICsxMDYxLDYgQEAgdm9pZCBSYW5n
ZTo6Y2hlY2tOb2RlQkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAg
IGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZ
UEVfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2Ug
Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJ
TkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAg
ICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTQ5LDcgKzExMzcsNiBA
QCB2b2lkIFJhbmdlOjpzZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAg
ICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpF
TEVNRU5UX05PREU6Ci0gICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9E
RToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgog
ICAgICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6
OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTE2NSw3ICsxMTUyLDYgQEAgdm9pZCBSYW5nZTo6
c2VsZWN0Tm9kZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2Fz
ZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9O
T0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2Rl
OjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19J
TlNUUlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAg
Y2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyMDQsNyArMTE5MCw2IEBAIHZv
aWQgUmFuZ2U6OnNlbGVjdE5vZGVDb250ZW50cyhOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAg
ICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9k
ZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNF
X05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9E
RToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBO
b2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyNDMsMjAgKzEyMjgsMTIgQEAgdm9pZCBS
YW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJlbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToK
ICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxF
TUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAg
ICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNh
c2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9O
T0RFOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVyIG9mIGVpdGhlciBi
b3VuZGFyeS1wb2ludCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9ubHkuCi0gICAgaWYg
KGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIFJhaXNlIGEgSElF
UkFSQ0hZX1JFUVVFU1RfRVJSIGlmIHN0YXJ0Q29udGFpbmVyKCkgZG9lc24ndCBhY2NlcHQgY2hp
bGRyZW4gbGlrZSBuZXdQYXJlbnQuCiAgICAgTm9kZSogcGFyZW50T2ZOZXdQYXJlbnQgPSAmc3Rh
cnRDb250YWluZXIoKTsKIApAQCAtMTMzMCwzNiArMTMwNywxNiBAQCB2b2lkIFJhbmdlOjpjaGVj
a0RlbGV0ZUV4dHJhY3QoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IGlmICghY29tbW9uQW5jZXN0b3JDb250YWluZXIoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKGFjdGlvbiAhPSBFeHRyYWN0KQorICAgICAgICByZXR1cm47CisKICAgICBOb2RlKiBwYXN0
TGFzdCA9IHBhc3RMYXN0Tm9kZSgpOwogICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Tm9kZSgpOyBu
ICE9IHBhc3RMYXN0OyBuID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbikpIHsKLSAgICAgICAgaWYg
KG4tPmlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKGFjdGlvbiA9PSBFeHRyYWN0ICYmIG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6RE9DVU1FTlRf
VFlQRV9OT0RFKSB7CisgICAgICAgIGlmIChuLT5pc0RvY3VtZW50VHlwZU5vZGUoKSkgewogICAg
ICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAoY29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0g
ICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotfQotCi1ib29sIFJhbmdlOjpjb250YWluZWRCeVJlYWRPbmx5KCkgY29uc3QKLXsK
LSAgICBmb3IgKE5vZGUqIG4gPSAmc3RhcnRDb250YWluZXIoKTsgbjsgbiA9IG4tPnBhcmVudE5v
ZGUoKSkgewotICAgICAgICBpZiAobi0+aXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KLSAgICBmb3IgKE5vZGUqIG4gPSAmZW5kQ29udGFpbmVyKCk7IG47
IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwogfQog
CiBOb2RlKiBSYW5nZTo6Zmlyc3ROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggYzhmMjk5
M2FkZDBkMTU5ZmFjNTJiZGFjN2YxY2M5MzBiZGU1ZjZlZS4uNGMxMTE2MjBhNzJkNzE3ODU4MjU1
Y2Q5ZTAzNTFlMzRlZWJlMjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTE2MSw3ICsxNjEsNiBAQCBw
cml2YXRlOgogCiAgICAgTm9kZSogY2hlY2tOb2RlV09mZnNldChOb2RlKiwgaW50IG9mZnNldCwg
RXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tOb2RlQkEoTm9kZSosIEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSBjb25zdDsK
IAogICAgIGVudW0gQWN0aW9uVHlwZSB7IERlbGV0ZSwgRXh0cmFjdCwgQ2xvbmUgfTsKICAgICB2
b2lkIGNoZWNrRGVsZXRlRXh0cmFjdChBY3Rpb25UeXBlLCBFeGNlcHRpb25Db2RlJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggYjdmZDk3MjdmZmU3YzlmNTBmNjI4ODlhNTBiODJm
NzEwNGZiZmIzOS4uYjRkZmUxMDZiM2FjMTY5NDYzOTk0NmI4NmY1MTk2YTIxNzJkMGFiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMTAwLDcgKzEwMCw2IEBAIGJvb2wgU2hhZG93
Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09N
TUVOVF9OT0RFOgogICAgIGNhc2UgVEVYVF9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9O
T0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJz
YWwuY3BwCmluZGV4IDc0YTkyOGY3Y2MwMjliNmYzM2NmZGNlNTFhMWYyYTNhMzFmZWRiNTIuLjNj
NGE5NTViMTExMDZjZGEyMjI4NWE5ZjUyNzE3MDdiMWQ5Yzc3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2
ZXJzYWwuY3BwCkBAIC0zMCwxOCArMzAsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1O
b2RlSXRlcmF0b3JCYXNlOjpOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5v
ZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZp
bHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yQmFzZTo6Tm9k
ZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdo
YXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIG5vZGVGaWx0ZXIpCiAgICAgOiBtX3Jvb3Qo
cm9vdE5vZGUpCiAgICAgLCBtX3doYXRUb1Nob3cod2hhdFRvU2hvdykKICAgICAsIG1fZmlsdGVy
KFdURjo6bW92ZShub2RlRmlsdGVyKSkKLSAgICAsIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlcyhl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKQogewogfQogCiBzaG9ydCBOb2RlSXRlcmF0b3JCYXNlOjph
Y2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IFRvIGhhbmRsZSBY
TUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBjaGVjayBtX2V4cGFuZEVudGl0eVJlZmVyZW5j
ZXMuCi0KICAgICAvLyBUaGUgYml0IHR3aWRkbGluZyBoZXJlIGlzIGRvbmUgdG8gbWFwIERPTSBu
b2RlIHR5cGVzLCB3aGljaCBhcmUgZ2l2ZW4gYXMgaW50ZWdlcnMgZnJvbQogICAgIC8vIDEgdGhy
b3VnaCAxNCwgdG8gd2hhdFRvU2hvdyBiaXQgbWFza3MuCiAgICAgaWYgKCEoKCgxIDw8IChub2Rl
LT5ub2RlVHlwZSgpIC0gMSkpICYgbV93aGF0VG9TaG93KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJhdmVyc2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgK
aW5kZXggZWQ2ZThkZGJkMGMyNjYxNWUzMzdhMmU0MmM5YjlkOTM1OGY4ZmRkYS4uZmZiZDU0OWIx
ZGU4NDg2MDQzZWU0ZDBiNDIwYTdkZGNhNzQ4ZmE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyYXZlcnNhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaApA
QCAtMzgsMTcgKzM4LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9kZSogcm9v
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdC5nZXQoKTsgfQogICAgICAgICB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3coKSBjb25zdCB7IHJldHVybiBtX3doYXRUb1Nob3c7IH0KICAgICAgICAgTm9k
ZUZpbHRlciogZmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXIuZ2V0KCk7IH0KLSAgICAg
ICAgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbmRF
bnRpdHlSZWZlcmVuY2VzOyB9CisgICAgICAgIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIE5vZGVJ
dGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBS
ZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAg
ICAgTm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRU
b1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShO
b2RlKikgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290
OwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fd2hhdFRvU2hvdzsKICAgICAgICAgUmVmUHRyPE5v
ZGVGaWx0ZXI+IG1fZmlsdGVyOwotICAgICAgICBib29sIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNl
czsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtl
ci5jcHAKaW5kZXggYWQwYWNlMTk5YjdkYTY5ZWVjYjIwNDNhMjhjOWVmNDRmYzA2M2Q0Ni4uODc3
NDgyYWZmNDdhM2M1NDM0YWY3NTMyZTZkYzA1M2QxNTEzY2QxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmNwcApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRy
ZWVXYWxrZXI6OlRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5k
RW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRU
b1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorVHJlZVdh
bGtlcjo6VHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKKyAgICA6IE5vZGVJdGVy
YXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpKQogICAgICwg
bV9jdXJyZW50KHJvb3QoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCmluZGV4IGJmNjli
ZGVjZTA5OWJjZDE0ZGJhZmQ1OGYwMTdjZmJkODdiNTE1NjMuLjIyOGYyM2Q0NzQ2YTIxNTliYjUw
YmY2YWE2Mjc4OGI3MzM2NGZiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaApAQCAtMzcsOSAr
MzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUcmVlV2Fsa2VyIDogcHVi
bGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8VHJlZVdhbGtlcj4sIHB1Ymxp
YyBOb2RlSXRlcmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8VHJl
ZVdhbGtlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXMpCisgICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRlKFBhc3NS
ZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5v
ZGVGaWx0ZXI+JiYgZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUcmVlV2Fsa2VyKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVy
KSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVHJlZVdhbGtlcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikp
KTsKICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICBOb2Rl
KiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQpAQCAtNTQs
NyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUqIG5leHROb2RlKCk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVu
c2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5k
RW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIFRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAg
IAogICAgICAgICBOb2RlKiBzZXRDdXJyZW50KFBhc3NSZWZQdHI8Tm9kZT4pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVdhbGtlci5pZGwKaW5kZXggNDgwOWVlM2Q0ZjFkMWZkNDA4NWUxYTExOTczYThkZjQw
MjBlNDcxNS4uYWQ1Y2I1ZDY0MDMxMGY4YzAzODk2MWY1MTMyZDViZGRkMjM2NmM3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlV2Fsa2VyLmlkbApAQCAtMjYsNyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBOb2RlIHJvb3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAg
ICAgIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVD
VElWRV9DCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJl
bmNlczsKKyNlbmRpZgogICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2Rl
IGN1cnJlbnROb2RlOwogCiAgICAgTm9kZSBwYXJlbnROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IDgzNDU1NzIwNDk2YTBkMTBkZDA2
ZmMwZWE0ZWViZjQzOGNiNGVjMjYuLjcxMmFiZmFmOGNlY2NjOGYyNzc2ZWE1MDU4NmRjM2EwMTBh
Y2Y1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3Bw
CkBAIC01NzMsNyArNTczLDYgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRN
YXJrdXAoU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBjb25zdCBOb2RlJiBub2QKICAgICAgICAgYXBw
ZW5kQ0RBVEFTZWN0aW9uKHJlc3VsdCwgZG93bmNhc3Q8Q0RBVEFTZWN0aW9uPihub2RlKS5kYXRh
KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAg
IGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6WFBBVEhf
TkFNRVNQQUNFX05PREU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKaW5kZXggNmY2NjRkODQwMWZmNzE3MDUyNjg2
MDNlMDQxZWJmNzdiNThmM2M0NC4uYmVhZGI0ZGYyMGZlOGU0NDBhMjUzNGMyMTk0Y2M4ODdhNjQ3
NjY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKQEAgLTcxLDcgKzcxLDYgQEAgYm9vbCBp
c1ZhbGlkQ29udGV4dE5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZF
UkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBOb2Rl
OjpURVhUX05PREU6CiAgICAgICAgICAgICByZXR1cm4gIShub2RlLT5wYXJlbnROb2RlKCkgJiYg
bm9kZS0+cGFyZW50Tm9kZSgpLT5pc0F0dHJpYnV0ZU5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5h
bHMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01JbnRlcm5hbHMubW0KaW5kZXggZTVjNmYwMmZjOGRjODExMDg4ODNlYWI3NTAyYzUyMzg4
OGZlN2VlMy4uZDU3ZGZjZDNlYmEwZDI3NTQ2OTUxZmVmNGU0ODA0ZGJhMjI3ZTg3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
RE9NSW50ZXJuYWxzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5tbQpAQCAtNzYsNyArNzYsNiBAQCBzdGF0aWMg
Q2xhc3MgV0tET01Ob2RlQ2xhc3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKICAgICAgICAgcmV0dXJu
IFtXS0RPTVRleHQgY2xhc3NdOwogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6QVRUUklCVVRFX05P
REU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBXZWJDb3Jl
OjpOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpET0NVTUVOVF9UWVBF
X05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KaW5kZXggODcxMDVhOGI2Y2Y2ZGE5OTkwMWMxMWQ3YWJhMDRhZmVkMmVmODNk
MS4uODYzYTg1NGU5NmU0ZmIyNWM0ZjQwOGE0NTZmMjFjZmI4OTllNGIxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAt
MjMyNCwxMSArMjMyNCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBc3Npc3RhYmxlRWxlbWVu
dChFbGVtZW50JiBub2RlKQogICAgIGlmIChpczxIVE1MU2VsZWN0RWxlbWVudD4obm9kZSkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChpczxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2Rl
KSkKLSAgICAgICAgcmV0dXJuICFkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKS5p
c1JlYWRPbmx5Tm9kZSgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoaXM8SFRNTElu
cHV0RWxlbWVudD4obm9kZSkpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVt
ZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obm9kZSk7CiAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIGxhdW5kcnkgbGlzdCBvZiB0eXBlcyBpcyBub3QgYSBnb29kIHdheSB0byBmYWN0b3Ig
dGhpcy4gTmVlZCBhIHN1aXRhYmxlIGZ1bmN0aW9uIG9uIEhUTUxJbnB1dEVsZW1lbnQgaXRzZWxm
LgotICAgICAgICByZXR1cm4gIWlucHV0RWxlbWVudC5pc1JlYWRPbmx5Tm9kZSgpICYmIChpbnB1
dEVsZW1lbnQuaXNUZXh0RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlRmllbGQoKSB8fCBp
bnB1dEVsZW1lbnQuaXNEYXRlVGltZUxvY2FsRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNNb250
aEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzVGltZUZpZWxkKCkpOworICAgICAgICByZXR1cm4g
aW5wdXRFbGVtZW50LmlzVGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZUZpZWxkKCkg
fHwgaW5wdXRFbGVtZW50LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50Lmlz
TW9udGhGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpOwogICAgIH0KICAgICBy
ZXR1cm4gbm9kZS5pc0NvbnRlbnRFZGl0YWJsZSgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM4MWUwZDE5MzA1NmE3
NmI0OWQxNjA4Y2ZhZjcxZWIyOTllYjAyODMuLjA5MzFiZTczODA3MjA0M2FlYzJiZTllZDE5NTM3
NjYyNmY2MDBmODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNCBAQAogMjAxNS0wOS0xOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5
IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHNldmVyYWwgb3V0ZGF0ZWQgRE9NIGNvbXBsaWFu
Y2UgdGVzdHMuIFVwZGF0ZSAvIFJlYmFzZWxpbmUgb3RoZXJzLgorCisyMDE1LTA5LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBF
bnRpdHkgTm9kZSB0eXBlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDkyMzkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDNiNGUz
YTVlMGMzNzgyMTZhMDBlMzA2NTFhZTliNzA1ZGVjYzE0Zi4uNWQ1ZjdlZDZlNDQ0YTk4MTNlNTVh
YmQ4NTNhMGZhMGI0ZjkwZWZjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMTYgQEAKIDIwMTUtMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAorICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5v
ZGUgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmViYXNlbGluZSBXM0MgRE9NIHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3Npbmcu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQu
dHh0OgorCisyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAg
ICAgICAgRHJvcCBzdXBwb3J0IGZvciBFbnRpdHkgTm9kZSB0eXBlCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkyMzkKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyYThlNDY2MTI0YjE4
ZmY0YzViNjQ3ZWFiZmE3NzAxNTQ0ZDgxZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2I1OWFjMzY2OWEwY2Q2NzZiNDZlNGQ5ZmNiNzRmYjYxNmIxODNh
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6
Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0
bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2Ny
aXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJk
b2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMiPjwvc2NyaXB0
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41
NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+
MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1U
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+
Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
Tm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+
MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
Zi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U3ZTEyNzg0MWVmOTg2ZDYxNjg2
OWEyMjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNo
ZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAlj
YXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91
cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hy
b25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0
YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVz
dCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotLyoqCi0qIAotICAgIFRoZSAiY3JlYXRlRW50aXR5UmVmZXJlbmNlKHRh
Z05hbWUpIiBtZXRob2QgcmFpc2VzIGFuCi0gICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgRE9NRXhj
ZXB0aW9uIGlmIHRoZSBzcGVjaWZpZWQKLSAgIHRhZ05hbWUgY29udGFpbnMgYW4gaW52YWxpZCBj
aGFyYWN0ZXIuIAotCi0qIEBhdXRob3IgTklTVAotKiBAYXV0aG9yIE1hcnkgQnJhZHkKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0nSU5W
QUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9S
RUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0Bu
YW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJTlZB
TElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1Ymxp
Yy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2
YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0
L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJmb28iKTsK
LSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29k
ZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0
aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsK
LQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50
aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiaW52YWxpZF5OYW1lIik7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
SU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQkJfQotCQotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9s
ZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYx
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWFlYmU0MDQ0NzhkOGIwMjViNTFjNmFlM2MzNjY1
ZDVhMzcwMzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEK
LVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1s
IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzYjZkMDljZGFiYzIwYzE3MjY1YWFmMjU5NzZlMzMyNDlmNWQxYjk0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3Jn
L1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjRkMWVjOTc1MzI5YjE3ZDcyM2NlM2MwZTk3OWU1
ZDVmOTBmNDBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0
dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1w
dHkgbmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRo
b3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYn
KS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNv
cmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUn
KS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmlu
Zy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24g
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxk
ZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3Mg
PSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBz
dWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkp
OwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsK
LQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCIiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2Yo
ZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRU
cnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0J
Ci19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTA4MmNiZWFlNGY2ZDg4ZGZkMDY0
ZWRiNGMyZDlhYWI5NjE1YzNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1
ZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0YmI3YmI4YzgxMDljZjU5M2RmZWY4NWJjOWNkMzRhZTRjYjI4OGQxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9o
dG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAx
Ly9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwh
LS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzIGIvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjYzJhZTM1ZTI3YjQ5NDQ4ZDA3ZDYxNjRiNDliMGE5
ODMwY2NmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZh
bHVlMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJY
TUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5z
IGVudGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0
cmdldHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFj
cm9ueW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0g
ICAgICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2Rl
OwotICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFs
cGhhUmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7
Ci0gICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVz
ID0gdGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5n
ZXROYW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50
VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJhbHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0J
Ci0JCWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBo
YSIpOwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICBy
ZXR2YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAg
ICAgdmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZh
bHVlMSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzcwYzdjM2RiMWRmZTc4ZDg3
YTUxYzRiYWQxMTZkMjk4MzhmMWMwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFs
dWUwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3Q6CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZh
bHVlMDMKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI4MDQ2ZjEyZmI4OGIyZWI5Y2U2NmY5NjBmMmIyYmQxOWE0NzdhOWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIg
Ci0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5o
Y19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0
bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJoY19ub2RldmFsdWUwMy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTYxNjcxYWE0YjM4YTY1YTFjZWQ0Zjk1OWE4YjE0NjM1ZjMxMjU4NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzIjsKLSAgIH0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1BbiBlbnRpdHkgcmVmZXJlbmNlIGlzIGNyZWF0ZWQsIHNldE5vZGVW
YWx1ZSBpcyBjYWxsZWQgd2l0aCBhIG5vbi1udWxsIGFyZ3VtZW50LCBidXQgZ2V0Tm9kZVZhbHVl
Ci1zaG91bGQgc3RpbGwgcmV0dXJuIG51bGwuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI0lELUY2OEQwODAKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4
L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0xMUM5ODQ5MAotKi8K
LWZ1bmN0aW9uIGhjX25vZGV2YWx1ZTAzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfbm9kZXZhbHVlMDMiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdOb2RlOwotICAgICAgdmFyIG5ld1ZhbHVl
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
IAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7
Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBuZXdOb2Rl
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURf
RVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJbmV3Tm9kZSA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIGFzc2VydE5vdE51bGwoImNyZWF0
ZWRFbnRSZWZOb3ROdWxsIixuZXdOb2RlKTsKLW5ld1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7
Ci0KLSAgICAgIGFzc2VydE51bGwoImluaXRpYWxseU51bGwiLG5ld1ZhbHVlKTsKLSAgICBuZXdO
b2RlLm5vZGVWYWx1ZSA9ICJUaGlzIHNob3VsZCBoYXZlIG5vIGVmZmVjdCI7Ci0KLSAgICAgIG5l
d1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51bGwoIm51bGxBZnRl
ckF0dGVtcHRlZENoYW5nZSIsbmV3VmFsdWUpOwotICAgIAotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19ub2RldmFsdWUwMygpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVf
Tk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZl
bDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzhjZWMwYTg5ZDRhNWZhY2U2
YjNjYjI0MDM2OTg3ZDc5OGI2Zjg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVh
dG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLVhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJS
OiBTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyBiL0xheW91dFRlc3Rz
L2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JU
RURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmUwMThjOGE2NjMwNTQ5
Njc4M2QxYjc1YWMwZTc0YmYyMjM3ZGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTE5ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLS8vIGV4cG9zZSB0ZXN0IGZ1bmN0aW9uIG5hbWVzCi1mdW5jdGlvbiBleHBvc2VU
ZXN0RnVuY3Rpb25OYW1lcygpCi17Ci1yZXR1cm4gWydYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9O
T1RfU1VQUE9SVEVEX0VSUiddOwotfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFy
IGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0
aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3Vp
dGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBh
c3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhl
cndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBl
eGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0
aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRV
cFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNy
ZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8v
Ci0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2Nz
TG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2Mi
LCAic3RhZmZOUyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBj
YXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8v
Ci0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAg
ICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAg
IFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0v
LyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAg
ICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qICAgICAgIAotICAgICAgVGVz
dCBpZiBYUGF0aEV2YWx1YXRvci5ldmFsdWF0ZSBwcm9wZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRF
RF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBlIExlIEjDqWdhcmV0Ci0qIEBhdXRob3Ig
Qm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwt
My1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV2YWx1YXRvci1ldmFsdWF0ZQotKi8KLWZ1bmN0
aW9uIFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiWFBhdGhFdmFs
dWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAg
dmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRvcjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAg
ICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwotCi0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51
bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVhdG9yID0gY3JlYXRlWFBhdGhFdmFs
dWF0b3IoZG9jKTsKLWNvbnRleHROb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50
aXR5bmFtZSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZXN1bHQgPSB4cEV2YWx1YXRvci5ldmFsdWF0ZSgiLy9mb286YmFyIixjb250ZXh0
Tm9kZSxudWxsTlNSZXNvbHZlciwwLG51bGxSZXN1bHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJS
IixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIFhQ
YXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0
aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YjhiZGMxYzZkNDA5NTk2ZTJhZTQ4NDIwZDdiZTdjZTkx
ODJlOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi08c3ZnIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6bmlzdD0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiLz4NCi08
c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9IlhQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIi8+DQotPHNjcmlwdCB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJzdmd1bml0LmpzIi8+DQotPC9zdmc+
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHBy
ZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQ
UE9SVEVEX0VSUi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEw
YTdkY2M2YTY0MGY3ZjZmMDZjY2JmNGJlMDcwNjA1MjU1OTQ3ODAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUjogU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURf
RVJSLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9u
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhY2Y2MTQ2NjEwOTNjY2ZjYzUxNzhiODY0YTZhMmMwYjI5ZGY4Njk1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcv
bGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0vLyBleHBvc2UgdGVzdCBmdW5jdGlvbiBu
YW1lcwotZnVuY3Rpb24gZXhwb3NlVGVzdEZ1bmN0aW9uTmFtZXMoKQotewotcmV0dXJuIFsnWFBh
dGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSJ107Ci19Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICAgIAotICAgICAgIGlm
IChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRp
b25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBp
biBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9j
dW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQg
d2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVk
LgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0v
KioKLSogICAgICAgCi0gICAgICBUZXN0IGlmIFhQYXRoRXhwcmVzc2lvbi5ldmFsdWF0ZSBwcm9w
ZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBl
IExlIEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5v
cmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV4cHJl
c3Npb24tZXZhbHVhdGUKLSovCi1mdW5jdGlvbiBYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxp
emF0aW9uKGJ1aWxkZXIsICJYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9F
UlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRv
cjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAgICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwot
Ci0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsK
LSAgICAgIHZhciB4cGF0aEV4cHJlc3Npb247Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwg
ImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICB4cEV2YWx1YXRvciA9IGNyZWF0ZVhQYXRoRXZhbHVh
dG9yKGRvYyk7Ci14cGF0aEV4cHJlc3Npb24gPSB4cEV2YWx1YXRvci5jcmVhdGVFeHByZXNzaW9u
KCIvL2ZvbyIsbnVsbE5TUmVzb2x2ZXIpOwotICAgICAgY29udGV4dE5vZGUgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJlbnRpdHluYW1lIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHhwYXRoRXhwcmVzc2lvbi5ldmFs
dWF0ZShjb250ZXh0Tm9kZSwwLG51bGxSZXN1bHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixz
dWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIFhQYXRo
RXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRl
X05PVF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRo
L1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmODZkNzUwYTM5ZGFhZjQ2Y2IwNGQ5ZjEzYTI3MGNmMjU1
Y2NjZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05P
VF9TVVBQT1JURURfRVJSLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOm5pc3Q9Imh0dHA6Ly93d3cu
bmlzdC5nb3YiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+DQot
PHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJYUGF0aEV4
cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMiLz4NCi08c2NyaXB0IHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9InN2Z3VuaXQuanMiLz4NCi08L3N2
Zz4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkMmQ2ZDE3NzBhMTI3ODk5YTIyYWFjZjM2ZmNmOTg2MTI2MDc3M2FmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmCi1TdGF0dXMJU3VjY2VzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlN2UxMjc4NDFlZjk4NmQ2MTY4
NjlhMjI0MTQ4MTYxYTM5MTcwMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcworKysgL2Rldi9udWxsCkBAIC0x
LDE0MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7
Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVz
dCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlv
bnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4g
IE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQg
dGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVy
aW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAg
IHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8v
ICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAg
ICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAg
Y2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAg
CWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRo
b2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9u
b3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5j
aHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ug
c3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0
ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgr
K2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJjcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
dGFnTmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFMSURfQ0hBUkFDVEVSX0VSUiBET01F
eGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFtZSBjb250YWlucyBhbiBpbnZhbGlk
IGNoYXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBhdXRob3IgTWFyeSBCcmFkeQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2NvbnN0YW50W0BuYW1lPSdJ
TlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4
L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0zOTJCNzVBRQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3JhaXNlcy9leGNlcHRpb25b
QG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJlZm9yZSguLCc6Jyk9J0lO
VkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVi
bGljL3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlvbiBkb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAg
IHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRl
eHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZvbyIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2Ug
ewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRF
bnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJpbnZhbGlkXk5hbWUiKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkODEwOTgzMzIxMDRmMTBhOWEwNzNhZDAxZTRlNGExM2I4YTFlMzhjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25j
cmVhdGVlbnRyZWYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJp
Y3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEg
IiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRh
ICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFs
cGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFG
aWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNv
bW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hl
YWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVm
ZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0
aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdh
bW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJv
bmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29k
ZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVu
dHJlZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjNiYzk5ODViNWMyYjdmNjAxYTEwZjg0
ZTM5ZTY1MzY4MTM0Njg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVu
dHJlZjEKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVm
MS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNGQxZWM5NzUzMjliMTdkNzIzY2UzYzBlOTc5ZTVkNWY5MGY0MGEyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1D
cmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1wdHkgbmFtZSBzaG91bGQgY2F1
c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9s
ZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0n
SU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5
OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9s
ZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9u
W0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJ
TlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1
YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hh
cmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAg
ICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0g
InRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZv
byIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihl
eC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRy
dWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVs
c2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBi
YWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCIiKTsKLSAgICAgICAgfQot
CQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVm
aW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19JTlZBTElE
X0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS54aHRt
bCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmODNiYWI5ODRhZTdjYTJhZmViY2EwMjRlYzNkODBiODdkNDhmZTg0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElD
ICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0
ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0
NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5
NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFB
VFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgot
ICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9j
b2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVu
Y2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24g
d2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7
Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMjA5YzNlNDM2NGVkYzQ1NWQ1NGQ0MTUyMDk0ZTJl
NjZhYWQ3NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMgotU3Rh
dHVzCWZhaWx1cmUKLU1lc3NhZ2UJYXR0clZhbHVlMTogYXNzZXJ0RXF1YWxzIGZhaWxlZCwgYWN0
dWFsIFnOsSwgZXhwZWN0ZWQgzrFZzrEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NGNjMmFlMzVlMjdiNDk0NDhkMDdkNjE2NGI0OWIwYTk4MzBjY2YxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMiI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DaGVj
a3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5zIGVudGl0eSByZWZlcmVu
Y2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0yMjE2NjI0
NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0g
ICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0cmdldHZhbHVlMiIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFjcm9ueW1MaXN0OwotICAg
ICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0gICAgICB2YXIgdGl0bGVB
dHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIHJl
dHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFscGhhUmVmOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGFjcm9ueW1M
aXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7Ci0gICAgICB0ZXN0Tm9k
ZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVzID0gdGVzdE5vZGUuYXR0
cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oImNs
YXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9o
dG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAg
ICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJ
YWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgZmly
c3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICByZXR2YWwgPSB0aXRsZUF0
dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAgICAgdmFsdWUgPSB0aXRs
ZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZhbHVlMSIsIs6xWc6xIix2
YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBhMmU0MDEzOGM1NTA4NDlkNzlkMTdhODRhOWU0MjdiMjg1ZWVmYjku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RB
VEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0
bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNl
bGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iaGNfYXR0cmdldHZhbHVlMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4
YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJl
ZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29k
ZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZn
YW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4K
LSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFu
YWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFz
IDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0
cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwv
Y29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9u
eW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDdiMWEyNjJmYTg4MTZlOTcxZWMzMDc5NmQ3NjU5
OTRlZjk4ZTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMwotU3RhdHVz
CWVycm9yCi1NZXNzYWdlCUVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUv
aGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNf
bm9kZXZhbHVlMDMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MTY3MWFhNGIz
OGE2NWExY2VkNGY5NTlhOGIxNDYzNWYzMTI1ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hj
X25vZGV2YWx1ZTAzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFuIGVu
dGl0eSByZWZlcmVuY2UgaXMgY3JlYXRlZCwgc2V0Tm9kZVZhbHVlIGlzIGNhbGxlZCB3aXRoIGEg
bm9uLW51bGwgYXJndW1lbnQsIGJ1dCBnZXROb2RlVmFsdWUKLXNob3VsZCBzdGlsbCByZXR1cm4g
bnVsbC4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtRjY4RDA4
MAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgx
MDAxL2xldmVsLW9uZS1jb3JlI0lELTExQzk4NDkwCi0qLwotZnVuY3Rpb24gaGNfbm9kZXZhbHVl
MDMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJoY19ub2RldmFsdWUwMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIG5ld05vZGU7Ci0gICAgICB2YXIgbmV3VmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIu
Y29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIG5ld05vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJlbnQxIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
CX0KLQkKLQkJZWxzZSB7Ci0JCQluZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
ZW50MSIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgiY3JlYXRlZEVudFJlZk5vdE51bGwiLG5ld05v
ZGUpOwotbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgi
aW5pdGlhbGx5TnVsbCIsbmV3VmFsdWUpOwotICAgIG5ld05vZGUubm9kZVZhbHVlID0gIlRoaXMg
c2hvdWxkIGhhdmUgbm8gZWZmZWN0IjsKLQotICAgICAgbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVW
YWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgibnVsbEFmdGVyQXR0ZW1wdGVkQ2hhbmdlIixuZXdW
YWx1ZSk7Ci0gICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
IGhjX25vZGV2YWx1ZTAzKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEyNzY1MWVjODlmYTg4MGJiNTI0Y2EyNGJhZjllMWM1MjgxZmQyZTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NjAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08
IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+
Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+
Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5
OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24x
IFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0g
Im5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgot
XT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imhj
X25vZGV2YWx1ZTAzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9u
Zz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAg
ICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNy
b255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEg
UmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJl
ciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwv
Y29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0
PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJv
Z2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgot
ICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29u
bm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+
MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08
L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzc5M2UwNGNiNjRkOWJlOGFmNWYwNmI3ZTUzODZjZjI0
NmFiYzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYK
LVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4MDRiOTQ4MTUyOGZlMjA4MWZiM2E0ZGMzZDQ5ZDI1ZDA1NWE4ZjIzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTc1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNiI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSBhZG9wdE5vZGUgb24gYSBuZXcgZG9jdW1lbnQg
dG8gYWRvcHQgdGhlIGEgbmV3IEF0dHJpYnV0ZSBub2RlIGhhdmluZyBhIFRleHQgYW5kIGFuIEVu
dGl0eVJlZmVyZW5jZSAKLQljaGlsZC4gIENoZWNrIGlmIHRoaXMgYXR0cmlidXRlIGhhcyBiZWVu
IGFkb3B0ZWQgc3VjY2Vzc2Z1bGx5IGJ5IHZlcmlmeWluZyB0aGUgbm9kZU5hbWUsIG5hbWVzcGFj
ZVVSSSwgcHJlZml4LCAKLQlzcGVjaWZpZWQgYW5kIG93bmVyRWxlbWVudCBhdHRyaWJ1dGVzIG9m
IHRoZSBhZG9wdGVkIG5vZGUuICBBbHNvIHZlcmlmeSB0aGUgb3duZXJEb2N1bWVudCBhdHRyaWJ1
dGUKLQlvZiB0aGUgYWRvcHRlZCBub2RlIGFuZCB0aGUgYWRvcHRlZCBjaGlsZHJlbiBvZiB0aGUg
YXR0cmlidXRlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAw
NDA0MDcvY29yZSNEb2N1bWVudDMtYWRvcHROb2RlCi0qLwotZnVuY3Rpb24gZG9jdW1lbnRhZG9w
dG5vZGUwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgImRvY3VtZW50YWRvcHRub2RlMDYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIHZhciBu
ZXdBdHRyOwotICAgICAgdmFyIG5ld1RleHQ7Ci0gICAgICB2YXIgbmV3RW50UmVmOwotICAgICAg
dmFyIGFkb3B0ZWRBdHRyOwotICAgICAgdmFyIGFkb3B0VGV4dDsKLSAgICAgIHZhciBhZG9wdEVu
dFJlZjsKLSAgICAgIHZhciBub2RlTGlzdDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZh
ciBub2RlTmFtZXNwYWNlVVJJOwotICAgICAgdmFyIG5vZGVQcmVmaXg7Ci0gICAgICB2YXIgYXR0
ck93bmVyRWxlbTsKLSAgICAgIHZhciBpc1NwZWNpZmllZDsKLSAgICAgIHZhciBhZG9wdGVkVGV4
dE5vZGVWYWx1ZTsKLSAgICAgIHZhciBhZG9wdGVkRW50UmVmTm9kZVZhbHVlOwotICAgICAgdmFy
IG51bGxEb2NUeXBlID0gbnVsbDsKLQotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2
YXIgZG9jRWxlbTsKLSAgICAgIHZhciByb290TlM7Ci0gICAgICB2YXIgcm9vdE5hbWU7Ci0gICAg
ICB2YXIgeG1sTlMgPSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIjsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NF
bGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5hbWUgPSBkb2NFbGVtLnRh
Z05hbWU7Ci0KLSAgICAgIHJvb3ROUyA9IGRvY0VsZW0ubmFtZXNwYWNlVVJJOwotCi0gICAgICBk
b21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9tSW1wbC5jcmVhdGVEb2N1
bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAgbmV3QXR0ciA9IGRvYy5j
cmVhdGVBdHRyaWJ1dGVOUyh4bWxOUywieG1sOmxhbmciKTsKLSAgICAgIG5ld1RleHQgPSBkb2Mu
Y3JlYXRlVGV4dE5vZGUoIlRleHQgTm9kZSIpOwotICAgICAgbmV3RW50UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBuZXdBdHRy
LmFwcGVuZENoaWxkKG5ld1RleHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IG5ld0F0dHIuYXBw
ZW5kQ2hpbGQobmV3RW50UmVmKTsKLSAgICAgIGFkb3B0ZWRBdHRyID0gbmV3RG9jLmFkb3B0Tm9k
ZShuZXdBdHRyKTsKLSAgICAgIAotCWlmKAotCQotCShhZG9wdGVkQXR0ciAhPSBudWxsKQotCi0J
KSB7Ci0Jbm9kZU5hbWUgPSBhZG9wdGVkQXR0ci5ub2RlTmFtZTsKLQotICAgICAgbm9kZU5hbWVz
cGFjZVVSSSA9IGFkb3B0ZWRBdHRyLm5hbWVzcGFjZVVSSTsKLQotICAgICAgbm9kZVByZWZpeCA9
IGFkb3B0ZWRBdHRyLnByZWZpeDsKLQotICAgICAgYXR0ck93bmVyRWxlbSA9IGFkb3B0ZWRBdHRy
Lm93bmVyRWxlbWVudDsKLQotICAgICAgaXNTcGVjaWZpZWQgPSBhZG9wdGVkQXR0ci5zcGVjaWZp
ZWQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9ub2RlTmFtZSIs
InhtbDpsYW5nIixub2RlTmFtZSk7Ci0gICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0
bm9kZTA2X25hbWVzcGFjZVVSSSIseG1sTlMsbm9kZU5hbWVzcGFjZVVSSSk7Ci0gICAgICAgYXNz
ZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X3ByZWZpeCIsInhtbCIsbm9kZVByZWZpeCk7
Ci0gICAgICAgYXNzZXJ0TnVsbCgiZG9jdW1lbnRhZG9wdG5vZGUwNl9vd25lckRvYyIsYXR0ck93
bmVyRWxlbSk7Ci0gICAgYXNzZXJ0VHJ1ZSgiZG9jdW1lbnRhZG9wdG5vZGUwNl9zcGVjaWZpZWQi
LGlzU3BlY2lmaWVkKTsKLW5vZGVMaXN0ID0gYWRvcHRlZEF0dHIuY2hpbGROb2RlczsKLQotICAg
ICAgYWRvcHRUZXh0ID0gbm9kZUxpc3QuaXRlbSgwKTsKLSAgICAgIGFkb3B0RW50UmVmID0gbm9k
ZUxpc3QuaXRlbSgxKTsKLSAgICAgIGFkb3B0ZWRUZXh0Tm9kZVZhbHVlID0gYWRvcHRUZXh0Lm5v
ZGVWYWx1ZTsKLQotICAgICAgYWRvcHRlZEVudFJlZk5vZGVWYWx1ZSA9IGFkb3B0RW50UmVmLm5v
ZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfVGV4dE5v
ZGVWYWx1ZSIsIlRleHQgTm9kZSIsYWRvcHRlZFRleHROb2RlVmFsdWUpOwotICAgICAgIGFzc2Vy
dEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9FbnRSZWZOb2RlVmFsdWUiLCJhbHBoYSIsYWRv
cHRlZEVudFJlZk5vZGVWYWx1ZSk7Ci0gICAgICAgCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlv
biBydW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUwNigpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYueGh0
bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUw
Ni54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjkyZDg5MGRhZGI1YTg3MzU5
ZjQ5ZmVkNDE5OTQ3MzU4NGQyMTcyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRh
ZG9wdG5vZGUwNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMDYu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRu
b2RlMTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyOGFiMTg4NjFmYmU4YTUwZjU5YzgxMmFlYmQwNTMzOWVhNTdjZjVkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYKLVN0YXR1cwlTdWNjZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9w
dG5vZGUxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFk
b3B0bm9kZTE2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmQ2ZTJmZGMzNDdh
MzQxMTA1NWJkYTJlZGU5YTIyMjliZTllZmU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudGFkb3B0bm9kZTE2LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotQ3JlYXRlIGEgZG9jdW1lbnQgZnJhZ21lbnQgd2l0aCBhbiBlbnRpdHkgcmVmZXJlbmNlLCBh
ZG9wdCB0aGUgbm9kZSBhbmQgY2hlY2sKLXRoYXQgdGhlIGVudGl0eSByZWZlcmVuY2UgdmFsdWUg
Y29tZXMgZnJvbSB0aGUgYWRvcHRpbmcgZG9jdW1lbnRzIERURC4KLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0RvY3VtZW50My1hZG9wdE5vZGUKLSov
Ci1mdW5jdGlvbiBkb2N1bWVudGFkb3B0bm9kZTE2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRhZG9wdG5vZGUxNiIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWdtZW50OwotICAg
ICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgY2hpbGQ7Ci0g
ICAgICB2YXIgY2hpbGRzQXR0cjsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dE5v
ZGU7Ci0gICAgICB2YXIgYWRvcHRlZDsKLSAgICAgIHZhciBwYXJlbnRJbXA7Ci0gICAgICB2YXIg
Y2hpbGRJbXA7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAgICAgIHZhciBjaGlsZEF0dHJJbXA7
Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2
YXIgYXR0ck5vZGU7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsKLSAgICAgIHZhciBmaXJzdENoaWxk
VHlwZTsKLSAgICAgIHZhciBmaXJzdENoaWxkTmFtZTsKLSAgICAgIHZhciBmaXJzdENoaWxkVmFs
dWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZG9jRnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgcGFy
ZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoInBhcmVudCIpOwotICAgICAgY2hpbGQgPSBkb2MuY3Jl
YXRlRWxlbWVudCgiY2hpbGQiKTsKLSAgICAgIGNoaWxkc0F0dHIgPSBkb2MuY3JlYXRlQXR0cmli
dXRlKCJzdGF0ZSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
Z2FtbWEiKTsKLSAgICAgIHRleHROb2RlID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXN0Iik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gY2hpbGRzQXR0ci5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAg
ICAgYXR0ck5vZGUgPSBjaGlsZC5zZXRBdHRyaWJ1dGVOb2RlKGNoaWxkc0F0dHIpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGNoaWxkLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAgICAgYXBwZW5kZWRDaGls
ZCA9IGRvY0ZyYWdtZW50LmFwcGVuZENoaWxkKHBhcmVudCk7Ci0gICAgICBhZG9wdGVkID0gZG9j
LmFkb3B0Tm9kZShkb2NGcmFnbWVudCk7Ci0gICAgICAKLQlpZigKLQkKLQkoYWRvcHRlZCAhPSBu
dWxsKQotCi0JKSB7Ci0JcGFyZW50SW1wID0gYWRvcHRlZC5maXJzdENoaWxkOwotCi0gICAgICBj
aGlsZEltcCA9IHBhcmVudEltcC5maXJzdENoaWxkOwotCi0gICAgICBhdHRyaWJ1dGVzID0gY2hp
bGRJbXAuYXR0cmlidXRlczsKLQotICAgICAgY2hpbGRBdHRySW1wID0gYXR0cmlidXRlcy5nZXRO
YW1lZEl0ZW0oInN0YXRlIik7Ci0gICAgICBmaXJzdENoaWxkID0gY2hpbGRBdHRySW1wLmZpcnN0
Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImZpcnN0Q2hpbGROb3ROdWxsIixmaXJzdENo
aWxkKTsKLWZpcnN0Q2hpbGROYW1lID0gZmlyc3RDaGlsZC5ub2RlTmFtZTsKLQotICAgICAgZmly
c3RDaGlsZFZhbHVlID0gZmlyc3RDaGlsZC5ub2RlVmFsdWU7Ci0KLSAgICAgIGZpcnN0Q2hpbGRU
eXBlID0gZmlyc3RDaGlsZC5ub2RlVHlwZTsKLQotICAgICAgCi0JaWYoCi0JKDUgPT0gZmlyc3RD
aGlsZFR5cGUpCi0JKSB7Ci0JYXNzZXJ0RXF1YWxzKCJmaXJzdENoaWxkRW50M1JlZiIsImdhbW1h
IixmaXJzdENoaWxkTmFtZSk7Ci0gICAgICAgCi0JfQotCQotCQllbHNlIHsKLQkJCWFzc2VydEVx
dWFscygiZG9jdW1lbnRhZG9wdG5vZGUxNiIsIlRleGFzIixmaXJzdENoaWxkVmFsdWUpOwotICAg
ICAgIAotCQl9Ci0JCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAg
ZG9jdW1lbnRhZG9wdG5vZGUxNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYueGh0bWwgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiYjlkZTFmYjkzOGIwNzk3NTMwZjExMzBjODcxODZlNzYz
N2QxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMTYuanMiLz48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ry
b25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgot
ICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2
ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0
aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlS
ZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50
IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNv
bSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+
Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+
Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIg
aWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3
IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRw
Oi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVu
eSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAg
PHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVN
UDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21w
dXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUy
Ny1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNzM0NDFkNDMw
MjE0OTJmOTQzN2RmYjY2MGRjMGU0ZmEzNjM4MmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19O
T1RfU1VQUE9SVEVEX0VSUl8xOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LmpzIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjczY2FjYmM2ODk2YzY2Y2EyMzMwMmY2YTIx
YWI2OWNlM2Q4NGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUy
Ny5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2Rv
Y3VtZW50cmVuYW1lbm9kZTI3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsK
LXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
YnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0
IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9u
cywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAg
T3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0
aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJp
bmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAg
c2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8g
ICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAg
ICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAg
ZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAg
ICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBl
eCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAot
Ly8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8K
LS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRl
ZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQot
Ly8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHRo
ZSByZW5hbWVOb2RlIG1ldGhvZCB0byBhdHRlbXB0IHRvIHJlbmFtZSBuZXcgVGV4dCwgQ29tbWVu
dCwgQ0RhdGFTZWN0aW9uLAotCVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgRW50aXR5UmVmZXJl
bmNlIG5vZGVzIG9mIGEgbmV3IERvY3VtZW50LgotCUNoZWNrIGlmIGEgTk9UX1NVUFBPUlRFRF9F
UlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQw
NDA3L2NvcmUjRG9jdW1lbnQzLXJlbmFtZU5vZGUKLSovCi1mdW5jdGlvbiBkb2N1bWVudHJlbmFt
ZW5vZGUyNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgImRvY3VtZW50cmVuYW1lbm9kZTI3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZh
ciBkb2M7Ci0gICAgICB2YXIgbmV3RG9jOwotICAgICAgdmFyIGRvbUltcGw7Ci0gICAgICB2YXIg
dGV4dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBp
OwotICAgICAgdmFyIGVudHJlZjsKLSAgICAgIHZhciByZW5hbWVkVHh0OwotICAgICAgdmFyIHJl
bmFtZWRDb21tZW50OwotICAgICAgdmFyIHJlbmFtZWRDZGF0YTsKLSAgICAgIHZhciByZW5hbWVk
UGk7Ci0gICAgICB2YXIgcmVuYW1lZEVudFJlZjsKLSAgICAgIHZhciBudWxsRG9jVHlwZSA9IG51
bGw7Ci0KLSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIHJvb3ROUzsKLSAgICAgIHZhciBy
b290TmFtZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5TID0g
ZG9jRWxlbS5uYW1lc3BhY2VVUkk7Ci0KLSAgICAgIHJvb3ROYW1lID0gZG9jRWxlbS50YWdOYW1l
OwotCi0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9tSW1w
bC5jcmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAgdGV4
dCA9IG5ld0RvYy5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOwotICAgICAgY29tbWVudCA9IG5ld0Rv
Yy5jcmVhdGVDb21tZW50KCJjb21tZW50Iik7Ci0gICAgICBjZGF0YSA9IG5ld0RvYy5jcmVhdGVD
REFUQVNlY3Rpb24oImNkYXRhIik7Ci0gICAgICBwaSA9IG5ld0RvYy5jcmVhdGVQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24oInBpdCIsInBpZCIpOwotICAgICAgZW50cmVmID0gbmV3RG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZFR4dCA9IG5ld0RvYy5yZW5hbWVOb2RlKHRleHQs
Imh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwidGV4dCIpOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURf
RVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVuYW1lZENvbW1lbnQgPSBuZXdEb2MucmVuYW1lTm9kZShjb21tZW50LCJo
dHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNvbW1lbnQiKTsKLSAgICAgICAgfQotCQljYXRj
aChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcg
JiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVE
X0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIHJlbmFtZWRDZGF0YSA9IG5ld0RvYy5yZW5hbWVOb2RlKGNkYXRhLCJodHRw
Oi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNkYXRhIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgp
IHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4
LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJf
MyIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZW5hbWVkUGkgPSBuZXdEb2MucmVuYW1lTm9kZShwaSwiaHR0cDovL3d3dy53My5v
cmcvRE9NL1Rlc3QiLCJwaSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNj
ZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwot
CQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSXzQiLHN1Y2Nlc3MpOwot
CX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1l
ZEVudFJlZiA9IG5ld0RvYy5yZW5hbWVOb2RlKGVudHJlZiwiaHR0cDovL3d3dy53My5vcmcvRE9N
L1Rlc3QiLCJlbnRyZWYiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2Vz
cyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJ
fQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl81IixzdWNjZXNzKTsKLQl9
Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50cmVuYW1lbm9k
ZTI3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
ZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRlNzgxMWI0MmRlMmM0NjdlNWEyYTYwZTE4MjkxZDJkMTA4ZjgzYzkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LnhodG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFU
QT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYj
OTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24g
IiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBT
WVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRB
ICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
Om5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1Q
TElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+
Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9Y
TUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
eGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iZG9jdW1lbnRyZW5hbWVub2RlMjcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0
IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBU
ZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMK
LTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVt
YmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlv
biB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNl
Y3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5F
TVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRl
cGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVu
dDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4
YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2
aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9z
dHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgot
ICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFs
aXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4K
LSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIw
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzhlNGU2NjQ2NmZiZGMxNDA3
Njc1NTM4N2E5YTM1ZjBmMWVhOTZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yMC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjIwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJv
ZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48
L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1
NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFU
QVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZl
bnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBh
IHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8
L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwv
ZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50
IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUz
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29t
Ij4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9u
Zz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29k
ZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgot
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDI0MzczOGY2MGEw
ODg0NjRkYWQ4NDgyN2VhNmMxNGViMDEzZjcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNgotU3RhdHVzCWZhaWx1cmUK
LU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggM2U4YjNmYWU4ODc5YTBhMzRkZjAxYjY0NWRjMzc2MGFiZTAyNzMxYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxk
IFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5k
IE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRo
aXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNl
IFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0
dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUt
MjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZp
ZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAg
Ki8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53
My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIGNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uIGNoZWNrIGlmIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBjb250YWlucyBh
bmQgcHJlY2VkZXMgaXQncyBmaXJzdAotCWNoaWxkRWxlbWVudCwgYW5kIHRoYXQgdGhlIGNoaWxk
RWxlbWVudCBpcyBjb250YWluZWQgYW5kIGZvbGxvd3MgdGhlIEVudGl0eVJlZmVyZW5jZSBub2Rl
LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUz
LWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0
aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNiIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxl
bTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFy
IGVudFJlZlBvc2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0aW9uOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAot
CShnZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIpID09
IGZhbHNlKQotCSkgewotCXZhckxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInZhciIp
OwotICAgICAgdmFyRWxlbSA9IHZhckxpc3QuaXRlbSgyKTsKLSAgICAgIGFzc2VydE5vdE51bGwo
InZhckVsZW1Ob3ROdWxsIix2YXJFbGVtKTsKLWVudFJlZiA9IHZhckVsZW0uZmlyc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmTm90TnVsbCIsZW50UmVmKTsKLQotCX0KLQkK
LQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7
Ci0gICAgICAKLQkJfQotCWVudFJlZkNoaWxkMSA9IGVudFJlZi5maXJzdENoaWxkOwotCi0gICAg
ICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50
UmVmUG9zaXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQx
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uSXNDb250
YWluZWRGb2xsb3dpbmcyNiIsMjAsZW50UmVmUG9zaXRpb24pOwotICAgICAgIGVudFJlZkNoaWxk
MVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZik7
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbkNvbnRhaW5z
UFJFQ0VESU5HMjYiLDEwLGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MzNlMGQwNjU4YmJmYmY0ZmE1MDgzZTBhMjM5NzMyYTQ0
YzFlOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bjI2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MjliNGNkODA1OGEzYzc1Y2E4MTJiNDI1Mjc1
YjM2ZjhlNDI5ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbnRSZWZD
aGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Lmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWUxOWI3NjcwMmIz
NGE5ODVlODI0ZjgxZWFjYWFmM2VlNGJlMGY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCww
IEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29y
dGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4g
UmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtl
aW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQot
Ci0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAg
ICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0
VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IjsKLSAg
IH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gdG8g
Y2hlY2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGNvbnRhaW5zIGFuZCBwcmVjZWRlcyBp
dCdzIGxhc3QKLQljaGlsZEVsZW1lbnQsIGFuZCB0aGF0IHRoaXMgY2hpbGRFbGVtZW50IGlzIGNv
bnRhaW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUuCi0KLSogQGF1dGhv
ciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtY29tcGFyZURvY3Vt
ZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNygp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZh
ciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZhciB2YXJFbGVtOwotICAgICAgdmFy
IGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0gICAgICB2YXIgZW50UmVmUG9zaXRp
b247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JKGdldEltcGxlbWVu
dGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIikgPT0gZmFsc2UpCi0JKSB7
Ci0JdmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidmFyIik7Ci0gICAgICB2YXJF
bGVtID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgidmFyRWxlbU5vdE51
bGwiLHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxlbS5maXJzdENoaWxkOwotCi0gICAgICBhc3Nl
cnROb3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRSZWYpOwotCi0JfQotCQotCQllbHNlIHsKLQkJ
CWVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIAotCQl9
Ci0JZW50UmVmQ2hpbGQxID0gZW50UmVmLmxhc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVs
bCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQxKTsKLWVudFJlZlBvc2l0aW9uID0g
ZW50UmVmLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZkNoaWxkMSk7Ci0gICAgICBhc3Nl
cnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbklzQ29udGFpbmVkRm9sbG93aW5n
MjciLDIwLGVudFJlZlBvc2l0aW9uKTsKLSAgICAgICBlbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVu
dFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWYpOwotICAgICAgYXNzZXJ0
RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Db250YWluc1BSRUNFRElORyIsMTAs
ZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzFhYmUwMWJmOWJkODlkMWExZWFmNmVjYmMwMWIwOTNlNmViZmIxMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcueGh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZ
TEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBn
YW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkg
ZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBk
aXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENE
QVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQg
UElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgot
PCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgi
Lz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzNkMzI0OWQ4NGJiM2MyNjE2NzVlM2U0ZThjYWQzNjI5OGEzZjg1YS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjgKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFz
c2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMmIyOGU4M2MzMDU0NGRhYWE4NDFmMTdmZDE1
ZDdiOGRiYzUyZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHly
aWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0
aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4g
QWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2Fs
LzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAg
KiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJp
IGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0g
ICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgiOwotICAgfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0g
cHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYg
KGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlv
bkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhl
IGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGlu
IHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1
bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3
aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQu
Ci1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8q
KgotKiAKLQlVc2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiBjaGVjayB0aGUgZG9jdW1lbnQg
cG9zaXRpb24gb2YgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGVudDQncwotCWZpcnN0IGNoaWxk
IGFuZCBsYXN0IGNoaWxkLiAgSW52b2tlIGNvbXBhcmVEb2N1bWVudFBvc2l0b24gb24gZmlyc3Qg
Y2hpbGQgd2l0aCBsYXN0IGNoaWxkIGFzIGEgcGFyYW1ldGVyCi0Jc2hvdWxkIHJldHVybiBGT0xM
T1dJTkcsIGFuZCBzaG91bGQgcmV0dXJuIFBSRUNFRElORyB2aWNlIHZlcnNhLgotCi0qIEBhdXRo
b3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgo
KSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIs
ICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2
YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxlbTsKLSAgICAgIHZh
ciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFyIGVudFJlZkNoaWxk
MjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGls
ZDJQb3NpdGlvbjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAKLQlpZigKLQkoZ2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVu
dGl0eVJlZmVyZW5jZXMiKSA9PSBmYWxzZSkKLQkpIHsKLQl2YXJMaXN0ID0gZG9jLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJ2YXIiKTsKLSAgICAgIHZhckVsZW0gPSB2YXJMaXN0Lml0ZW0oMik7Ci0g
ICAgICBhc3NlcnROb3ROdWxsKCJ2YXJFbGVtTm90TnVsbCIsdmFyRWxlbSk7Ci1lbnRSZWYgPSB2
YXJFbGVtLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZk5vdE51bGwi
LGVudFJlZik7Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgCi0JCX0KLQllbnRSZWZDaGlsZDEgPSBlbnRSZWYu
Zmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIs
ZW50UmVmQ2hpbGQxKTsKLWVudFJlZkNoaWxkMiA9IGVudFJlZi5sYXN0Q2hpbGQ7Ci0KLSAgICAg
IGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7Ci1lbnRS
ZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihl
bnRSZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb25Gb2xsb3dpbmcyOCIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgZW50UmVm
Q2hpbGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50
UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uUFJFQ0VESU5HMjgiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjgoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI1MDgyOWYxMmMyOTZiNjE5NTZiODFmYzY2NjU4MmUz
NjMyMjllYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRk
IiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2
OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0
ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICIm
Izk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFU
VExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1s
bnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAg
ICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0
ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRh
PC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RB
VEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRt
bCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNp
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhz
ZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRG
LTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJjYTc4MTdjODE0ODVlZWIxZmQ0YmU0Zjg1
YmQxZWUyMTdmNDk2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1U
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJl
ZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjku
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkOWZkNDVmYTkx
NWM0ZjUyYTBjMDg3N2ExNmI5NWVhN2EyZDg5MTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlDcmVhdGUgdHdvIGVudGl0eSByZWZlcmVuY2Ugbm9k
ZXMuIFVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHRvIGNoZWNrIGlmIHRoZSBjaGlsZCBv
ZiB0aGUgZmlyc3QgRW50aXR5IAotCVJlZiBub2RlIHByZWNlZGVzIHRoZSBjaGlsZCBvZiB0aGUg
c2Vjb25kIEVudGl0eSBSZWYgbm9kZSwgYW5kIHRoYXQgdGhlIGNoaWxkIG9mIHRoZSBzZWNvbmQg
RW50aXR5IFJlZiBub2RlCi0JZm9sbG93cyB0aGUgY2hpbGQgb2YgdGhlIGZpcnN0IEVudGl0eSBS
ZWYgbm9kZS4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjkoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0lu
aXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOSIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0VsZW07Ci0gICAgICB2
YXIgZW50UmVmMTsKLSAgICAgIHZhciBlbnRSZWYyOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsK
LSAgICAgIHZhciBlbnRSZWZDaGlsZDI7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247
Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQyUG9zaXRpb247Ci0gICAgICB2YXIgYXBwZW5kZWRDaGls
ZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICBlbnRSZWYxID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgZW50
UmVmMiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIGRvY0VsZW0g
PSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRWxlbS5h
cHBlbmRDaGlsZChlbnRSZWYxKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NFbGVtLmFwcGVu
ZENoaWxkKGVudFJlZjIpOwotICAgICAgZW50UmVmQ2hpbGQxID0gZW50UmVmMS5maXJzdENoaWxk
OwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGls
ZDEpOwotZW50UmVmQ2hpbGQyID0gZW50UmVmMi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5v
dE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7Ci1lbnRSZWZDaGlsZDFQ
b3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWZDaGls
ZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Gb2xs
b3dpbmcyOSIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgZW50UmVmQ2hpbGQyUG9z
aXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQx
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uUFJFQ0VE
SU5HMjkiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZWEzZDJhOWI3MjExZDRkZjYzNWM0NjViYjU5NmQwNWJhOTEyYmIwYS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS5qcyIv
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291
bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgot
ICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlv
biB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMg
aXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRh
YjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAm
Z2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0g
Sm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3Vw
PjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4K
LSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVj
dG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMg
OTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5n
b3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+
Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+
Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2
aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZl
YXR1cmUwNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3YTk1
YTFmNjJjZTE0NzQ4ZjM0NjA0MjA0YzczMjhiNzY5NDRiZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZWdldGZlYXR1cmUwNAotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxpbmUgMTAxOiBU
eXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0ZmVhdHVyZTA0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXRmZWF0dXJlMDQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ZjVkMjBm
NzdiZmI5ZGNhMGExMGU4MGUxZGY1NWViZmIyM2M0ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVnZXRmZWF0dXJlMDQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDIgKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
Q2hlY2sgaW1wbGVtZW50YXRpb24gb2YgTm9kZS5nZXRGZWF0dXJlIG9uIEVudGl0eVJlZmVyZW5j
ZS4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWdldEZlYXR1cmUK
LSovCi1mdW5jdGlvbiBub2RlZ2V0ZmVhdHVyZTA0KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWdldGZlYXR1cmUwNCIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5vZGU7Ci0gICAgICB2YXIgbnVs
bFZlcnNpb24gPSBudWxsOwotCi0gICAgICB2YXIgZmVhdHVyZUltcGw7Ci0gICAgICB2YXIgaXNT
dXBwb3J0ZWQ7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgZG9tSW1wbCA9IGRvYy5pbXBsZW1lbnRhdGlvbjsK
LW5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBmZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiQ29yZSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0
U2FtZSgiY29yZVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1mZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0
U2FtZSgiY09yRVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1mZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiK2NPckUiLG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2Vy
dFNhbWUoIlBsdXNDb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJbXBsKTsKLWZl
YXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJvcmcudzNjLmRvbXRzLmJvZ3VzLmZlYXR1cmUi
LG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2VydE51bGwoInVucmVjb2duaXplZEZlYXR1cmUiLGZl
YXR1cmVJbXBsKTsKLSAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsIjIu
MCIpOwotICAgICAgYXNzZXJ0U2FtZSgiQ29yZTIwIixub2RlLGZlYXR1cmVJbXBsKTsKLWZlYXR1
cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIiwiMy4wIik7Ci0gICAgICBhc3NlcnRTYW1l
KCJDb3JlMzAiLG5vZGUsZmVhdHVyZUltcGwpOwotaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9y
dGVkKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0
dXJlKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7
Ci0JYXNzZXJ0U2FtZSgiWE1MVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQot
CWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiU1ZHIixudWxsVmVyc2lvbik7Ci0gICAg
ICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZHIixudWxsVmVyc2lvbik7Ci0gICAg
ICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIlNWR1Vuc3BlY2lmaWVk
Iixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0
ZWQoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0
dXJlKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkg
ewotCWFzc2VydFNhbWUoIkhUTUxVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9
Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJFdmVudHMiLG51bGxWZXJzaW9uKTsK
LSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJFdmVudHMiLG51bGxWZXJzaW9u
KTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiRXZlbnRz
VW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9k
ZS5pc1N1cHBvcnRlZCgiTFMiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9k
ZS5nZXRGZWF0dXJlKCJMUyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0
ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJMU1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsK
LQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkxTLUFzeW5jIixudWxsVmVy
c2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiTFMtQXN5bmMiLG51
bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2Ft
ZSgiTFNBc3luY1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBv
cnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIlhQYXRoIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0
dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiWFBhdGgiLG51bGxWZXJzaW9uKTsKLSAgICAgIAot
CWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiWFBhdGhVbnNwZWNpZmllZCIs
bm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVk
KCIrSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1
cmUoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7
Ci0JYXNzZXJ0Tm90TnVsbCgiUGx1c0hUTUxVbnNwZWNpZmllZCIsZmVhdHVyZUltcGwpOwotCi0J
fQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiK1NWRyIsbnVsbFZlcnNpb24pOwot
ICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIlNWRyIsbnVsbFZlcnNpb24pOwot
ICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnROb3ROdWxsKCJQbHVzU1ZH
VW5zcGVjaWZpZWQiLGZlYXR1cmVJbXBsKTsKLQotCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVnZXRmZWF0dXJlMDQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZDg1YzUzYzM4MjNiYjgxMWIxZTc0OTMzOWE1
NTczYjI1NzA0NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBbCi08IUVO
VElUWSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50MiAnZm9vPGJyLz4nPgotPCFFTEVNRU5UIGh0
bWwgKGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0bWwgeG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci08
IUVMRU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+Ci08IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRB
KT4KLTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNyYyBDREFUQSAjSU1QTElFRAotICAgICB0eXBl
IENEQVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQg
dGl0bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJvZHkgKHApPgotPCFBVFRMSVNUIGJvZHkgb25s
b2FkIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHAgKCNQQ0RBVEF8YnIpKj4KLTwhRUxFTUVO
VCBiciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hvbGVUZXh0IHNhbXBsZTwvdGl0bGU+Ci08c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdzZWxmeGh0bWwuanMnPjwvc2NyaXB0Pjxz
Y3JpcHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdub2RlZ2V0
ZmVhdHVyZTA0LmpzJz48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotPHA+YmFyPC9wPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDljNWMyOWNkZDk5N2JhZTkxYmMwYzVhYjc5NDA1YjgwMTI2ODMzY2IuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1Ci1TdGF0dXMJ
ZXJyb3IKLU1lc3NhZ2UJTGluZSAxMjE6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTQ2N2EzYmM0MTYyMGQzOTBlYzdkNGQ1ZDkyMjhi
ODg0MGM5MGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE1IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZh
ciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
dGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1
aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywg
YXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3Ro
ZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUg
ZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcg
dGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0
VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBj
cmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAv
LwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJ
bXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBz
ZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LQlUaGUgbWV0aG9kIGdldFRleHRDb250ZW50IHJldHVybnMgdGhlIHRleHQgY29udGVudCBvZiB0
aGlzIG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJbnZva2UgdGhlIG1ldGhvZCBnZXRU
ZXh0Q29udGVudCBvbiBhIG5ldyBFbGVtZW50IG5vZGUgd2l0aCBuZXcgVGV4dCwgRW50aXR5UmVm
ZXJlbmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29tbWVudCBub2RlcyBhbmQgY2hlY2sg
aWYgdGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAotCWNvbmNhdGVuYXRlZCBTdHJpbmcg
d2l0aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4
dGNvbnRlbnQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgY29t
bWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcGk7
Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0g
ZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVs
ZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNv
bW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEgPSBkb2Mu
Y3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0u
YXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxk
KGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVm
KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIHRleHRDb250ZW50
ID0gZWxlbS50ZXh0Q29udGVudDsKLQotICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVudDE1IiwiVGV4dCDOskNEYXRhIix0
ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBub2RlZ2V0dGV4dGNvbnRlbnQxNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LnhodG1sIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmQzNmNiYTNjM2RhMDkwY2JhZDc3NDdkMGU4OTFj
NWYyNGI2OTQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS54
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/
Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAg
IDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAg
IDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0g
ICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBw
Ci0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1Q
TElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAy
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4
bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFu
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+
PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1Q
TElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVh
ZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVnZXR0ZXh0Y29udGVudDE1LmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjQx
NDRkMDVmZjA4ZDcyZThlOTg0YWExMTMxNTQ4NjRiODExYTRiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNgotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxp
bmUgMTIzOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTQxZjdjODQxOWU4ZDExNTY0MjA4ODQ5NTg4NjhmYWFkNjE1NWQ5YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNiI7
Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7
Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1l
d29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElm
IHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8g
ICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1
cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1l
ZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0
ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdy
dW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3Vt
ZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9
IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRy
aWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25B
dHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBnZXRU
ZXh0Q29udGVudCByZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhpcyBub2RlIGFuZCBpdHMg
ZGVzY2VuZGFudHMuCi0JCi0JSW52b2tlIHRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgb24gYSBu
ZXcgRG9jdW1lbnRGcmFnbWVudCBub2RlIHdpdGggbmV3IFRleHQsIEVudGl0eVJlZmVyZW5jZXMg
IAotCUNEQVRBU2VjdGlvbiwgUEkgYW5kIENvbW1lbnQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZSB2
YWx1ZSByZXR1cm5lZCBpcyBhIHNpbmdsZSAKLQljb25jYXRlbmF0ZWQgU3RyaW5nIHdpdGggaXRz
IGNvbnRlbnQuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQw
Ny9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9kZWdldHRleHRjb250ZW50
MTYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJub2RlZ2V0dGV4dGNvbnRlbnQxNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbGVtQ2hp
bGQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVm
OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50
OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwg
ImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53
My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0
Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVu
dCAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsK
LSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRh
ICIpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAg
ICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFw
cGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNk
YXRhKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVsZW0pOwot
ICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0gICAgICB0ZXh0Q29udGVudCA9IGRvY0Zy
YWcudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50
MTYiLCJUZXh0IM6yQ0RhdGEiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE2KCk7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmZWZjMTVlYjRl
ZjAxZmIzZmVkMWNiZDg1ODY0ZTQ1NTkxZDFjZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXR0ZXh0Y29udGVudDE2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRt
bAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRt
bDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElU
WSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElU
WSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90
YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZp
bGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHht
bG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAot
ICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAg
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBz
cGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAg
ICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
Ci0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRj
b250ZW50MTYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9
ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMg
YSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08
IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNl
IHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAg
PHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0
cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwv
Y29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4
NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBE
YWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRw
Oi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3Jk
aWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM2YmViMzI3ZDgwZGVmMmM5NzllYjQ5MTFmYjM3NzcxMDMzMzIyY2Eu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3Ci1TdGF0
dXMJZmFpbHVyZQotTWVzc2FnZQlub2RlZ2V0dGV4dGNvbnRlbnQxNzogYXNzZXJ0RXF1YWxzIGZh
aWxlZCwgYWN0dWFsICwgZXhwZWN0ZWQgzrIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAyNGJhNjAxYTkxZmU1MTU4YThiMTMyN2M4MzMyMzhjZmI5YTU4
NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZva2UgdGhlIG1ldGhvZCBn
ZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhbmQgY2hlY2sgaWYg
dGhlIAotCXZhbHVlIHJldHVybmVkIGlzIHRoZSBFbnRpdHlSZWZlcmVuY2UncyBjb250ZW50Lgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
dGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4dGNvbnRlbnQxNygpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXR0
ZXh0Y29udGVudDE3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIHRleHRDb250ZW50ID0gZW50
UmVmLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVu
dDE3IiwizrIiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcu
eGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3OWMyMmM0ZDFlNTg0ZGEwZGFm
OWU4MzZkYzQ1YzFhNjM0Mzk0ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVy
c2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0
LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICIm
Izk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAi
JiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmls
ZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAg
PCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3Rj
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAg
ICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkg
ZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQg
ZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5z
IENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgot
PGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5z
OnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFm
Zi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRjb250ZW50MTcu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZv
cmUxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzk3ZmE4MzEwZDM3ZGVlMDEwYmU1YzQ5MTc5MDY2NTE3ZThiMzFlMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3Jl
MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9y
ZTExLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGE4YjllYzJjMjA0MGRiMTgy
ZDExYjZjMWRjODlkZmQ4MjQ1NDQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0
YmVmb3JlMTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotCi0vKgotQ29weXJp
Z2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1
c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRp
dW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBB
bGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUg
VzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwv
MjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAq
ICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkg
aWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAg
ICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0K
LQlVc2luZyBpbnNlcnRCZWZvcmUgb24gYSBEb2N1bWVudEZyYWdtZW50IG5vZGUgYXR0ZW1wdCB0
byBpbnNlcnQgYSBjaGlsZCBub2RlcyBiZWZvcmUKLQlvdGhlciBwZXJtaXNzaWJsZSBub2RlcyBh
bmQgdmVyaWZ5IHRoZSBjb250ZW50cy9uYW1lIG9mIGVhY2ggaW5zZXJ0ZWQgbm9kZS4KLQotKiBA
YXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5v
cmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcy
NwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUxMSgpIHsKLSAgIHZhciBzdWNjZXNzOwot
ICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxMSIp
ICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAg
ICB2YXIgZWxlbTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFy
IHR4dDsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIGluc2Vy
dGVkOwotICAgICAgdmFyIGluc2VydGVkVmFsOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9j
RnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImJvZHkiKTsKLSAg
ICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUYXJnZXQiLCJQSURh
dGEiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAg
ICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICBjZGF0YSA9IGRvYy5j
cmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVu
ZENoaWxkKGVsZW0pOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQo
cGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY29tbWVudCk7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZVJlZik7Ci0gICAgICBpbnNlcnRlZCA9IGRv
Y0ZyYWcuaW5zZXJ0QmVmb3JlKGNvbW1lbnQscGkpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNl
cnRlZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9Db21t
ZW50IiwiQ29tbWVudCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5p
bnNlcnRCZWZvcmUodHh0LGNvbW1lbnQpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5k
YXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9UZXh0IiwiVGV4
dCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUo
Y2RhdGEsdHh0KTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5zZXJ0ZWQuZGF0YTsKLQotICAgICAg
YXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfQ0RBVEEiLCJDREFUQSIsaW5zZXJ0ZWRW
YWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUoZVJlZixjZGF0YSk7
Ci0gICAgICBpbnNlcnRlZFZhbCA9IGluc2VydGVkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9FbnQxIiwiYWxwaGEiLGluc2VydGVkVmFsKTsKLSAg
ICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVpbnNlcnRiZWZv
cmUxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFhNGFhNjgzNzM4NWUwMDAzMzNkNmJjNWM0ODExODY3OTQ2YWQ1ZGQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/Pgot
PCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8v
RU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsi
PgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0Nzsi
PgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0
OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVN
ICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRs
JwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0g
ICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMg
Y29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
ZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Im5vZGVpbnNlcnRiZWZvcmUxMS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQyZjNlNjM1NDc1MDdlZTVkYTJkZjM2ZWVkMTViNGNj
MmZkNTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1Ci1T
dGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdmMzcxNmVhMTlkNGFmNzE3ZGI2NGExYjA2MzVlNDU5NTkwNWUzZTQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3NyAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNSI7Ci0gICB9Ci0KLXZh
ciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAg
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUK
LS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBu
byBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3Vt
ZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAg
IGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8g
ICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1
bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAg
IHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIs
IG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZp
Z3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotCUEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHJhaXNlZCBp
ZiB0aGUgbm9kZSBpcyByZWFkLW9ubHkuCi0JCi0JVXNpbmcgaW5zZXJ0QmVmb3JlIG9uIGEgbmV3
IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gaW5zZXJ0IEVsZW1lbnQsIFRleHQsCi0J
Q29tbWVudCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZCBDREFUQVNlY3Rpb24gbm9kZXMgYmVm
b3JlIGFuIGVsZW1lbnQgY2hpbGQKLQlhbmQgdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVs
aW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29y
ZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZv
cmUxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxNSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0
OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBwaTsKLSAg
ICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBpbnNlcnRlZDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZWxlbUNoaWxkID0gZW50UmVmLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9u
Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAg
IGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjZGF0YSxlbGVtQ2hpbGQpOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci1waSA9IGRvYy5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIAotCXsKLQkJ
c3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYu
aW5zZXJ0QmVmb3JlKHBpLGVsZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSXzIiLHN1Y2Nlc3MpOwotCX0KLWNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVu
dCIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAg
ICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoY29tbWVudCxlbGVtQ2hpbGQpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci10eHQgPSBkb2Mu
Y3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKHR4dCxl
bGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl80IixzdWNjZXNzKTsK
LQl9Ci1lbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCIsImJvZHkiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKGVsZW0sZWxlbUNoaWxk
KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVl
KCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlaW5zZXJ0YmVmb3JlMTUoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5z
ZXJ0YmVmb3JlMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWluc2VydGJlZm9yZTE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjBk
MDBiOWNhMTYzNzFlZmMwMmY4ZTQwMWViNDVkODU3ZjQxZGMxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlaW5z
ZXJ0YmVmb3JlMTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxv
YWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25n
PgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMg
aXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+
Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJl
bmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4K
LSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAg
PHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdl
cjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8
ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2Rl
PlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0i
Xzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2Fk
LiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJo
dHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVy
dCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8
c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBO
b3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFjMGUxNzU0ZjdhOTJjZmVlODk0MTkyOGI0ZWY2YjE3YjlhNzdmMWYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyCi1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1v
dmVjaGlsZDEyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1v
dmVjaGlsZDEyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTE4YTIyNzFlOGFj
OWU4NjliYzFmOWFmNWQxNzExNjM3ODk4Yjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAt
MTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5n
IHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24g
ZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBz
dGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBs
ZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdo
ZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdl
KCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8K
LSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2Vw
dGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsK
LSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVl
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJv
cihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21w
bGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRV
cFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQg
aGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2gg
YWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSog
Ci0JVGhlIG1ldGhvZCByZW1vdmVDaGlsZCByZW1vdmVzIHRoZSBjaGlsZCBub2RlIGluZGljYXRl
ZCBieSBvbGRDaGlsZCBmcm9tIHRoZSBsaXN0IAotCW9mIGNoaWxkcmVuLCBhbmQgcmV0dXJucyBp
dC4gCi0KLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBEb2N1bWVudEZyYWdtZW50IG5vZGUg
YXR0ZW1wdCB0byByZW1vdmUgYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUuCi0gICAgICAgIEFs
c28gYXR0ZW1wdCB0byByZW1vdmUgdGhlIGRvY3VtZW50IGZyYWdtZW50IG5vZGUgZnJvbSB0aGUg
RW50aXR5UmVmZXJlbmNlLiAgVmVyaWZ5IHRoYXQgYSAKLSAgICAgICAgTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSIChFbnRpdHlSZWZlcmVuY2Ugbm9kZSBpcyByZWFkLW9ubHkpIG9yIGEgTk9U
X0ZPVU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNo
aWxkMTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciByZW1vdmVk
RVJlZjsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlbW92ZWRDaGlsZDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBk
b2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVSZWYgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9j
RnJhZy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92ZWRDaGlsZCA9IGRvY0ZyYWcucmVt
b3ZlQ2hpbGQoZVJlZik7Ci0gICAgICByZW1vdmVkRVJlZiA9IGRvY0ZyYWcuZmlyc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0TnVsbCgibm9kZXJlbW92ZWNoaWxkMTIiLHJlbW92ZWRFUmVmKTsKLSAg
ICAKLSAgICAgIHRyeSB7Ci0gICAgICByZW1vdmVkQ2hpbGQgPSBlUmVmLnJlbW92ZUNoaWxkKGRv
Y0ZyYWcpOwotICAgICAgCi0gICAgICB9IGNhdGNoIChleCkgewotCQkgIGlmICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcpIHsgICAgICAKLSAgICAgICBzd2l0Y2goZXguY29kZSkgewot
ICAgICAgIGNhc2UgLyogTk9UX0ZPVU5EX0VSUiAqLyA4IDoKLSAgICAgICBicmVhazsKLSAgICAg
IGNhc2UgLyogTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSICovIDcgOgotICAgICAgIGJyZWFr
OwotICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgdGhyb3cgZXg7Ci0gICAgICAgICAgfQot
ICAgICAgIH0gZWxzZSB7IAotICAgICAgIHRocm93IGV4OwotICAgICAgICB9Ci0gICAgICAgICB9
Ci0gICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlbW92
ZWNoaWxkMTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzM2ZWQ5MmYwM2JhNTRhZWM4MjdkYjc4NGY2MDU2ZDkyMzQ5NDk0Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVtb3ZlY2hpbGQxMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTZlNTZhNmM2YTA2MzIwMDg2NTE1MGZkZTg4YzgzZjk0ZjUy
YTRhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMKLVN0YXR1
cwlmYWlsdXJlCi1NZXNzYWdlCXR4dE5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxk
MTMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxk
MTMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjODBmZmI0YTY1MmQ5MDJkYTJk
MmRmZjUxNzY4NjdmZTk2MmYzZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAg
ICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQot
ICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIs
IGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2Yg
Ci0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0v
LwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxl
dGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhl
Ci0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBy
ZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92
ZSB0aGUgZmlyc3QgY2hpbGQgCi0Jb2YgdGhpcyBub2RlIGFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00t
TGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5v
ZGVyZW1vdmVjaGlsZDEzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFs
aXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTMiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBy
ZW1vdmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAg
dHh0ID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJ0eHROb3ROdWxs
Iix0eHQpOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBy
ZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZCh0eHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICBub2RlcmVtb3ZlY2hpbGQxMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3MTMxN2E0NjNlMTllOTZkOWMxMjU0Njc5ZmI1NzVlN2I5ZmMw
NTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAg
IGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdl
dCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjM1YmY0ZGZkYjAwZTI1ZTA4MThi
MTZkMGQwY2FhNTg5NWY3OTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcGlOb3ROdWxsOiBhc3NlcnROb3ROdWxs
IGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2Q1YTE5
MzNlZTk3NjVhMjljNTc1YmNiNWYwZjU5ZGQxYWZlZWExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAg
IC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBA
cmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0
VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0
ZW1wdCB0byByZW1vdmUgaXRzIGxhc3QgUHJvY2Vzc2luZ0luc3RydWN0aW9uIAotCWNoaWxkIG5v
ZGUgYW5kIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24u
Ci0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0x
NzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxkMTQoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hp
bGQxNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHJlbW92ZWQ7
Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBlbnROYW1lOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYg
PSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICBwaSA9IGVSZWYubGFz
dENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJwaU5vdE51bGwiLHBpKTsKLQotCXsKLQkJ
c3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVtb3ZlZCA9IGVSZWYucmVt
b3ZlQ2hpbGQocGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7
Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hp
bGQxNCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDE0LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDg0ZjdkNzQ1ZWZkMjdjNDZlZDg1NzVmNjc3ZDgyZjA4NzY0MzZlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcz
ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFE
T0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4i
Ci0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgot
ICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgot
ICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsi
PgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQ
VUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJu
b3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwot
ICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8
IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29t
bWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1h
LWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFm
ZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpz
Ii8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5v
ZGVyZW1vdmVjaGlsZDE0LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4MDJlMGMyYmE4YmY4ZWNhNjFhODUyZjk1NmYwYzgxZDViYjhjOTIw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNQotU3RhdHVzCWZh
aWx1cmUKLU1lc3NhZ2UJZWxlbU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzYjNmN2NjOGUwODExYmI4MGIzZTdi
NGNhOTkwNDlkZDA5NWM3ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDD
gsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRz
IEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAot
Zm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAot
UmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OC
wq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIv
Y29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0
cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50
aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICBy
ZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBk
b2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAg
IH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4
KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
Ci0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0v
LyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwot
Ly8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVk
LAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0v
LyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZW1v
dmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBh
biBFbGVtZW50IGNoaWxkIAotCWFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlIgaXMgdGhyb3duLiAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1h
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0y
MDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlvbiBub2RlcmVtb3ZlY2hpbGQx
NSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRl
ciwgIm5vZGVyZW1vdmVjaGlsZDE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0g
ICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudE5hbWU7Ci0gICAg
ICB2YXIgcmVtb3ZlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwot
ICAgICAgZWxlbSA9IGVSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZWxl
bU5vdE51bGwiLGVsZW0pOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZChlbGVtKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTUoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE0ODYyN2E1YzExYmUyNjdlMGRjYTM0ZDA1
OGI4NGRiOTA1MmM1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxNS5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MTgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDlmODQxODhk
ZjFhMDFkOTRlMDNiYzUyNDc2NzUxYjMyOTEyMTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDE4Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTguanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMGI2NzJiYzQ4ZDlhN2M1NjA5YzY2ZjY4ZmI5YzBj
MWE5MjI0OGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAx
LTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZv
cm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBS
ZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3
YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdo
dC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRo
YXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9m
IHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQxOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGls
ZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYSBDREFUQVNl
Y3Rpb24gbm9kZSB3aXRoIAotCWEgRW50aXR5UmVmZXJlbmNlIGFuZCB2aWNlIHZlcnNhIHZlcmlm
eSB0aGUgZGF0YSBvZiB0aGUgcmVwbGFjZWQgbm9kZXMuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1
dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBu
b2RlcmVwbGFjZWNoaWxkMTgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRp
YWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMTgiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVudFJlZjsKLSAg
ICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciByZXBsYWNlZENEYXRhOwotICAgICAgdmFyIHJlcGxh
Y2VkRXJlZjsKLSAgICAgIHZhciBjZGF0YU5hbWU7Ci0gICAgICB2YXIgZXJlZk5hbWU7Ci0gICAg
ICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7
Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAg
ICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIHJlcGxhY2Vk
Q0RhdGEgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChlbnRSZWYsY2RhdGEpOwotICAgICAgY2RhdGFO
YW1lID0gcmVwbGFjZWRDRGF0YS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZXJlcGxhY2VjaGlsZDE4XzEiLCJDREFUQVNlY3Rpb24iLGNkYXRhTmFtZSk7Ci0gICAgICAgcmVw
bGFjZWRFcmVmID0gZG9jRnJhZy5yZXBsYWNlQ2hpbGQoY2RhdGEsZW50UmVmKTsKLSAgICAgIGVy
ZWZOYW1lID0gcmVwbGFjZWRFcmVmLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5v
ZGVyZXBsYWNlY2hpbGQxOF8yIiwiYWxwaGEiLGVyZWZOYW1lKTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQxOCgpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQxOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMTgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkNzY3YjllYWY4
NGUyYWNlZDMxY2E1OWNmYTM5MTQzNmQzYzJlM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hp
bGQxOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDE5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhOGEyZDM2MWU5MTA2ZDRkMWQ4MGU1MTJiY2RlYzU4MGIzYjBlNzQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5Ci1TdGF0dXMJU3VjY2Vzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQxOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMTkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiOWExN2RmOTdmNDNk
MDM1MmYzYmQ4YWQxYzVjOTM0MDhmMzViMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQxOS5qcworKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
CVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRv
IHJlcGxhY2UgYW4gRWxlbWVudCBub2RlIHdpdGggCi0JaXRzIEVudGl0eVJlZmVyZW5jZSBjaGls
ZCB2ZXJpZnkgdGhlIG5vZGVOYW1lIG9mIHRoZSByZXBsYWNlZCBub2RlLgotCi0qIEBhdXRob3Ig
SUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwot
ZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDE5KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDE5IikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBl
bnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBu
b2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBw
ZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICByZXBsYWNlZCA9IGRvY0ZyYWcucmVwbGFjZUNoaWxkKGVu
dFJlZixlbGVtKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAg
IGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE5IiwiZG9tMzpwIixub2RlTmFtZSk7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNo
aWxkMTkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzMjViMmNiM2IzYmU3MGVkNzk0YmUxZjAyMDMwYjM2ZDE5MzQ3M2U3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVwbGFjZWNoaWxkMTkuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxZGFmMmZlZjM1ZWRiMzczOTVmNDQ5NzNjODgxNTUy
MjZiYjdiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMgot
U3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmZDNmNDIzZjczNWYzZjFiMjVjYTVlNGNiMzYwODI1NjMwM2E3NDVhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJl
bmNlIG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGFuIEVudGl0eVJlZmVyZW5jZSBub2RlIHdpdGgg
Ci0JaXRzIEVsZW1lbnQgcGFyZW50LCB3aXRoIGl0c2VsZiBhbmQgdmljZSB2ZXJzYSB2ZXJpZnkg
aWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3Ig
SUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwot
ZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDIyIikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmTWFpbjsKLSAgICAgIHZh
ciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgdmFyIHJlcGxhY2VkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZk1haW4gPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgcmVwbGFjZWRDaGlsZCA9IGVudFJlZk1haW4ucmVwbGFjZUNoaWxkKGVs
ZW0sZW50UmVmKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0
eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlh
c3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMSIsc3VjY2Vzcyk7
Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBs
YWNlZENoaWxkID0gZW50UmVmTWFpbi5yZXBsYWNlQ2hpbGQoZW50UmVmLGVsZW0pOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nl
c3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkQ2hpbGQgPSBlbnRSZWZN
YWluLnJlcGxhY2VDaGlsZChlbnRSZWZNYWluLGVudFJlZik7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDIyKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YzMjU0ZTJjYWJhMzJiYjQwNTNkNzQ2NDlj
YzlmYTgzMDFhZWQwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIy
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDIyLmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQyMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxOGI3N2Iz
OGUzYmMxYzM3YWJhZjY2ZGNhZWFjMGQ5NGFlYjQ5ZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICsw
LDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMjMKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLmpzIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMzMWFmYzlkYzdlNTQwM2E4NWNmNDc1NGQ4NmJm
YzRlZDJlNmExOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkg
dGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIg
b2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4g
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNo
aWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhbiBF
bGVtZW50LCBUZXh0LAotCUNvbW1lbnQsIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgQ0RBVEFT
ZWN0aW9uIG5vZGVzIHdpdGggZWFjaCBvdGhlciBhbmQgaW4gZWFjaCBjYXNlCi0JdmVyaWZ5IGlm
IGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElC
TQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1
bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQyMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQyMyIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0eHQ7
Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIHBpOwotICAg
ICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFyIGFwcGVuZGVkQ2hp
bGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImRlbHRhIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAg
IGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAgY2RhdGEgPSBk
b2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIHBpID0gZG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBl
bmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxk
KHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAg
ICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFj
ZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGNkYXRhLGVsZW0pOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElP
Tl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChwaSxj
ZGF0YSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQg
PSBlbnRSZWYucmVwbGFjZUNoaWxkKGNvbW1lbnQscGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJ
dHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZCh0eHQsY29t
bWVudCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzQiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQg
PSBlbnRSZWYucmVwbGFjZUNoaWxkKGVsZW0sdHh0KTsKLSAgICAgICAgfQotCQljYXRjaChleCkg
ewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXgu
Y29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMjMoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNThhMWQyNTE2M2ZkNWEzZmJhYzdkMTAxNDkzZDRh
NTcxYWViMTdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMjMuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMw
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDlmODNlNzRiOTI2
NzMzMWMxNzAzYmQyOGQxNmVmYzIxZjQ2ZmIwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBA
QAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNzM1OGY5MzQ3MjYzYjgyN2E4ZTg4ODEzZTdhZTM3YzBi
NzYzMmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0y
MDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl
IG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3Jt
YXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVz
ZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2Fy
ZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAK
LQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQt
c29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0
IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0
ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzAiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0KLQlVc2luZyByZXBsYWNl
Q2hpbGQgb24gYW4gRWxlbWVudCBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhIG5ldyBFbGVtZW50
IGNoaWxkIG5vZGUgd2l0aCAKLQluZXcgY2hpbGQgbm9kZXMgYW5kIHZpY2UgdmVyc2EgYW5kIGlu
IGVhY2ggY2FzZSB2ZXJpZnkgdGhlIG5hbWUgb2YgdGhlIHJlcGxhY2VkIG5vZGUuCi0KLSogQGF1
dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcK
LSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzAoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzAiKSAh
PSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2
YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3RWxlbWVudDsKLSAgICAgIHZhciBuZXdUZXh0Owot
ICAgICAgdmFyIG5ld0NvbW1lbnQ7Ci0gICAgICB2YXIgbmV3UEk7Ci0gICAgICB2YXIgbmV3Q2Rh
dGE7Ci0gICAgICB2YXIgbmV3RVJlZjsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBu
b2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpodG1sIik7Ci0gICAg
ICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiLCJ4aHRtbDpoZWFkIik7Ci0gICAgICBuZXdFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1l
bnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1sOmJvZHkiKTsKLSAgICAg
IGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdFbGVtZW50KTsKLSAgICAgIG5ld1Rl
eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBw
YXJlbnQuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBuZXdDb21tZW50ID0gZG9jLmNyZWF0
ZUNvbW1lbnQoIkNvbW1lbnQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5k
Q2hpbGQobmV3Q29tbWVudCk7Ci0gICAgICBuZXdQSSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQu
YXBwZW5kQ2hpbGQobmV3UEkpOwotICAgICAgbmV3Q2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0
aW9uKCJDZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChu
ZXdDZGF0YSk7Ci0gICAgICBuZXdFUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVs
dGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3RVJlZik7
Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3RWxlbWVudCxvbGRDaGls
ZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8xIiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAg
ICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdFbGVtZW50KTsK
LSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZXJlcGxhY2VjaGlsZDMwXzIiLCJ4aHRtbDpib2R5Iixub2RlTmFtZSk7Ci0gICAgICAg
cmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld1RleHQsb2xkQ2hpbGQpOwotICAgICAg
bm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2Rl
cmVwbGFjZWNoaWxkMzBfMyIsInhodG1sOmhlYWQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNl
ZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3VGV4dCk7Ci0gICAgICBub2RlTmFt
ZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNl
Y2hpbGQzMF80IiwiI3RleHQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5y
ZXBsYWNlQ2hpbGQobmV3Q29tbWVudCxvbGRDaGlsZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxh
Y2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF81
IiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxh
Y2VDaGlsZChvbGRDaGlsZCxuZXdDb21tZW50KTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQu
bm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzYiLCIj
Y29tbWVudCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGls
ZChvbGRDaGlsZCxuZXdQSSk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwot
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF83IiwidGFyZ2V0Iixub2Rl
TmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5l
d0NkYXRhKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFz
c2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzgiLCIjY2RhdGEtc2VjdGlvbiIsbm9kZU5h
bWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdF
UmVmKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2Vy
dEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzkiLCJkZWx0YSIsbm9kZU5hbWUpOwotICAgICAg
IAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDMw
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDMwLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2RiNWNiYjEzM2ZhYWYyZWI0ZjEwNDNkMjFmYzQzNTA4YjdkYzdlMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0g
ICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJ
U1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAg
ICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBM
SUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwh
QVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21t
ZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEt
aW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9k
ZXJlcGxhY2VjaGlsZDMwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDIzM2Y5MjkzMzU4MmE3MDU0MjYxNWQxMjUwYTQ5MTBhNzQ5M2Qw
YTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMKLVN0YXR1
cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDMzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc0
YmU0NGQ0YjBhNzcxY2I3OTIwNDM2YzdhM2MyZDhhNjIxNjRiNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzIjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgZGVmYXVsdCBBdHRyIG5vZGUgdG8g
cmVwbGFjZSBpdHMgVGV4dCBDaGlsZCB3aXRoIGEgCi0JbmV3IEVudGl0eVJlZmVyZW5jZSBOb2Rl
IGFuZCB2ZXJpZnkgdGhlIHZhbHVlIG9mIHRoZSByZXBsYWNlZCBjaGlsZC4KLQotKiBAYXV0aG9y
IElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8K
LWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzMyIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZh
ciBlbGVtOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZh
ciBuZXdDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgbmV3
Q2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY2hpbGRM
aXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7Ci0gICAgICBlbGVtID0gY2hpbGRM
aXN0Lml0ZW0oMyk7Ci0gICAgICBwYXJlbnQgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoImRpciIp
OwotICAgICAgb2xkQ2hpbGQgPSBwYXJlbnQubGFzdENoaWxkOwotCi0gICAgICByZXBsYWNlZCA9
IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVl
ID0gcmVwbGFjZWQubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNl
Y2hpbGQzMyIsInJ0bCIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3OTkwYzE1ODA2NTU1ZWRlY2QxNWYz
MjEwMWE4Y2ZhMjQ2M2E2N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249
IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAi
LS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQi
IFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7
Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4
OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRU
TElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAg
ICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQg
IjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8
L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFU
QSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1s
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNk
Ij48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzMy5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzVl
ZTRkNTg2Y2YwMDk4NmM5MDFlZWQ0ZjE0Yzk0NzNiYzczZWJjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNGEzNWEwMWVhNGUzZThmYmE5YzA5MzIx
YTJmODA0ODgyZTViZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxh
Y2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcmVu
Y2UgQ2hpbGQgd2l0aCBhIAotCW5ldyBUZXh0IE5vZGUgYW5kIHZlcmlmeSB0aGUgdmFsdWUgb2Yg
dGhlIG5ldyBjaGlsZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNCgp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVyZXBsYWNlY2hpbGQzNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsK
LSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIHZh
ciByZXBsYWNlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMu
b3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
cGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0
ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQo
bmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVlID0gcGFyZW50LnZhbHVlOwotCi0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzNCIsIlRleHQiLG5vZGVWYWx1ZSk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFj
ZWNoaWxkMzQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzMDY5YmIwMzgwZDE1ZGNlMzVhY2E4NTBhNTgzNjJiNGQxYjZjMmI5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJub2RlcmVwbGFjZWNoaWxkMzQuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUxYzk4OGY2NGZjOTgzMjM1ODcyOGMxMDM3NWE3
Mjk2YTA3NzZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxYmFlODY3YTVlZjJiYjdkY2E5MWViNzI3ZjJkYzU1YzYwODExOWIzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgQXR0ciBub2Rl
LCByZXBsYWNlIGl0cyBuZXcgRW50aXR5UmVmZXJuZWNlIENoaWxkIHdpdGggYSAKLQluZXcgQXR0
ciBOb2RlIGFuZCB2ZXJpZnkgaWYgYSBISUVSQVJDSFlfUkVRVUVTVF9FUlIgaXMgdGhyb3duLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1
ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDM1KCkgewotICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGls
ZDM1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgcGFyZW50Owot
ICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVW
YWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVu
dCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFt
ZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hp
bGQob2xkQ2hpbGQpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0
dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICAK
LQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0g
cGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0
Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQn
ICYmIGV4LmNvZGUgPT0gMyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfSElFUkFSQ0hZX1JF
UVVFU1RfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNjcyMWNkOTRmMTVlMjZjZmU1YWNmODM1NDIzZmZk
NmQ2OTg4YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/
VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9E
VEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwh
RU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwh
RU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8
IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0g
ICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxu
czp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9Q
SXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElF
RD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNS5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTk5ZTAxNjExOWJj
YjkwNDEyNDkzYzcyZjEwZWFmMTg3M2M0NzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlYTIyNWJlZWYyZmEzOGVlYzk1ZTAwOGUxMmI2Nzk1NzZj
MGE0YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBv
biBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcm5lY2Ugbm9kZSB3
aXRoIGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5IGlmIGEgTk9UX0ZPVU5EX0VSUiBpcyB0
aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29y
ZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzYoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVw
bGFjZWNoaWxkMzYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBw
YXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0gICAgICB2
YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRy
aWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmci
KTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsK
LSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICAKLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gcGFy
ZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gOCk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX0ZPVU5EX0VSUiIs
c3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rl
cmVwbGFjZWNoaWxkMzYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjYWE4ODBiMDcyYTM1Nzg0MDFmYjFiZWVmZDdhMjRhNmFjMTg4MGM0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIg
Q0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRB
ICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElk
YXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEt
LSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48
dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9s
ZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1
MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFs
dGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjMWFhNWJmODg5ZDI1NjZhYTM1M2Iw
OWM0NDFhYTc3YTBiZjZhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhyb3dfV1JPTkdfRE9DVU1FTlRfRVJS
OiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRmZDAyNjQ0MTNkYjc2NmJiNGFmZjIwNjM0YTk4N2MzOTIxNzQ0ODkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNyI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgIHZhciBkb2MyUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2My
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2MyUmVmID0gdGhpcy5kb2MyOwotICAgICAg
fQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvYzJSZWYsICJkb2MyIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDIpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMikgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEg
bmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IFRleHQgbm9kZSB3aXRoIGEgCi0JbmV3IEVu
dGl0eVJlZmVyZW5jZSBOb2RlIGNyZWF0ZWQgYnkgYW5vdGhlciBkb2N1bWVudCBhbmQgdmVyaWZ5
IGlmIGEgCi0JV1JPTkdfRE9DVU1FTlRfRVJSIGlzIHJhaXNlZC4KLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0
aW9uIG5vZGVyZXBsYWNlY2hpbGQzNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzNyIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvYzI7Ci0gICAgICB2YXIgcGFyZW50Owot
ICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVW
YWx1ZTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotICAg
ICAgdmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYzIpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlzLmRvYzI7Ci0gICAgICB9Ci0gICAg
ICBkb2MyID0gbG9hZChkb2MyUmVmLCAiZG9jMiIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50
ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1l
c3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlVGV4dE5vZGUo
IlRleHQiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jMi5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRl
bHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxk
KTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAg
cmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA0KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19X
Uk9OR19ET0NVTUVOVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LnhodG1sIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy54aHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlkZGJkMjMzMTk5N2UzMzM4NWZhYTBm
ZjI3MzI5NDliZWZiYWY2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM3LmpzIi8+PHNj
cmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3Rh
cnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdp
dGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBh
biBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11d
Pjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1t
YTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
bmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25l
czwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAw
LDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1
NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcg
VGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRl
eHRjb250ZW50MTAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
NzYwOTM0ZmVjNGQ5NDc4NmFlMWJmNThmNWQ0NWE1OWIxYTkyYzU2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRl
bnQxMC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU3MWFlNzczOGEwYjI4
M2JjOTJjODdhZmQzYWM1MTM2MjliMzE1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNl
dHRleHRjb250ZW50MTAuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwg
dHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJl
ZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBzZXRUZXh0Q29udGVudCBoYXMgbm8gZWZmZWN0
IHdoZW4gdGhlIG5vZGUgaXMgZGVmaW5lZCB0byBiZSBudWxsLgotCQotCVVzaW5nIHNldFRleHRD
b250ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSwgYXR0ZW1wdCB0byBzZXQgaXRzIGNvbnRlbnQg
dG8gRUxFTUVOVC4KLQlSZXRyZWl2ZSB0aGUgdGV4dENvbnRlbnQgYW5kIHZlcmlmeSBpZiBpdCBp
cyB3YXMgc2V0IHRvIEVMRU1FTlQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0
ZXh0Y29udGVudDEwKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTAiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBj
b21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBw
aTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0g
PSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImRvbTM6
ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0ICIpOwotICAgICAg
Y29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwotICAgICAgZW50UmVmID0g
ZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRl
UHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRv
Yy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hp
bGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRS
ZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgZWxlbS50ZXh0
Q29udGVudCA9ICJFTEVNRU5UIjsKLQotICAgICAgdGV4dENvbnRlbnQgPSBlbGVtLnRleHRDb250
ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVzZXR0ZXh0Y29udGVudDEwIiwiRUxFTUVO
VCIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgbm9kZXNldHRleHRjb250ZW50MTAoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkZTc2MGYwZjBhMmI3NThlNmYyZWU4MGUz
MGM1YzlmNGE1NzQ1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50
MTAueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBb
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+
Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsi
PgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1
MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJ
U1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAg
ICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8
c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9z
cGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEg
I0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmJjMTQ3MDg4NmJmMDRlNGIwOTUyNjdmNjUzNDVlMDRiM2VhMzM2Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250
ZW50MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRj
b250ZW50MTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NDMxZjc5MjMxZjAw
YjI0YzU0ODA4YTk2OGMzOTM5ZTYzMWUyZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDExLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEiOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IERvY3VtZW50RnJhZ21lbnQg
bm9kZSBFbGVtZW50IGNoaWxkLCBhdHRlbXB0IHRvIHNldCBpdHMgY29udGVudCB0byAKLQlET0NV
TUVOVEZSQUdNRU5ULiAgUmV0cmVpdmUgdGhlIHRleHRDb250ZW50IGFuZCB2ZXJpZnkgaWYgaXQg
aXMgd2FzIHNldCB0byBET0NVTUVOVEZSQUdNRU5UCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhv
ciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1M
ZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9u
IG5vZGVzZXR0ZXh0Y29udGVudDExKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTEiKSAhPSBudWxsKSBy
ZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVsZW07
Ci0gICAgICB2YXIgZWxlbUNoaWxkOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjb21tZW50
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBwaTsKLSAg
ICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBk
b2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpwIik7Ci0gICAgICB0
eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNy
ZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNl
Y3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0
eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcu
YXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBlbGVtLnRleHRDb250ZW50ID0gIkRPQ1VNRU5URlJB
R01FTlQiOwotCi0gICAgICBlbGVtQ2hpbGQgPSBkb2NGcmFnLmxhc3RDaGlsZDsKLQotICAgICAg
dGV4dENvbnRlbnQgPSBlbGVtQ2hpbGQudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZWdldHRleHRjb250ZW50MTEiLCJET0NVTUVOVEZSQUdNRU5UIix0ZXh0Q29udGVudCk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dGV4
dGNvbnRlbnQxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0MmNiZDA0YWM5MWZkOThmNDAyMTM5NzQzMTk4NWRkZTFiODEzZmZkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS54aHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlM
RSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFs
cGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdh
bW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBl
cHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRp
ciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQ
SWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIv
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29udGVudDExLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTBmYmY0MmIyZTk2NzUw
ODNmMjE3YzE1ZmFkNzgyZGQ3ZmRkNDRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZjMzZmZTZiMTFlY2JlODFjNTYzNmRhYWVhODBi
NDU5YjcwYTg3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkg
MjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5z
dGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3Ig
SW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdo
dHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBT
b2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5
cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVS
SSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmll
ciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVy
biAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
c2V0dGV4dGNvbnRlbnQxMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCi0JCi0JVXNpbmcg
c2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUsIGF0dGVtcHQgdG8g
c2V0IGl0cyB2YWx1ZS4KLQlTaW5jZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIFJlYWRPbmx5
LCBjaGVjayBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiAgCi0JaXMgcmFpc2VkLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
dGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rlc2V0dGV4dGNvbnRlbnQxMigpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR0
ZXh0Y29udGVudDEyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9
IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgZW50UmVmLnRleHRDb250ZW50ID0gIk5BIjsK
LQotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUo
Im5vZGVzZXR0ZXh0Y29udGVudDEyIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR0ZXh0Y29udGVudDEyKCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250
ZW50MTIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0YmY5Njg3YTBlYjRk
ODczOTQyNzMzNTVmMDczNDNkMWYxYmM5MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDEyLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAot
ICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEt
c3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBi
ZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBk
ZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRp
b24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUi
PgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5z
OmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAg
ICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jv
bnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFF
TlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVs
ZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFu
IHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAx
Li0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAg
IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0g
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBo
Y19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNo
YXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXNldHRleHRjb250
ZW50MTIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBD
REFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtD
REFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRv
IGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7
IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1Q
MDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNv
bm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8v
d3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1
c2VyZGF0YTA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY4ZDdhZjJmZjk4M2UxNzMxZTA2ZGFkYjUzZjQ4MDJmZGRlMmY2ZWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4Ci1TdGF0dXMJZXJyb3IKLU1lc3Nh
Z2UJTGluZSAxMTM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5YjZmNTg2M2JmNDY3OGFlNTBhZTk1ZDg4NmQ2NmUwYzhlMzU0ZGQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4IjsKLSAgIH0K
LQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8K
LS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJl
Zm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUg
YXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAg
ZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAg
ICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5
Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0v
LwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcn
OwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVp
bGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRl
Q29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAg
IAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNo
SW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxv
YWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91
cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVz
IGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRv
IGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHNldFVzZXJEYXRhIG9uIGEgQ0RBVEFTZWN0aW9u
IGFuZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZSB0byBzZXQgdGhlaXIgCi0JVXNlckRhdGEgdG8gdGhp
cyBEb2N1bWVudCBhbmQgRG9jdW1lbnRFbGVtZW50IG5vZGUuICBWZXJpZnkgaWYgdGhlIFVzZXJE
YXRhIAotCW9iamVjdCB0aGF0IHdhcyBzZXQgZm9yIGJvdGggbm9kZXMgaXMgZGlmZmVyZW50Lgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
c2V0VXNlckRhdGEKLSovCi1mdW5jdGlvbiBub2Rlc2V0dXNlcmRhdGEwOCgpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR1c2Vy
ZGF0YTA4IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRWxl
bTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY0RhdGE7Ci0gICAgICB2YXIgZWxlbUxp
c3Q7Ci0gICAgICB2YXIgZWxlbU5hbWU7Ci0gICAgICB2YXIgdXNlckRhdGE7Ci0gICAgICB2YXIg
cmV0dXJuZWQxOwotICAgICAgdmFyIHJldHVybmVkMjsKLSAgICAgIHZhciBzdWNjZXNzOwotICAg
ICAgdmFyIHJldFVzZXJEYXRhOwotICAgICAgdmFyIG51bGxIYW5kbGVyID0gbnVsbDsKLQotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0Vs
ZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY0RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0
aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIGlmIChudWxsID09IG51bGxIYW5kbGVyKSB7Ci0g
ICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51bGwpOwotICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51bGxIYW5k
bGVyLmhhbmRsZSk7Ci0gICAgICB9Ci0gICAgICAgaWYgKG51bGwgPT0gbnVsbEhhbmRsZXIpIHsK
LSAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxlbSwgbnVsbCk7Ci0gICAg
ICB9IGVsc2UgewotICAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxlbSwg
bnVsbEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAgICByZXR1cm5lZDEgPSBlbnRSZWYu
Z2V0VXNlckRhdGEoIktleTEiKTsKLSAgICAgIHJldHVybmVkMiA9IGNEYXRhLmdldFVzZXJEYXRh
KCJLZXkyIik7Ci0gICAgICBzdWNjZXNzID0gcmV0dXJuZWQxLmlzRXF1YWxOb2RlKHJldHVybmVk
Mik7Ci0gICAgICBhc3NlcnRGYWxzZSgibm9kZXNldHVzZXJkYXRhMDgiLHN1Y2Nlc3MpOwotCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dXNlcmRhdGEwOCgpOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1
c2VyZGF0YTA4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR1c2VyZGF0YTA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjQ2NDA2
OTZlNmY5MjQzYTYwODFmNzkyMjE3OGRjMWViNmFhZmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dXNlcmRhdGEwOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR1c2Vy
ZGF0YTA4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJs
b2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEg
Q0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFb
Q0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0
byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxz
dXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVN
UDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJz
b25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1
NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDov
L3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGlj
LiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTI1YTM4MDlkNzkwMWZhMDQ0NmM3Nzc3YjRlYWFjYmQ0ZjRlZTEx
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2
Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGQxOGYyNzYxMjQzNTE0YWJhMTZmYmY0MzJmY2VjOGFmZDM3Y2QwMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29y
bGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVj
aG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBh
bmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4g
VGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vu
c2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2Fy
ZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRp
ZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAg
ICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0
ZXh0MDYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0
aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUpOwotICAgICAgIHNldEltcGxlbWVu
dGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIiwgdHJ1ZSk7Ci0KLSAgICAg
IGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwg
ImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0g
ICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwg
ZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAK
LS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8v
Ci0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0
ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUK
LS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRo
b2QgcmVwbGFjZVdob2xlVGV4dCBzdWJzdGl0dXRlcyB0aGUgYSBzcGVjaWZpZWQgdGV4dCBmb3Ig
dGhlIHRleHQgb2YgCi0JdGhlIGN1cnJlbnQgbm9kZSBhbmQgYWxsIGxvZ2ljYWxseS1hZGphY2Vu
dCB0ZXh0IG5vZGVzLiAgVGhpcyBtZXRob2QgcmFpc2VzCi0JYSBOT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlIgaWYgb25lIG9mIHRoZSBUZXh0IG5vZGVzIGJlaW5nIHJlcGxhY2VkIGlzIHJlYWRv
bmx5LgotCQotCUludm9rZSByZXBsYWNlV2hvbGVUZXh0IG9uIGFuIGV4aXN0aW5nIHRleHQgbm9k
ZSB3aXRoIG5ld2x5IGNyZWF0ZWQgdGV4dCBhbmQgRW50aXR5cmVmZXJlbmNlCi0Jbm9kZXMgKHdo
b3NlIHJlcGxhY2VtZW50IHRleHQgaXMgYSBjaGFyYWN0ZXIgZW50aXR5IHJlZmVyZW5jZSkgYXBw
ZW5kZWQgYXMgY2hpbGRyZW4gb2YgaXRzIHBhcmVudCBlbGVtZW50IG5vZGUuICAKLQlXaGVyZSB0
aGUgbm9kZXMgdG8gYmUgcmVtb3ZlZCBhcmUgcmVhZC1vbmx5IGRlc2NlbmRhbnRzIG9mIGFuIEVu
dGl0eVJlZmVyZW5jZSwgdGhlIEVudGl0eVJlZmVyZW5jZSAKLSAgICAgICAgbXVzdCBiZSByZW1v
dmVkIGluc3RlYWQgb2YgdGhlIHJlYWQtb25seSBub2Rlcy4gT25seSBpZiBhbnkgRW50aXR5UmVm
ZXJlbmNlIHRvIGJlIHJlbW92ZWQgaGFzIAotICAgICAgICBkZXNjZW5kYW50cyB0aGF0IGFyZSBu
b3QgRW50aXR5UmVmZXJlbmNlLCBUZXh0LCBvciBDREFUQVNlY3Rpb24gbm9kZXMsIHRoZSByZXBs
YWNlV2hvbGVUZXh0IAotICAgICAgICBtZXRob2QgbXVzdCBmYWlsLCByYWlzaW5nIGEgTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSLiBWZXJpZnkgdGhhdCB0aGUgbWV0aG9kIGRvZXMgbm90IHJh
aXNlCi0gICAgICAgIGFuIGV4Y2VwdGlvbiBhbmQgdmVyaWZ5IHRoZSBjb250ZW50IG9mIHRoZSBy
ZXR1cm5lZCB0ZXh0IG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGlt
YQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUt
MjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qLwotZnVuY3Rpb24gdGV4dHJl
cGxhY2V3aG9sZXRleHQwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlh
bGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDYiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAgICAgIHZhciBlbGVtZW50
U3Ryb25nOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIGVyZWZOb2RlOwotICAgICAg
dmFyIHJlcGxhY2VkVGV4dDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIG5v
ZGVWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3Ryb25nIik7Ci0g
ICAgICBlbGVtZW50U3Ryb25nID0gaXRlbUxpc3QuaXRlbSgwKTsKLSAgICAgIHRleHROb2RlID0g
ZG9jLmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAgICAgZXJlZk5vZGUgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVu
dFN0cm9uZy5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bWVudFN0cm9uZy5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICB0ZXh0Tm9kZSA9IGVsZW1l
bnRTdHJvbmcuZmlyc3RDaGlsZDsKLQotICAgICAgcmVwbGFjZWRUZXh0ID0gdGV4dE5vZGUucmVw
bGFjZVdob2xlVGV4dCgiTmV3IFRleHQgYW5kIENkYXRhIik7Ci0gICAgICBub2RlVmFsdWUgPSB0
ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygidGV4dHJlcGxhY2V3aG9s
ZXRleHQwNiIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQot
Ci0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIHRleHRyZXBsYWNld2hvbGV0ZXh0MDYoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDc5NzBiNjBiMTA5MDhhMGM3OWZkNTdjODEzOWJkOTE4YzM3MWVjMmIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRz
Ci08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51
bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rp
b24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZl
bnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRh
dmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwv
c3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4K
LSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lh
bGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA3NWVjYmQwOGU2ODZmNjlm
YWZlNGE2MzdhYzk2NTYyMGEyZjQ5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxh
Y2V3aG9sZXRleHQwNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90
ZXh0cmVwbGFjZXdob2xldGV4dDA3Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcuanMgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU2NGQzMmRkMzEzMjlkNjdhOTkxYTc5
MTQyMTAwZjAwMWYzZWIwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9s
ZXRleHQwNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
ICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LUFwcGVuZCBhbiBlbnRpdHkgcmVmZXJlbmNlIGFuZCBhIHRleHQgbm9kZSBhZnRlciB0byB0aGUg
Y29udGVudCBvZiB0aGUKLWZpcnN0IHN0cm9uZyBlbGVtZW50LiAgVGhlbiBjYWxsIHJlcGxhY2VX
aG9sZVRleHQgb24gaW5pdGlhbCBjb250ZW50Ci1vZiB0aGF0IGVsZW1lbnQuICBTaW5jZSB0aGUg
ZW50aXR5IHJlZmVyZW5jZSBkb2VzIG5vdCBjb250YWluIGFueSAKLWxvZ2ljYWxseS1hZGphY2Vu
dCB0ZXh0IGNvbnRlbnQsIG9ubHkgdGhlIGluaXRpYWwgdGV4dCBlbGVtZW50IHNob3VsZAotYmUg
cmVwbGFjZWQuIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQGF1
dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTQyNQotKi8K
LWZ1bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0ZXh0cmVwbGFjZXdob2xldGV4dDA3
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgaXRlbUxpc3Q7Ci0g
ICAgICB2YXIgZWxlbWVudE5hbWU7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgZXJl
Zk5vZGU7Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7
Ci0gICAgICB2YXIgbm9kZTsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgbm9kZVR5
cGU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgaXRlbUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0cm9uZyIpOwotICAgICAg
ZWxlbWVudE5hbWUgPSBpdGVtTGlzdC5pdGVtKDApOwotICAgICAgZXJlZk5vZGUgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICB0ZXh0Tm9kZSA9IGRvYy5jcmVhdGVU
ZXh0Tm9kZSgiTmV3IFRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtZW50TmFtZS5h
cHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVudE5hbWUu
YXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgdGV4dE5vZGUgPSBlbGVtZW50TmFtZS5maXJz
dENoaWxkOwotCi0gICAgICByZXBsYWNlZFRleHQgPSB0ZXh0Tm9kZS5yZXBsYWNlV2hvbGVUZXh0
KCJOZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAgIHRleHROb2RlID0gZWxlbWVudE5hbWUuZmly
c3RDaGlsZDsKLQotICAgICAgYXNzZXJ0U2FtZSgicmV0dmFsX3NhbWUiLHRleHROb2RlLHJlcGxh
Y2VkVGV4dCk7Ci1ub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2Vy
dEVxdWFscygibm9kZVZhbHVlU2FtZSIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsK
LSAgICAgICBub2RlID0gdGV4dE5vZGUubmV4dFNpYmxpbmc7Ci0KLSAgICAgIGFzc2VydE5vdE51
bGwoInNlY29uZENoaWxkTm90TnVsbCIsbm9kZSk7Ci1ub2RlVHlwZSA9IG5vZGUubm9kZVR5cGU7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygic2Vjb25kQ2hpbGRJc0VudFJlZiIsNSxub2RlVHlwZSk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICB0ZXh0cmVwbGFj
ZXdob2xldGV4dDA3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZDI5NzdiYTE4OGFhMWIxMzg4NjZlZGFiMzU1NWI3OTdjMjQx
NzgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9U
RVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFF
TlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwh
RU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAg
ICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5z
OnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJ
dGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVE
PgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3
dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2Nh
dGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0idGV4dHJlcGxhY2V3aG9sZXRleHQwNy5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3
aG9sZXRleHQwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0
NTFhNDY2YjY0MzFhMjRkNmI3YTQ5MzJhNmRjZDMxNDQ1ZTY0MmUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOAotU3RhdHVzCWZhaWx1cmUKLU1l
c3NhZ2UJdGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBhc3NlcnRUcnVlIGZhaWxl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBs
YWNld2hvbGV0ZXh0MDguanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4
dHJlcGxhY2V3aG9sZXRleHQwOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA4
NTRiMzBmMmZmYTc0ZDczYTcxNGFmZjdkYzdiZDMwYTA1ODljMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNiAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1BcHBlbmRzIGFuIGVudGl0eSByZWZlcmVuY2UgY29udGFpbmluZyB0
ZXh0IGFuZCBhbiBlbGVtZW50IHRvIGFuIGV4aXN0aW5nCi10ZXh0IG5vZGUsIHRoZW4gY2FsbHMg
VGV4dC5yZXBsYWNlV2hvbGVUZXh0IG9uIHRoZSBleGlzdGluZyB0ZXh0IG5vZGUuCi1BIE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUiBzaG91bGQgYmUgdGhyb3duLgotCi0qIEBhdXRob3IgQ3Vy
dCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwt
My1Db3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdob2xlVGV4dAotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD00MjUKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTQwCi0qLwotZnVuY3Rp
b24gdGV4dHJlcGxhY2V3aG9sZXRleHQwOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDgiKSAhPSBu
dWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAgICAgIHZh
ciBwOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBub2RlOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0g
bG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRF
bGVtZW50c0J5VGFnTmFtZSgicCIpOwotICAgICAgcCA9IGl0ZW1MaXN0Lml0ZW0oMCk7Ci0gICAg
ICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQyIik7Ci0gICAgICBub2Rl
ID0gcC5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgbm9kZSA9IHAuZmlyc3RDaGlsZDsKLQot
ICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBub2Rl
ID0gbm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJ5byIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4Lnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmFlOTk2OWFmOGM2ZDEwMjM0ZmEw
MDM2MmQ3ODUzZTY5N2QwZDFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdo
b2xldGV4dDA4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWwgWwotPCFFTlRJVFkgZW50MSAnZm9vJz4KLTwhRU5USVRZIGVudDIgJ2Zvbzxici8+Jz4K
LTwhRUxFTUVOVCBodG1sIChoZWFkLCBib2R5KT4KLTwhQVRUTElTVCBodG1sIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotPCFFTEVNRU5UIGhlYWQgKHRpdGxlLHNjcmlwdCopPgotPCFFTEVNRU5UIHNj
cmlwdCAoI1BDREFUQSk+Ci08IUFUVExJU1Qgc2NyaXB0IAotICAgICBzcmMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgdHlwZSBDREFUQSAjSU1QTElFRAotICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVE
PgotPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KLTwhRUxFTUVOVCBib2R5IChwKT4KLTwhQVRU
TElTVCBib2R5IG9ubG9hZCBDREFUQSAjSU1QTElFRD4KLTwhRUxFTUVOVCBwICgjUENEQVRBfGJy
KSo+Ci08IUVMRU1FTlQgYnIgRU1QVFk+Ci1dPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPgotPGhlYWQ+Ci08dGl0bGU+cmVwbGFjZVdob2xlVGV4dCBzYW1wbGU8
L3RpdGxlPgotPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nc2VsZnhodG1sLmpz
Jz48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9J1VURi04JyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
IHNyYz0ndGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyc+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08
L3NjcmlwdD48L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLTxwPmJhcjwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vu
dGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFjM2Q5Y2JkZjcwMGU2OTZiNmEw
NzQ4NTBjNjI2YzQzODYzNjc5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHkt
ZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1U
ZXN0IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIGFsd2F5cyB0cmVhdGVk
IHJlYWRvbmx5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHhtbERvYzIu
YWRvcHROb2RlKGVudGl0eVJlZmVyZW5jZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVu
Y2Uub3duZXJEb2N1bWVudCBpcyB4bWxEb2MKLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1
ZSA9ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSBpcyBu
dWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5hbWVzcGFjZUVycm9yOiBET00gRXhjZXB0aW9uIDE0LgotUEFTUyBlbnRpdHlSZWZl
cmVuY2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLnRleHRDb250ZW50ID0g
J2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA3LgotRkFJTCBlbnRpdHlSZWZlcmVuY2UudGV4dENvbnRlbnQgc2hvdWxk
IGJlID4uIFdhcyAuCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBiZSAx
LiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24g
Ny4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIGlzIGNoaWxkcmVuQmVm
b3JlRmFpbGVkQXBwZW5kCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBi
ZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmluc2VydEJlZm9yZSh0ZXh0LCBlbnRp
dHlSZWZlcmVuY2UuZmlyc3RDaGlsZCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uu
Y2hpbGROb2Rlcy5sZW5ndGggaXMgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2Vw
dGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZiMTY0MWJlZDQ0NzMw
NzBmYmMyZTlmMzQ5YzE5Y2I4MWQzZThmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVh
ZG9ubHktZXhjZXB0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlYWRvbmx5
LWV4Y2VwdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1Q
TEFURS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10
ZXN0cy9URU1QTEFURS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmVlZDkz
YTVlMDZkODg0MTI4ZGYzYjM0ZGI1NDJkODUwNzFlMzVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVy
ZW5jZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICsw
LDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9IllPVVJfSlNfRklM
RV9IRVJFIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhj
ZXB0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQt
dGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWYyNDY1N2Q4MmRiM2U4YTdmYmJlNDg3N2QzZDNkNjNiMTA5ZDQ3Ny4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9F
bnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdCB0byBtYWtlIHN1cmUg
RW50aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBhbHdheXMgdHJlYXRlZCByZWFkb25seSIpCi0KLXZh
ciB4bWxEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7Ci12YXIgeG1sRG9jMiA9IGRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZhciBlbnRpdHlSZWZlcmVuY2UgPSB4bWxEb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotCi1zaG91bGRUaHJvdygieG1sRG9jMi5hZG9w
dE5vZGUoZW50aXR5UmVmZXJlbmNlKSIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5vd25l
ckRvY3VtZW50IiwgInhtbERvYyIpCi0KLS8vIG5vZGVWYWx1ZSBpcyBkZWZpbmVkIHRvIGJlIG51
bGwgZm9yIEVudGl0eSBSZWZlcmVuY2Ugbm9kZXMsIGFuZCB0aHVzIHNob3VsZCBzaWxlbnRseSBm
YWlsIHRvIG1vZGlmeQotLy8gU3BlYyBpcyBhbWJpZ2lvdXMgYXMgdG8gaWYgd2Ugc2hvdWxkIHRo
cm93IGhlcmUgb3Igbm90LiAgSSd2ZSByZXF1ZXN0ZWQgY2xhcmlmaWNhdGlvbjoKLS8vIGh0dHA6
Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAwOEphbk1hci8wMDA5Lmh0
bWwKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlID0gJ2ZvbyciKTsKLXNo
b3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQotc2hvdWxkVGhy
b3coImVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJl
ZmVyZW5jZS5wcmVmaXgiLCAibnVsbCIpOwotCi1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNl
LnRleHRDb250ZW50ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UudGV4dENv
bnRlbnQiLCAiJz4nIik7Ci0KLXZhciBjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCA9IGVudGl0
eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3VsZEJlKCJjaGlsZHJlbkJlZm9yZUZh
aWxlZEFwcGVuZCIsICIxIik7Ci12YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJG
QUlMIik7Ci1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIik7
Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIiwgImNoaWxkcmVu
QmVmb3JlRmFpbGVkQXBwZW5kIik7Ci0KLWNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kID0gZW50
aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hvdWxkQmUoImNoaWxkcmVuQmVmb3Jl
RmFpbGVkQXBwZW5kIiwgIjEiKTsKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2UuaW5zZXJ0
QmVmb3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENoaWxkKSIpOwotc2hvdWxkQmUoImVu
dGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCIsICJjaGlsZHJlbkJlZm9yZUZhaWxlZEFw
cGVuZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFsLXZh
bHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFs
dWVzLWV4cGVjdGVkLnR4dAppbmRleCAyNmYwZWMyYTNkZWJmZTdhN2VkZWIwOGUyZDEwMWE3NDE1
ZGNkZmI1Li4xYzk4MWZiM2I1ZDg5MjdkNWE4NDMzOGYzNzEyNDUzYTYwY2U4MWYxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVk
LnR4dApAQCAtMTEzLDEyICsxMTMsNiBAQCBQQVNTIGVsZW1lbnQubmFtZXNwYWNlVVJJIGlzICdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwogUEFTUyBlbGVtZW50LnByZWZpeCBpcyAnaHRt
bCcKIFBBU1MgZWxlbWVudC5ub2RlVmFsdWUgaXMgbnVsbAogUEFTUyBlbGVtZW50LmF0dHJpYnV0
ZXMudG9TdHJpbmcoKSBpcyAnW29iamVjdCBOYW1lZE5vZGVNYXBdJwotUEFTUyBkb2N1bWVudC5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoJ2d0JykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBw
b3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZU5h
bWUgaXMgJ2d0JwotUEFTUyBlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIGlzIG51bGwKLVBBU1Mg
ZW50aXR5UmVmZXJlbmNlLm5hbWVzcGFjZVVSSSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5j
ZS5wcmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIGlzIG51bGwK
IFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5vZGVOYW1lIGlzICd4bWwtc3R5bGVzaGVldCcK
IFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLmxvY2FsTmFtZSBpcyBudWxsCiBQQVNTIHByb2Nl
c3NpbmdJbnN0cnVjdGlvbi5uYW1lc3BhY2VVUkkgaXMgbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1ZXMuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwppbmRl
eCA3MzFhODA2MzkwODY5OGI0Njk1YjI4YzM2Yjc3M2E3ZGQxYTMwMzU0Li45YjEyYTk3OTAxYzAz
OTQzMjMzMmQzM2RmY2FkYzk4MjdmYjZhYWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwpAQCAtMTU2LDE2
ICsxNTYsNiBAQCBzaG91bGRCZSgiZWxlbWVudC5wcmVmaXgiLCAiJ2h0bWwnIik7CiBzaG91bGRC
ZSgiZWxlbWVudC5ub2RlVmFsdWUiLCAibnVsbCIpOwogc2hvdWxkQmUoImVsZW1lbnQuYXR0cmli
dXRlcy50b1N0cmluZygpIiwgIidbb2JqZWN0IE5hbWVkTm9kZU1hcF0nIik7CiAKLS8vIE5vdCBw
b3NzaWJsZSB0byBjcmVhdGUgRW50aXR5IG5vZGVzIHZpYSB0aGUgRE9NLCBXZWJLaXQgZG9lc24n
dCBjcmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKLQotc2hvdWxkVGhyb3coImRvY3VtZW50LmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgnZ3QnKSIpOwotdmFyIGVudGl0eVJlZmVyZW5jZSA9IHhtbERvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5v
ZGVOYW1lIiwgIidndCciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIiwg
Im51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubmFtZXNwYWNlVVJJIiwgIm51bGwi
KTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UucHJlZml4IiwgIm51bGwiKTsKLXNob3VsZEJl
KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQogLy8gTm90IHBvc3NpYmxl
IHRvIGNyZWF0ZSBOb3RhdGlvbiBub2RlcyB2aWEgdGhlIERPTSwgV2ViS2l0IGRvZXNuJ3QgY3Jl
YXRlIHRoZW0gZnJvbSBwYXJzaW5nCiAKIHZhciBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSBkb2N1
bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3htbC1zdHlsZXNoZWV0JywgJ3R5cGU9
XCJ0ZXh0L3hzbFwiIGhyZWY9XCJtaXNzaW5nLnhzbFwiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
CmluZGV4IDc3MTNmYzljZjQ4N2Y2OTc5ODE4NzQyMmUxMjcxYWE4NjJiZTYyNTcuLjc0N2NkN2U2
MjU5Y2RkY2EwYmUyNWNlZTRiNWNjMmEwMWY3MGNmMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
CkBAIC0zMyw4ICszMyw2IEBAIFBBU1M6IGNhbkdldCgnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJl
ICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0RvY3VtZW50VHlwZScpIHNob3VsZCBiZSAn
dHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFbGVtZW50Jykgc2hvdWxkIGJlICd0cnVlJyBh
bmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0VsZW1lbnQnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4K
LVBBU1M6IGNhbkdldCgnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMu
Ci1QQVNTOiBjYW5TZXQoJ0VudGl0eVJlZmVyZW5jZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlz
LgogUEFTUzogY2FuR2V0KCdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBB
U1M6IGNhblNldCgnRXZhbEVycm9yJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBj
YW5HZXQoJ0V2ZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggZmZmNWM0
YWQwODE0YWI5YzFjYzA0NmFmZWJiMThjOWQ3OGJjNjc0MC4uNDQzMTZhYzc4ZjEzODc4MDQ5MGU0
ZTU2MTJhYjJhZDhmYjdlMDllYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbApAQCAtODQsNyArODQsNiBAQCB2YXIgd2luZG93
UmVhZFdyaXRlUHJvcGVydGllcyA9IFsKICAgICAiRG9jdW1lbnRGcmFnbWVudCIsIAogICAgICJE
b2N1bWVudFR5cGUiLCAKICAgICAiRWxlbWVudCIsIAotICAgICJFbnRpdHlSZWZlcmVuY2UiLCAK
ICAgICAiRXZhbEVycm9yIiwgCiAgICAgIkV2ZW50IiwgCiAgICAgIkhUTUxBbmNob3JFbGVtZW50
IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dp
bmRvdy1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNl
cy93aW5kb3ctcHJvcGVydGllcy5qcwppbmRleCBmOWM3MDkyOTI5Mjk4Yzc2Zjc5Y2U1ZjZhNmFl
NTJmYzljZWMwZGY1Li45ZDQzMGVjZWIyZWFjN2E1NzE4YjM3ZmQ2M2RlN2NlMjRhYmExYjNlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1w
cm9wZXJ0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMv
d2luZG93LXByb3BlcnRpZXMuanMKQEAgLTU2LDcgKzU2LDYgQEAgdmFyIHByb3BlcnR5SW5mbyA9
IFsKICAgICBbIkRvY3VtZW50RnJhZ21lbnQiLCAib2JqZWN0Il0sCiAgICAgWyJEb2N1bWVudFR5
cGUiLCAib2JqZWN0Il0sCiAgICAgWyJFbGVtZW50IiwgIm9iamVjdCJdLAotICAgIFsiRW50aXR5
UmVmZXJlbmNlIiwgIm9iamVjdCJdLAogICAgIFsiRXZlbnQiLCAib2JqZWN0Il0sCiAgICAgWyJF
dmVudEV4Y2VwdGlvbiIsICJvYmplY3QiXSwKICAgICBbIkhUTUxBbmNob3JFbGVtZW50IiwgIm9i
amVjdCJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1s
b29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCA2N2QzMDJjZWVk
NTIwNTYzZGZlMWRiZjdmNzkwMGQyMGZkODQ4OGIwLi4xMTIyMTRhNzdiZjUzZjBjMTJmZjNhYmEz
ZTcwN2VmMTMwN2U2YWI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAt
MTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1
bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9
PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydF
bGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3
aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1Q
QVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29u
c3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmpl
Y3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQn
XSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50
J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVu
dEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0
cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKaW5kZXggMzAyYTA5Yjg2YTVi
ZjJlNzk5ZDI0YzhlNjllMTMwN2UxYTRkMjZkMS4uYWJmNjdhZDJlOWFmNjE4Y2FmODU3NzcwYmEw
OTExNDRhMTcyNDRhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dApAQCAt
OTYsOCArOTYsNiBAQCBQQVNTOiBDb21tZW50IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzog
Q0RBVEFTZWN0aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogRG9jdW1lbnRUeXBlIHN1
Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
Ci1QQVNTOiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1QQVNTOiBFbnRpdHlSZWZlcmVu
Y2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gc3Vj
Y2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRG9jdW1lbnQgc3VjY2Vzc2Z1bGx5IHNoYWRv
d2VkCiBQQVNTOiBIVE1MRWxlbWVudCBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2lu
Zy5odG1sCmluZGV4IDliNDZlYWNlMDEzNzBjNTUyNjJkMGVmNjRkNjgxYWU1NmVhYmMwMmMuLmNi
NzRmYjA0YTA3MjUyZjEwYjVkYzYzZjljNjA0YjE1MTkwYzVkOWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcu
aHRtbApAQCAtMjE1LDEwICsyMTUsNiBAQAogICAgICAgICBsb2coRG9jdW1lbnRUeXBlID09IDEg
PyAiUEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRG9j
dW1lbnRUeXBlIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIE5vdGF0aW9uID0gMTsK
ICAgICAgICAgbG9nKE5vdGF0aW9uID09IDEgPyAiUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5
IHNoYWRvd2VkIiA6ICJGQUlMOiBOb3RhdGlvbiB3YXMgbm90IHNoYWRvd2VkIik7Ci0gICAgICAg
IHZhciBFbnRpdHkgPSAxOwotICAgICAgICBsb2coRW50aXR5ID09IDEgPyAiUEFTUzogRW50aXR5
IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRW50aXR5IHdhcyBub3Qgc2hhZG93ZWQi
KTsKLSAgICAgICAgdmFyIEVudGl0eVJlZmVyZW5jZSA9IDE7Ci0gICAgICAgIGxvZyhFbnRpdHlS
ZWZlcmVuY2UgPT0gMSA/ICJQQVNTOiBFbnRpdHlSZWZlcmVuY2Ugc3VjY2Vzc2Z1bGx5IHNoYWRv
d2VkIiA6ICJGQUlMOiBFbnRpdHlSZWZlcmVuY2Ugd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAg
ICB2YXIgUHJvY2Vzc2luZ0luc3RydWN0aW9uID0gMTsKICAgICAgICAgbG9nKFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiA9PSAxID8gIlBBU1M6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBzdWNjZXNzZnVs
bHkgc2hhZG93ZWQiIDogIkZBSUw6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiB3YXMgbm90IHNoYWRv
d2VkIik7CiAgICAgICAgIHZhciBIVE1MRG9jdW1lbnQgPSAxOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRleCA0YTE4YWRmN2Jh
ZjY2OWM3NjFkNTE5N2IxMzRkYTBiZmVlODcyZTg2Li4zN2MzNTQxOTM4ZjExMDdkNjZjYzkzMTUw
YzFiMTQzNjVmNWVhOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29u
c3RydWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29u
c3RydWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDYgQEAgUEFTUyBUcnlBbGxvY2F0ZSgn
Q2hhcmFjdGVyRGF0YScpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdDREFUQVNl
Y3Rpb24nKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRG9jdW1lbnRUeXBlJykg
aXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0VsZW1lbnQnKSBpcyAnZXhjZXB0aW9u
JwotUEFTUyBUcnlBbGxvY2F0ZSgnRW50aXR5UmVmZXJlbmNlJykgaXMgJ2V4Y2VwdGlvbicKIFBB
U1MgVHJ5QWxsb2NhdGUoJ0V2ZW50VGFyZ2V0JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxs
b2NhdGUoJ0hUTUxEb2N1bWVudCcpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdO
b2RlJykgaXMgJ2V4Y2VwdGlvbicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Rv
bS1jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3Rv
cnMuaHRtbAppbmRleCBmMjQ5OWRjMDQ2NTM3NzM3NmZhODg2YjJjYmIzYmQwYTlkODZlNDIxLi43
OTUzYjYxYTI1ZDIxMDczN2JiY2Y2YTQwODE2ZTFhZmM1MGNkYmUwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCkBAIC0xOCw3ICsxOCw2IEBAIHZhciBvYmpl
Y3RzX2V4Y2VwdGlvbiA9IFsKICAgICAnQ0RBVEFTZWN0aW9uJywKICAgICAnRG9jdW1lbnRUeXBl
JywKICAgICAnRWxlbWVudCcsCi0gICAgJ0VudGl0eVJlZmVyZW5jZScsCiAgICAgJ0V2ZW50VGFy
Z2V0JywKICAgICAnSFRNTERvY3VtZW50JywKICAgICAnTm9kZScsCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAppbmRleCA3ODhjYWJlNWQw
M2I1MWZmYmM0MGZmMzYzY2FkNmNhMDZhYjg1ZDQ5Li42OTJiYTcwNWZlZDgzYjI5NWEyNzA4ZDVl
NzM2MDZiMGU2YTAxYTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVy
LWNsYXNzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXIt
Y2xhc3Nlcy1leHBlY3RlZC50eHQKQEAgLTQ3LDkgKzQ3LDYgQEAgUEFTUyBqc1dyYXBwZXJDbGFz
cyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKS5jb25zdHJ1Y3RvcikgaXMgJ0NEQVRB
U2VjdGkKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4
JywgJ3gnLCAneCcpKSBpcyAnRWxlbWVudCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLl9fcHJvdG9fXykgaXMgJ0VsZW1lbnRQ
cm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnRO
UygneCcsICd4JywgJ3gnKS5jb25zdHJ1Y3RvcikgaXMgJ0VsZW1lbnRDb25zdHJ1Y3RvcicKLVBB
U1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkpIGlz
ICdFbnRpdHlSZWZlcmVuY2UnCi1QQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgpLl9fcHJvdG9fXykgaXMgJ0VudGl0eVJlZmVyZW5jZVByb3RvdHlw
ZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCkuY29uc3RydWN0b3IpIGlzICdFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3RvcicKIFBBU1MganNX
cmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpIGlz
ICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50
LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLl9fcHJvdG9fXykgaXMgJ1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvblByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuY29uc3RydWN0b3IpIGlzICdQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb25Db25zdHJ1Y3RvcicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2Vz
Lmh0bWwKaW5kZXggOGJlOGZlM2JmMGMyM2MwMzRhMDc3ODIzNTUwZDY3M2RmZTEwZWRjNy4uZmY4
MWQ4ZjkwNTA0NDBkYzFlMzFkMzA4MzM1NWM2NjMxMjljOTYzMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKQEAgLTkwLDcgKzkwLDYgQEAgZnVuY3Rpb24gcnVu
VGVzdCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9jdW1lbnQiKTsKICAgICB0ZXN0KCJ4
bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJDREFUQVNlY3Rpb24iKTsKICAgICB0
ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykiLCAiRWxlbWVu
dCIpOwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpIiwgIkVu
dGl0eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpOwogCiAgICAgZGVidWcoJycp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKaW5kZXggNjNlMjQyYTJmYmUz
MmI5ZDZiODNkNThjZWFkNTY0OWI0OTY3NDFiYi4uZWE5NjIyMzFhNmY1OTY3YmU0ZWE4MzUyZTcy
YTJmYmI2ZmZmZGI1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CkBA
IC0yMzUsNyArMjM1LDYgQEAgUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRG9jdW1lbnRGcmFn
bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2lu
ZG93LkRvY3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdl
dCgndGFyZ2V0V2luZG93LkVsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNT
OiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHknKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMu
Ci1QQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQgYmUg
J2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FdmFsRXJyb3InKSBz
aG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FdmVu
dCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93
LkhUTUxBbmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXQuaHRtbAppbmRleCAzODAwYTBiNWU4MTI0Yjk0NWQ4MTAzOTBjM2U5YjVmOTBlNTc4Mzhk
Li5jY2U1ZjdhM2YyMzQxY2FiN2ZmMDljYmU3NWIzYjJlNjlkZWE2Y2Y5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXQuaHRtbApAQCAtMjAsNyArMjAsNiBAQAogICAgICAgICAgICAgIkRvY3VtZW50VHlwZSIs
IAogICAgICAgICAgICAgIkVsZW1lbnQiLCAKICAgICAgICAgICAgICJFbnRpdHkiLCAKLSAgICAg
ICAgICAgICJFbnRpdHlSZWZlcmVuY2UiLCAKICAgICAgICAgICAgICJFdmFsRXJyb3IiLCAKICAg
ICAgICAgICAgICJFdmVudCIsIAogICAgICAgICAgICAgIkhUTUxBbmNob3JFbGVtZW50IiwgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yLWV4cGVjdGVkLnR4dAppbmRleCBlNDU4NWFiZDUxNjA1YzFlMmQ5ZThiOWYyY2Q4OGFi
Y2Q1Y2FkMmUwLi4xZWE1YmRjNmQ5NDk3NDZlMWU5YzI1MzU2NjQ2NWM0MGIzOWI4NWM5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVz
Y3JpcHRvci1leHBlY3RlZC50eHQKQEAgLTc4LDcgKzc4LDYgQEAgUEFTUzogY2FuR2V0RGVzY3Jp
cHRvcih0YXJnZXRXaW5kb3csICdEb2N1bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4K
IFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRG9jdW1lbnRGcmFnbWVudCcp
IHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0
V2luZG93LCAnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzog
Y2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxz
ZScgYW5kIGlzLgotUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbnRpdHlS
ZWZlcmVuY2UnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlw
dG9yKHRhcmdldFdpbmRvdywgJ0V2YWxFcnJvcicpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4K
IFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRXZlbnQnKSBzaG91bGQgYmUg
J2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0hU
TUxBbmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbAppbmRleCBk
ZWEwMTdkNjc4YTE1ZmRkMTNjNzdhOTJhZTUxNWM3MDhlN2JkM2FjLi4zMDY2YjNhMmFmY2I1ZDVk
MjM5MWZjZjQ5OWQxZTM0OTQ2NTE1NDEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbApAQCAtMTksNyArMTksNiBAQAogICAg
ICAgICAgICAgIkRvY3VtZW50RnJhZ21lbnQiLCAKICAgICAgICAgICAgICJEb2N1bWVudFR5cGUi
LCAKICAgICAgICAgICAgICJFbGVtZW50IiwgCi0gICAgICAgICAgICAiRW50aXR5UmVmZXJlbmNl
IiwgCiAgICAgICAgICAgICAiRXZhbEVycm9yIiwgCiAgICAgICAgICAgICAiRXZlbnQiLCAKICAg
ICAgICAgICAgICJIVE1MQW5jaG9yRWxlbWVudCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1l
eHBlY3RlZC50eHQKaW5kZXggNDdmZDU0MzlkMzdkNzZkMTA2NTQ5YTcxOWJiNWFjOTIyOTIzY2Jl
Yy4uODViMGFiYTFiMTViNDZlYWViYTA2MGZiZDU1ZTI5MjlmNDEyNTJkNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZy
YW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE1NDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTUyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQXR0ciBzaG91bGQgYmUgJ1tvYmplY3QgQXR0
ckNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5DREFUQVNlY3Rpb24g
c2hvdWxkIGJlICdbb2JqZWN0IENEQVRBU2VjdGlvbkNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxF
UlQ6IFBBU1M6IHdpbmRvdy5DaGFyYWN0ZXJEYXRhIHNob3VsZCBiZSAnW29iamVjdCBDaGFyYWN0
ZXJEYXRhQ29uc3RydWN0b3JdJyBhbmQgaXMuCkBAIC0xNCw4ICsxNCw2IEBAIEFMRVJUOiBQQVNT
OiB3aW5kb3cuRE9NRXhjZXB0aW9uIHNob3VsZCBiZSAnW29iamVjdCBET01FeGNlcHRpb25Db25z
dHJ1Y3Rvcl0nIGFuCiBBTEVSVDogUEFTUzogd2luZG93LkRPTUltcGxlbWVudGF0aW9uIHNob3Vs
ZCBiZSAnW29iamVjdCBET01JbXBsZW1lbnRhdGlvbkNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxF
UlQ6IFBBU1M6IHdpbmRvdy5ET01QYXJzZXIgc2hvdWxkIGJlICdbb2JqZWN0IERPTVBhcnNlckNv
bnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FbGVtZW50IHNob3VsZCBi
ZSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBhbmQgaXMuCi1BTEVSVDogUEFTUzogd2lu
ZG93LkVudGl0eSBzaG91bGQgYmUgJ3VuZGVmaW5lZCcgYW5kIGlzLgotQUxFUlQ6IFBBU1M6IHdp
bmRvdy5FbnRpdHlSZWZlcmVuY2Ugc2hvdWxkIGJlICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNv
bnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FdmFsRXJyb3Igc2hvdWxk
IGJlICdmdW5jdGlvbiBFdmFsRXJyb3IoKSB7ICAgIFtuYXRpdmUgY29kZV19JyBhbmQgaXMuCiBB
TEVSVDogUEFTUzogd2luZG93LkV2ZW50IHNob3VsZCBiZSAnW29iamVjdCBFdmVudENvbnN0cnVj
dG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCBzaG91
bGQgYmUgJ1tvYmplY3QgSFRNTEFuY2hvckVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KQEAg
LTI3NCwxNSArMjcyLDE1IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMjA6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTIxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxMjI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyMzogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI0OiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzM6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDEzNTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTMyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzNjogQmxvY2tlZCBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9t
YWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM3OiBC
bG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBh
Y2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJv
dG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTog
bGluZSAxMzg6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDEzOTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0
Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQwOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNDE6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0MjogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTQzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxNDQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ2OiBCbG9ja2VkIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5z
LCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KQEAgLTMyMSw3ICszMTksNyBAQCBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTc4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3OTogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTgwOiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Np
bmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xz
LCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAx
ODE6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE4MjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTg0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODU6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NjogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg3
OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJv
bSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4g
UHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KQEAgLTMzNyw3ICszMzUs
NyBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk2OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5Nzog
QmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20g
YWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFBy
b3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTk4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNP
TEUgTUVTU0FHRTogbGluZSAxOTk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjAyOiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMDM6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90
b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDIwNDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMjA1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KQEAgLTM3MCw3ICszNjgsNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjMxOiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDIzMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjMzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMzQ6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzNTogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNz
aW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29s
cywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3QgY2hlY2tzIGNyb3Nz
LWZyYW1lIGFjY2VzcyBzZWN1cml0eSBvZiB3aW5kb3cgYXR0cmlidXRlIHNldHRlcnMgKHJkYXI6
Ly9wcm9ibGVtLzUzMjY3OTEpLgogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKaW5kZXggYWMwMjRm
ODU1YWE4NjZlNjcxN2I5N2ZmYjFiNzQ5NTZiM2M1ZDczYy4uYTJiNmI4NzBhMThjNzM5MjU0OGMx
ZWE5ZDg1OTIyNzgyOWNiNmUwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKQEAgLTUwLDcgKzUw
LDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRX
aW5kb3csICJET01JbXBsZW1lbnRhdGlvbiIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRh
cmdldFdpbmRvdywgIkRPTVBhcnNlciIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdl
dFdpbmRvdywgIkVsZW1lbnQiKTsKLSAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5k
b3csICJFbnRpdHlSZWZlcmVuY2UiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRX
aW5kb3csICJFdmFsRXJyb3IiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5k
b3csICJFdmVudCIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgIkhU
TUxBbmNob3JFbGVtZW50Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJh
bWUtZm9yLXB1dC10ZXN0Lmh0bWwKaW5kZXggMzZmODI2YmQ5MDVmMDU3NzgwYjhiNjM4Njk2Zjc5
MzdlNWM0Yzg4Zi4uYjY3ZGZjMzlmYjAyM2IwYzk3N2VlYzgzYzk2NjYxYjhjMTk4ZTBkNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mt
ZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRt
bApAQCAtNTgsOCArNTgsNiBAQAogICAgICAgICB2YXIgRE9NSW1wbGVtZW50YXRpb25PbGQgPSB3
aW5kb3cuRE9NSW1wbGVtZW50YXRpb247CiAgICAgICAgIHZhciBET01QYXJzZXJPbGQgPSB3aW5k
b3cuRE9NUGFyc2VyOwogICAgICAgICB2YXIgRWxlbWVudE9sZCA9IHdpbmRvdy5FbGVtZW50Owot
ICAgICAgICB2YXIgRW50aXR5T2xkID0gd2luZG93LkVudGl0eTsKLSAgICAgICAgdmFyIEVudGl0
eVJlZmVyZW5jZU9sZCA9IHdpbmRvdy5FbnRpdHlSZWZlcmVuY2U7CiAgICAgICAgIHZhciBFdmFs
RXJyb3JPbGQgPSB3aW5kb3cuRXZhbEVycm9yOwogICAgICAgICB2YXIgRXZlbnRPbGQgPSB3aW5k
b3cuRXZlbnQ7CiAgICAgICAgIHZhciBIVE1MQW5jaG9yRWxlbWVudE9sZCA9IHdpbmRvdy5IVE1M
QW5jaG9yRWxlbWVudDsKQEAgLTI2MSw4ICsyNTksNiBAQAogICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5ET01JbXBsZW1lbnRhdGlvbiIsICJET01JbXBsZW1lbnRhdGlvbk9sZCIpOwogICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5ET01QYXJzZXIiLCAiRE9NUGFyc2VyT2xkIik7CiAg
ICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkVsZW1lbnQiLCAiRWxlbWVudE9sZCIpOwotICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbnRpdHkiLCAiRW50aXR5T2xkIik7Ci0gICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LkVudGl0eVJlZmVyZW5jZSIsICJFbnRpdHlSZWZlcmVuY2VP
bGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZhbEVycm9yIiwgIkV2YWxFcnJv
ck9sZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FdmVudCIsICJFdmVudE9sZCIp
OwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCIsICJIVE1M
QW5jaG9yRWxlbWVudE9sZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4cGVj
dGVkLnR4dAppbmRleCA5YmVhMmEzZDY2NjZkMGQ5MzZjMTBjZmIxMTY5MWExOTZiNGFkYjgzLi45
YmFjODc2YjQwOWE0NzhkZGVmZWJiMDk1ZjY2NDBkNDQyZGMwM2I0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dApAQCAtOSw3ICs5LDcgQEAgUEFTUyBIaXN0
b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTUxvY2F0b3IKIFBBU1MgSGlz
dG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01PYmplY3QgCiBQQVNTIEhp
c3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NVXNlckRhdGEgCiBQQVNT
IEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRW50aXR5IAotRkFJTCBI
aXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eVJlZmVyZW5jZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdIgorUEFTUyBI
aXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eVJlZmVyZW5jZSAK
IEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFdmVudEV4Y2Vw
dGlvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0iCiBQ
QVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogTmFtZUxpc3QgCiBQ
QVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogTm90YXRpb24gCkBA
IC0xOSw5ICsxOSw3IEBAIFBBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1v
dmVkOiBSYW5nZUV4Y2VwdGlvbgogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJl
IHJlbW92ZWQ6IGNyZWF0ZUNEQVRBU2VjdGlvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5k
ZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiBj
cmVhdGVDREFUQVNlY3Rpb24oKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIKLUZBSUwgSGlzdG9y
aWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBjcmVhdGVFbnRpdHlSZWZlcmVuY2Ug
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkgewotICAg
IFtuYXRpdmUgY29kZV0KLX0iCitQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUg
cmVtb3ZlZDogY3JlYXRlRW50aXR5UmVmZXJlbmNlIAogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0
dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IHhtbEVuY29kaW5nIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChvYmplY3QpIG51bGwKIEZBSUwgSGlzdG9y
aWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxTdGFuZGFsb25lIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChib29sZWFuKSBm
YWxzZQogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IHhtbFZl
cnNpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBn
b3QgKG9iamVjdCkgbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAyZDhkYzhl
MTk4NTk3NDU4YzkzMTRkZWRiZWUyN2NmMzYxZDZlMzhkLi43OTg5NTgyYWIzZWI4YWMwNTBhM2Q4
YTc1ZGFlYzQyNjhiZGVkN2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFs
LWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzEz
LDExICszMTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5j
ZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQn
KSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScp
LmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1
ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBiYWFiNDk4MjBmNGRhOWYzMzkzMGIyYjc5OTQy
ZTkzMzEwNWU4ZjcwLi40NTdlOTkwMTRkNDM4OTMyY2E0NjMyNzg0YzliNmNhNTc4OWQyZTI3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBA
IC0zMTMsMTEgKzMxMyw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHko
J2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJl
bmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
LnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
Lmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CmluZGV4IGVkYjc1NTA3NjI5YzdjMGRj
NjIwN2JmMDQ5NDYwYTRkNTc4OTRhODIuLjgyYjAyNGE4NjZhNDBkMzI5MWM2NWM3M2FmY2Y5YmMy
NDNhOTc0NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5j
ZS1leHBlY3RlZC50eHQKQEAgLTExNCw4ICsxMTQsNiBAQCBQQVNTIHdpblsnRG9jdW1lbnRUeXBl
J10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdp
blsnRG9jdW1lbnRUeXBlJ10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBp
cyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rv
cl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0
cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVyZW5jZSddID09ICdbb2JqZWN0
IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJl
ZmVyZW5jZSddID09ICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1
ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRy
dWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0
cnVlCiBQQVNTIHdpblsnRXZlbnRFeGNlcHRpb24nXSA9PSAnW29iamVjdCBFdmVudEV4Y2VwdGlv
bkNvbnN0cnVjdG9yXScgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGEwYzZmZjRmODc5YzU5OWM2MDA3ZTY3ZTY5NWIyMWE1
NjJlMjY5OWYuLmU2ODFhNDZhNGY4ZTZlZDVlMjRiNzdhMTc5MzBhYzUxNWU4ZTY0ZDUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMx
OCwxMSArMzE4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2Un
KS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFs
dWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFz
T3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBjMTViNjY1
YTBmZmFiNjc2YzBmZThkOTc1ZjgzOGI3N2Q4OTg5YmM4Li5lMTg0Mjk1YzBlYzEzYzgwM2QzYmY1
OTUwNDE3OGFjZjUzY2E2ZWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
bWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4LDYg
QEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQn
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcp
LmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBp
cyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
LVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZl
cmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxl
IGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JF
dmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9y
RXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9z
ZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMDBmYmM0YjAyOGQ5MmU2YWRmYTY2
Mzc2ZThlZTJiZjY3ZWM0ZmNmMy4uOTRkNzgxMjYyOTBkMGIzZjAzN2E0OTY1ZmE1ZGY3ZGEzZGMy
ODc1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICszMDgsNiBAQCBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5
KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1l
bnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5j
ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJl
ZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blBy
b3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2Un
KS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4
dAppbmRleCA5M2RhZGMwMzFmNjJmMzY2M2E4OTY2MDNhM2RhYjE4ZWUyNjQzMmE0Li4xNjJmNDhm
YzU2Yjk4NzliM2E5YjEzNmI4YjcxYjJlZjlhODdhMmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CkBAIC0xMTQsOCArMTE0LDYg
QEAgUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0
cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0IERv
Y3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAn
W29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCdd
ID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRp
dHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZl
cmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0
IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVj
dCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50RXhjZXB0aW9uJ10g
PT0gJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0nIGlzIHRydWUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwNDRmMTRm
MGU1Mjk2ZTY3NWQ4YjQzYzhiNDNkODAyZDI2OTc3MTE4Li5jMWE0MjJmMGExNTU3NzE4YzFhN2Vk
OWYxMDRmODhjZDk1MGE1NjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMwOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dl
dCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxl
bWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcp
LmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJl
bmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVy
dHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNv
bmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVy
dHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDA4
M2EwNzFmNmNlNmViNWVkMjFjZDA0NjAxYTNhYmU3NjE5MzFmYmYuLjZlYmFhYWY2Y2NjYTAxMGE5
MmZmNzA3ZjE5MjQxZGM4NTU3Y2VmOGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTIzOCwxMSArMjM4LDYgQEAgUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0
eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVu
Y2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlS
ZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Q
cm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNl
JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Q
cm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNl
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261519</attachid>
            <date>2015-09-18 13:37:57 -0700</date>
            <delta_ts>2015-09-18 15:49:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150918133743.patch</filename>
            <type>text/plain</type>
            <size>448772</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMjVmMWQ5MGYzN2Zm
Y2E3YjE2NjZmNmUxNGQ5YzViMTc5ZGY1My4uZjVhZDM1ZDRiYWY3OWEwNmRkMGU5NGIyZTk5OGUz
OWU0NDQ3NjhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEyMSBAQAogMjAxNS0wOS0xOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKKzIwMTUtMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKwogICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIEVudGl0eSBOb2RlIHR5cGUKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTIzOQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggOGU2ODI3Njg2YWI4NGE3ODBiZWUwMzA3N2Q1OGU1MTcwNzc3NDM2ZS4uODVkZWJm
MDkwYmYwYzBkODkwMGU5OTkwY2VhODAxYzVlZmYwNmNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDE5IEBACiAyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAg
ICAgICAgRHJvcCBzdXBwb3J0IGZvciBsZWdhY3kgRW50aXR5UmVmZXJlbmNlIERPTSBOb2RlIHR5
cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTM0
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3Ag
aGFuZGxpbmcgRW50aXR5UmVmZXJlbmNlIE5vZGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tOgorICAgICAgICAoV2ViS2l0
OjpXS0RPTU5vZGVDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0Fzc2lzdGFibGVFbGVtZW50
KToKKworMjAxNS0wOS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAg
ICAgIERyb3Agc3VwcG9ydCBmb3IgRW50aXR5IE5vZGUgdHlwZQogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MjM5CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLmNwcAppbmRleCBkM2ViNTE3MzFlMDYwMDJlMTM0MzhkYWNiZjU3ZWE0N2FkZGM0MzFjLi4z
NDNhODAxMjVmNDJmOGQ5ODI4NzBjMzdiNDUyNDE0YmY4OGY1Yzg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCkBAIC0xNDksNyArMTQ5LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5j
cHAiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDU1MuY3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudC5j
cHAiCi0jaW5jbHVkZSAiSlNFbnRpdHlSZWZlcmVuY2UuY3BwIgogI2luY2x1ZGUgIkpTRXJyb3JF
dmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEV4Y2Vw
dGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCAwOGM0NDk2NjhhYTI4ZDYwZTU1M2Y5NWUyNjIyZmYwMjA1MWY2YjUwLi4wNzdk
NzQ2MTI2NmY4OWM3ZDY0MTJiOTcxMDFhZDNhYTcyYmY0MzY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE4MzIsMjAgKzE4MzIsNiBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAi
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk4NTks
NyArMTk4NDUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRE9NVVJMLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNET01XaW5kb3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0
dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQo
UGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJy
b3JFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0V2ZW50RXhjZXB0aW9uLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOTc4
N2JjODA1YjNiMTkxYzA0OTE5MzJjZTQ3ZjY1N2RkOTAwOWIzNy4uOGJlZTJhZjkyMTg3YmI2NjQw
Yjc0MzAzNWFiMDFjYWU3OGUyNGRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNTI1Nyw5ICs1MjU3LDYg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vs
ZW1lbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAiPgogICAgICAgPEZpbHRlcj5E
ZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTI2NDYsOSArMTI2
NDMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRWxlbWVudC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJj
ZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vycm9yRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPkRl
cml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzkwZDE1MTU2ZWJl
NDYxNGE0OGUzZTI5OTAxYTY3OGVkOGU1ZDc3Zi4uM2JjNTAxMzM2ZTM5NjhlODBhOWQwY2FkNDk2
MGY4ZjAzODgyMzlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzU4Nyw4ICszNTg3LDYgQEAKIAkJOTNGOUI2NTgwQkEwRjM1
RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNjU1MEJBMEYzNUUwMDg1NDA2
NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggKi87IH07CiAJCTkzRjlCNkUwMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2REUwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVu
dC5jcHAgKi87IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRGMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKLQkJOTNGOUI3NzQwQkE1RkREQzAw
ODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0
eVJlZmVyZW5jZS5jcHAgKi87IH07Ci0JCTkzRjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0Vu
dGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi87
IH07CiAJCTkzRjlCN0EwMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc5RTBCQTYw
MzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovOyB9OwogCQk5M0Y5QjdBMTBCQTYw
MzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRB
U2VjdGlvbi5oICovOyB9OwogCQk5M0ZEQUZDQTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5z
ZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwOTU5LDggKzEw
OTU3LDYgQEAKIAkJOTNGOUI2NTUwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVt
ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTENh
bnZhc0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5
QjZERTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29tbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudGl0eVJlZmVyZW5j
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjlCNzczMEJBNUZEREMwMDg1
NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0VudGl0eVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDREFUQVNlY3Rpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RjBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNl
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDREFUQVNlY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREFGQzkwQjExMzA3NDAwRTI3NDZG
IC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MDA0Nyw4ICsyMDA0Myw2IEBACiAJCQkJQkM2NDY0OTYxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9N
U3RyaW5nTWFwLmggKi8sCiAJCQkJNjVERjMxRTUwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVu
dC5jcHAgKi8sCiAJCQkJNjVERjMxRTYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5oICov
LAotCQkJCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAg
Ki8sCi0JCQkJOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmgg
Ki8sCiAJCQkJRkU4MERBNUYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwICov
LAogCQkJCUZFODBEQTYwMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggKi8sCiAJ
CQkJRkU4MERBNjEwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uY3BwICovLApAQCAt
MjU1NzksNyArMjU1NzMsNiBAQAogCQkJCUZENzg2OEJBMTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUZBMDlEMUND
NjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFERUM3OEY4MThF
RTUzMDgwMDEzMTVDMiAvKiBKU0VsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAotCQkJCTkz
RjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkVDRjdBREQxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEU4Mzc4RTA5Rjg1RDRGMDBCODVBRTQgLyogSlNFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTEzOSw3ICsyOTEzMiw2IEBACiAJCQkJRkQ3ODY4Qjkx
MzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk2NURGMzFGOTA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDMkVENTU1MEM2QjlCRDMwMDkyMEJGRiAvKiBKU0VsZW1lbnRDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGOUI3NzQwQkE1RkREQzAwODU0MDY0IC8qIEpT
RW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFQ0Y3QURDMTAxNjJCMzgw
MDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjNENDYxNDgx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0RTgzNzg0MDlGODVEMUMwMEI4NUFFNCAvKiBKU0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0
ZS5jcHAKaW5kZXggNTljZjY4YzEyOTBhN2FiMDI2ZTMxZTMyNjFiMDY4YTQzZDM2NjA5My4uZTNi
OTcxNjYzYmNhYmY4N2M1NDU1ODM5NTM4MTI4ZTkwMGIzOGYwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCkBAIC05Myw4
ICs5Myw2IEBAIFdlYktpdERPTU5vZGUqIHdyYXAoTm9kZSogbm9kZSkKICAgICAgICAgcmV0dXJu
IFdFQktJVF9ET01fTk9ERSh3cmFwVGV4dChkb3duY2FzdDxUZXh0Pihub2RlKSkpOwogICAgIGNh
c2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9O
T0RFKHdyYXBDREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpKTsK
LSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgcmV0dXJuIFdF
QktJVF9ET01fTk9ERSh3cmFwRW50aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0PEVudGl0eVJlZmVy
ZW5jZSo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05P
REU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcFByb2Nlc3NpbmdJbnN0cnVj
dGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2RlKSkpOwogICAgIGNh
c2UgTm9kZTo6Q09NTUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAKaW5kZXggYWVhYzA4N2Q5ZGNmYTUxMTA3OTNkMmZmMmM5YWZjMjNlMTJiODE1
Mi4uYjI3YTk4MWM3ZDA5ZmE1NWNiZTI5NjliYjczYjIxZDQxNDQ4ODQ0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0zMyw3ICszMyw2IEBACiAj
aW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgog
I2luY2x1ZGUgIkVudGl0eS5oIgotI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MQXVkaW9FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKQEAgLTUxLDcgKzUwLDYgQEAKICNpbmNsdWRlICJK
U0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAi
SlNEb2N1bWVudFR5cGUuaCIKLSNpbmNsdWRlICJKU0VudGl0eVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnQuaCIKICNpbmNs
dWRlICJKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKQEAgLTIwOSw5ICsyMDcsNiBAQCBz
dGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGNyZWF0ZVdyYXBwZXJJbmxpbmUoRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iagogI2VuZGlmCiAgICAgICAgICAgICAgICAgd3JhcHBlciA9
IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIERvY3VtZW50RnJhZ21lbnQsIG5vZGUp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5D
RV9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxP
YmplY3QsIEVudGl0eVJlZmVyZW5jZSwgbm9kZSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xv
YmFsT2JqZWN0LCBOb2RlLCBub2RlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Lm1tCmluZGV4IDhlMWZiZTFmY2Q3YzM3YzQ2ZTkwYzMzY2MwNDQyMzRhMWFlNDg3ODIuLmU4Mzk2
NWRiYzM0ZjIxYzNjZTMxMTYwZDQ3NWE2ZDI4MmNhM2ZiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NLm1tCkBAIC0zMTEsOCArMzExLDYgQEAgQ2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6
Tm9kZSogaW1wbCkKICAgICAgICAgICAgIHJldHVybiBbRE9NVGV4dCBjbGFzc107CiAgICAgICAg
IGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICAgICAgcmV0
dXJuIFtET01DREFUQVNlY3Rpb24gY2xhc3NdOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgICAgIHJldHVybiBbRE9NRW50aXR5UmVm
ZXJlbmNlIGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9DRVNTSU5HX0lO
U1RSVUNUSU9OX05PREU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTVByb2Nlc3NpbmdJbnN0cnVj
dGlvbiBjbGFzc107CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q09NTUVOVF9OT0RFOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuY3BwCmluZGV4IGFjN2I2NmY5OTcwNWQ4OTllZWNlM2MyODk0Zjg5ZTFmODA5ZDE1
ZjguLjk2ZDdlZWQzYjBmZjIxNTU5YWRjMzM1ZTIwYTRjNDU5ZGYyMWJkYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0
ci5jcHAKQEAgLTE0OCwxMyArMTQ4LDcgQEAgUmVmPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIC8vIERPTSBT
ZWN0aW9uIDEuMS4xCiBib29sIEF0dHI6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkg
Y29uc3QKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBURVhUX05PREU6Ci0g
ICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQor
ICAgIHJldHVybiB0eXBlID09IFRFWFRfTk9ERTsKIH0KIAogdm9pZCBBdHRyOjpjaGlsZHJlbkNo
YW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0F0dHIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKaW5kZXggMTI0YzZkN2EyYWEyODY4
MzBmY2JhMjk2Mjg4ODhiNzIwMjI5OTI4Ni4uZjZmMzYyMDc3MTdhMzVjMmIyNDNmYWFhOTY1ZGMz
YWI3MmYyNmJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzOwogCi0vLyBBdHRyIGNhbiBoYXZlIFRleHQgYW5kIEVudGl0eVJlZmVyZW5jZSBjaGls
ZHJlbgorLy8gQXR0ciBjYW4gaGF2ZSBUZXh0IGNoaWxkcmVuCiAvLyB0aGVyZWZvcmUgaXQgaGFz
IHRvIGJlIGEgZnVsbGJsb3duIE5vZGUuIFRoZSBwbGFuCiAvLyBpcyB0byBkeW5hbWljYWxseSBh
bGxvY2F0ZSBhIHRleHRjaGlsZCBhbmQgc3RvcmUgdGhlCiAvLyByZXN1bHRpbmcgbm9kZXZhbHVl
IGluIHRoZSBhdHRyaWJ1dGUgdXBvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmlu
ZGV4IGM5NjM0YjBjZTEwMDM0ZTkyYjVjNTE2ZTEzMmQwYzQzNDMxN2E1MGQuLjNmNGZlMGY4MDM3
NGM4MzcwMDk5MGVkNGI0NWE0YTlkMjE5NDliYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5jcHAKQEAgLTE4MCw3ICsxODAsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUg
Y2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogewog
ICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUuCiAgICAgaWYgKChu
ZXdDaGlsZC5pc0VsZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQuaXNUZXh0Tm9kZSgpKSAmJiBuZXdQ
YXJlbnQuaXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVh
ZE9ubHlOb2RlKCkpOwogICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5v
ZGUoKSk7CiAgICAgICAgIEFTU0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdD
aGlsZCkpOwogICAgICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdD
aGlsZCwgbmV3UGFyZW50KSkKQEAgLTE5Myw4ICsxOTIsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2Vw
dGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUm
IG5ldwogICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJu
IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQuaXNSZWFkT25seU5v
ZGUoKSkKLSAgICAgICAgcmV0dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICBp
ZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkK
ICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIApAQCAtMjA5LDcgKzIwNiw2
IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5l
ck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0Fj
Y2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5v
ZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlQoIW5ld1BhcmVu
dC5pc1JlYWRPbmx5Tm9kZSgpKTsKICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlw
ZU5vZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0No
aWxkKSk7CiAgICAgaWYgKG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7CkBAIC01MjEs
MTIgKzUxNyw2IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSYgb2xkQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMgPSAwOwogCi0gICAgLy8gTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgdGhpcyBub2RlIGlzIHJlYWRvbmx5LgotICAg
IGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgLy8gTk9UX0ZP
VU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZS4K
ICAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAgICAgZWMgPSBO
T1RfRk9VTkRfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjE3OTNjMjJmMDUzZmI3
YjA2NTY4MTdjZmM3ZGFiMzE4NGFlOGJkNC4uNmNmMGVhZTQwNjQwZDBmMTFkNjE0NDQ3OTEwNDE3
NjU3NDhhZDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC05MDksMTcgKzkwOSwxMCBA
QCBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBEb2N1bWVudDo6Y3JlYXRlUHJvY2Vzc2lu
Z0luc3RydWN0aW9uKGNvbnN0IFN0cmluZwogICAgIHJldHVybiBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b246OmNyZWF0ZSgqdGhpcywgdGFyZ2V0LCBkYXRhKTsKIH0KIAotUmVmUHRyPEVudGl0eVJlZmVy
ZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmIG5hbWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNy
ZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICBpZiAoIWlzVmFsaWROYW1lKG5hbWUpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9DSEFS
QUNURVJfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgaWYgKGlzSFRN
TERvY3VtZW50KCkpIHsKLSAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0
ZSgqdGhpcywgbmFtZSk7CisgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAogUmVmPFRleHQ+IERvY3VtZW50OjpjcmVhdGVFZGl0aW5nVGV4dE5vZGUo
Y29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtOTQ0LDcgKzkzNyw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1
bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wgZGVlcCwgRXhjZXB0aW9u
Q29kZSYKICAgICBjYXNlIEVMRU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBj
YXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBjYXNlIENPTU1FTlRf
Tk9ERToKICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC05NzQsMTEgKzk2Niw2
IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291
cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
Ci0gICAgaWYgKHNvdXJjZS0+aXNSZWFkT25seU5vZGUoKSkgewotICAgICAgICBlYyA9IE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
CiAgICAgRXZlbnRRdWV1ZVNjb3BlIHNjb3BlOwogCiAgICAgc3dpdGNoIChzb3VyY2UtPm5vZGVU
eXBlKCkpIHsKQEAgLTE3MTAsNTIgKzE2OTcsNTIgQEAgUmVmPFJhbmdlPiBEb2N1bWVudDo6Y3Jl
YXRlUmFuZ2UoKQogICAgIHJldHVybiBSYW5nZTo6Y3JlYXRlKCp0aGlzKTsKIH0KIAotUmVmUHRy
PE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9v
bCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2Rl
SXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwg
d2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGVjKTsKK30KKworUmVmUHRyPE5vZGVJdGVy
YXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIE5vZGVJdGVyYXRvcjo6Y3Jl
YXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzKTsKKyAgICByZXR1cm4gTm9kZUl0ZXJhdG9yOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hv
dywgV1RGOjptb3ZlKGZpbHRlcikpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVu
dDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0
cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1
cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
LCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRv
U2hvdywgbnVsbHB0ciwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6
Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywg
RXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRl
Tm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVy
biBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZmFsc2UsIGVj
KTsKKyAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIDB4RkZGRkZGRkYsIG51bGxw
dHIsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJ
dGVyYXRvcihOb2RlKiByb290LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2Vy
PiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdo
YXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCAweEZGRkZGRkZG
LCBudWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3Qs
IHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBlYyk7CiB9CiAKLVJlZlB0cjxUcmVlV2Fs
a2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRp
dHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1
bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0
VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7Ci19Ci0K
LVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwg
d2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIFRy
ZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSk7CiB9
CiAKIFJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiBy
b290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIG51bGxwdHIsIGZhbHNl
LCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgbnVs
bHB0ciwgZWMpOwogfQogCiBSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVX
YWxrZXIoTm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0
ZVRyZWVXYWxrZXIocm9vdCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICBy
ZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBlYyk7CiB9
CiAKIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKQpAQCAtMzM0OCw3
ICszMzM1LDYgQEAgYm9vbCBEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBl
KSBjb25zdAogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRf
RlJBR01FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX05PREU6Ci0gICAgY2FzZSBFTlRJVFlf
UkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2FzZSBYUEFUSF9OQU1F
U1BBQ0VfTk9ERToKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzM3Niw3ICszMzYyLDYgQEAg
Ym9vbCBEb2N1bWVudDo6Y2FuQWNjZXB0Q2hpbGQoY29uc3QgTm9kZSYgbmV3Q2hpbGQsIGNvbnN0
IE5vZGUqIHJlZkNoaWxkLCBBY2NlcHQKICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgIGNh
c2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICBjYXNl
IEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIFhQ
QVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IDc0Y2VhYTk2YmM5MmY0NzgxN2NlYmI1ZjNjZjkzOTBhMTlhNzdkNjkuLjJjYWE4
YjAwY2IyNGQ5MjVkMTE5ODgxNjk5ZDY4MDc4N2M5OTZhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC01MzUsMTIgKzUzNSwxMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8
UmFuZ2U+IGNyZWF0ZVJhbmdlKCk7CiAKLSAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVO
b2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8
Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2ws
IEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRyPE5vZGVJ
dGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hh
dFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQ
dHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPE5vZGVJdGVyYXRv
cj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAg
IFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVh
dGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRy
PE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGlu
Z3MuCiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0
cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDgxYjEwYWU2MDk5NTJlZjQwNjU4NGQwNzc2
NTY2NGU2NzAxMWQ1MTQuLmJhOWVjMzM2MDAyNWZhMWIwNzIyZDNmY2VkZDZmOWM1MmYxYTRlNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMzksNyArMzksMTAgQEAKICAgICBbT2JqQ0xl
Z2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gUHJvY2Vz
c2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihbRGVmYXVsdD1VbmRl
ZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBkYXRhKTsKICAgICBbTmV3
T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEF0dHIgY3JlYXRlQXR0cmlidXRlKFtEZWZhdWx0PVVu
ZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIFtOZXdPYmplY3QsIFJhaXNl
c0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVs
dD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKworI2lmIGRlZmluZWQoTEFO
R1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVsdD1V
bmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyNlbmRpZgogCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICBbSW1w
bGVtZW50ZWRBcz1nZXRFbGVtZW50c0J5VGFnTmFtZUZvck9iakNdIE5vZGVMaXN0IGdldEVsZW1l
bnRzQnlUYWdOYW1lKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHRhZ25h
bWUpOwpAQCAtOTIsMTQgKzk1LDIzIEBACiAKICAgICAvLyBET00gTGV2ZWwgMiBUcmFudmVyc2Fs
IGFuZCBSYW5nZSAoRG9jdW1lbnRUcmF2ZXJzYWwgaW50ZXJmYWNlKQogCi0gICAgW09iakNMZWdh
Y3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVy
YXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAorI2lmIGRlZmluZWQoTEFOR1VBR0Vf
T0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgW09iakNMZWdhY3lVbm5h
bWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSBOb2RlSXRlcmF0b3IgY3JlYXRlTm9kZUl0
ZXJhdG9yKE5vZGUgcm9vdCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93ID0gMHhGRkZGRkZGRiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyLAog
ICAgICAgICBvcHRpb25hbCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOwotICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBU
cmVlV2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSByb290LAorICAgIFtPYmpDTGVnYWN5VW5u
YW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUgcm9vdCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
ID0gMHhGRkZGRkZGRiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyLAogICAg
ICAgICBvcHRpb25hbCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworI2Vsc2UKKyAg
ICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRl
cmF0b3IoTm9kZSByb290LAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3cgPSAweEZGRkZGRkZGLAorICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIpOwor
ICAgIFtSYWlzZXNFeGNlcHRpb24sIE5ld09iamVjdF0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUgcm9vdCwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
ID0gMHhGRkZGRkZGRiwKKyAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyKTsKKyNl
bmRpZgogCiAgICAgLy8gRE9NIExldmVsIDIgQWJzdHJhY3QgVmlld3MgKERvY3VtZW50VmlldyBp
bnRlcmZhY2UpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCBm
OWIzOGEwYmQyOGU4ZTNjNjA5MzRhZmYxYTYwMDU5MjcwOTAzZmVjLi5hNjcwMDJjNGJmOTg3NDRh
Mjk1M2Y0OWUyNmU2MWJhMGNhZDM3MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJh
Z21lbnQuY3BwCkBAIC02MCw3ICs2MCw2IEBAIGJvb2wgRG9jdW1lbnRGcmFnbWVudDo6Y2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgICAgICBjYXNlIENPTU1FTlRfTk9E
RToKICAgICAgICAgY2FzZSBURVhUX05PREU6CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9O
T0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDhiZTMzNzdjODEwMDMyZmFiOGJlN2FiNDM2YjJkMjU0
ODllNzMwZjEuLmY1MzMxYjkwYjViMjdjZTk1YmY3ZTU0MmIzOTVhMzY5NmNkZTk1ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTE3NTEsNyArMTc1MSw2IEBAIGJvb2wgRWxlbWVudDo6Y2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09NTUVOVF9OT0RF
OgogICAgIGNhc2UgUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgIGNhc2UgQ0RBVEFf
U0VDVElPTl9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VudGl0eVJlZmVyZW5jZS5jcHAKaW5kZXggN2U5MWE0NjJkYTgyMDlkOTIyYzQ1ZGM4NGM0MWEw
ODU1YWQ2YmUxYS4uZTU4MjRmMTA4YmI2ZjU0M2I1YTA3NjdhZmUxZmE4NGEyZDQ4MWRjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKQEAgLTI1LDMwICsyNSw5IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIEVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVm
ZXJlbmNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKQoraW5s
aW5lIEVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJikKICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQpCi0gICAgLCBtX2Vu
dGl0eU5hbWUoZW50aXR5TmFtZSkKIHsKIH0KIAotUmVmPEVudGl0eVJlZmVyZW5jZT4gRW50aXR5
UmVmZXJlbmNlOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGVudGl0
eU5hbWUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW50aXR5UmVmZXJlbmNlKGRvY3Vt
ZW50LCBlbnRpdHlOYW1lKSk7Ci19Ci0KLVN0cmluZyBFbnRpdHlSZWZlcmVuY2U6Om5vZGVOYW1l
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbnRpdHlOYW1lOwotfQotCi1Ob2RlOjpOb2RlVHlw
ZSBFbnRpdHlSZWZlcmVuY2U6Om5vZGVUeXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRU5USVRZ
X1JFRkVSRU5DRV9OT0RFOwotfQotCi1SZWY8Tm9kZT4gRW50aXR5UmVmZXJlbmNlOjpjbG9uZU5v
ZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCi17
Ci0gICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgbV9lbnRpdHlOYW1lKTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZl
cmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaAppbmRleCA4NmRm
ZWIzOTgyNWIzNDUwZTc1MzU5MjUwNjg1MTEwYjNhZjBjYThmLi4xOGMyZWMxYWZjZTU3MGU4MGU4
NjVhMDg0NWJhYmQ4ODY2Zjk2MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50
aXR5UmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5o
CkBAIC0yNiwxOCArMjYsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVudGl0
eVJlZmVyZW5jZSBmaW5hbCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPEVudGl0eVJlZmVyZW5jZT4gY3JlYXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiBlbnRpdHlOYW1lKTsKLQorY2xhc3MgRW50aXR5UmVmZXJlbmNlIDogcHVibGljIENvbnRhaW5l
ck5vZGUgewogcHJpdmF0ZToKICAgICBFbnRpdHlSZWZlcmVuY2UoRG9jdW1lbnQmLCBjb25zdCBT
dHJpbmcmIGVudGl0eU5hbWUpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBD
bG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKLQotICAgIFN0cmluZyBtX2VudGl0eU5hbWU7CiB9
OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5
UmVmZXJlbmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCmlu
ZGV4IDZkMDUzNWY5YmMxZGFhNzkxNzgzMWVmZGJlNmFiZDA3YWU5YjdkYmEuLjI3MzFkN2E2NjA5
NjM1YmQ2YzE2ZTZkMmM2NmU2MDdlYmI4YzRjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuaWRsCkBAIC0xNyw4ICsxNywxMiBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCiAgKi8KIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdV
QUdFX09CSkVDVElWRV9DCisKIFsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBKU0dlbmVy
YXRlVG9KU09iamVjdAogXSBpbnRlcmZhY2UgRW50aXR5UmVmZXJlbmNlIDogTm9kZSB7CiB9Owog
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA0MzYyZDY1NmRjNDdmZDY0MzM1YjQ2ODYxNGJl
NzM2NTg4MTMwMmJhLi5kZWYyNGNlNjcwOTU1NjY0YmNiYTEzNTA0NzE2ZmM0MTdjYWY2MzM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCkBAIC0xMDMsNyArMTAzLDYgQEAgdm9pZCBOb2RlOjpkdW1wU3RhdGlz
dGljcygpCiAgICAgc2l6ZV90IHRleHROb2RlcyA9IDA7CiAgICAgc2l6ZV90IGNkYXRhTm9kZXMg
PSAwOwogICAgIHNpemVfdCBjb21tZW50Tm9kZXMgPSAwOwotICAgIHNpemVfdCBlbnRpdHlSZWZl
cmVuY2VOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGVudGl0eU5vZGVzID0gMDsKICAgICBzaXplX3Qg
cGlOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGRvY3VtZW50Tm9kZXMgPSAwOwpAQCAtMTY4LDEwICsx
NjcsNiBAQCB2b2lkIE5vZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICAgICAgICAgICAgICArK2Nv
bW1lbnROb2RlczsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOiB7Ci0gICAgICAgICAgICAgICAgKytl
bnRpdHlSZWZlcmVuY2VOb2RlczsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGNhc2UgRU5USVRZX05PREU6IHsKICAgICAgICAgICAgICAgICArK2Vu
dGl0eU5vZGVzOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjExLDcgKzIwNiw2IEBAIHZv
aWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgIHByaW50ZigiICBOdW1iZXIgb2YgVGV4dCBu
b2RlczogJXp1XG4iLCB0ZXh0Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgQ0RBVEFT
ZWN0aW9uIG5vZGVzOiAlenVcbiIsIGNkYXRhTm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIg
b2YgQ29tbWVudCBub2RlczogJXp1XG4iLCBjb21tZW50Tm9kZXMpOwotICAgIHByaW50ZigiICBO
dW1iZXIgb2YgRW50aXR5UmVmZXJlbmNlIG5vZGVzOiAlenVcbiIsIGVudGl0eVJlZmVyZW5jZU5v
ZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIEVudGl0eSBub2RlczogJXp1XG4iLCBlbnRp
dHlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24g
bm9kZXM6ICV6dVxuIiwgcGlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBEb2N1bWVu
dCBub2RlczogJXp1XG4iLCBkb2N1bWVudE5vZGVzKTsKQEAgLTM4NCwxNCArMzc4LDggQEAgU3Ry
aW5nIE5vZGU6Om5vZGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12
b2lkIE5vZGU6OnNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmIC8qbm9kZVZhbHVlKi8sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQordm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiAvKm5v
ZGVWYWx1ZSovLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlI6IFJhaXNlZCB3aGVuIHRoZSBub2RlIGlzIHJlYWRvbmx5Ci0gICAgaWYgKGlzUmVh
ZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBCeSBkZWZhdWx0LCBzZXR0aW5nIG5v
ZGVWYWx1ZSBoYXMgbm8gZWZmZWN0LgogfQogCkBAIC04OTAsMTEgKzg3OCw2IEBAIHZvaWQgTm9k
ZTo6Y2hlY2tTZXRQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzUmVhZE9ubHlOb2Rl
KCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBGSVhNRTogUmFpc2UgTkFNRVNQQUNFX0VSUiBpZiBw
cmVmaXggaXMgbWFsZm9ybWVkIHBlciB0aGUgTmFtZXNwYWNlcyBpbiBYTUwgc3BlY2lmaWNhdGlv
bi4KIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbm9kZU5hbWVzcGFjZVVSSSA9IG5hbWVzcGFj
ZVVSSSgpOwpAQCAtMTQyMiw3ICsxNDA1LDYgQEAgc3RhdGljIHZvaWQgYXBwZW5kVGV4dENvbnRl
bnQoY29uc3QgTm9kZSogbm9kZSwgYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5lcywgYm9vbCYKICAg
ICAgICAgfQogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9O
T0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgaXNOdWxsU3RyaW5nID0gZmFsc2U7
CiAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CkBAIC0xNDU4LDcgKzE0NDAsNiBAQCB2b2lk
IE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgRUxFTUVOVF9OT0RFOgogICAg
ICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERToKICAgICAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOiB7CiAgICAgICAgICAg
ICBSZWY8Q29udGFpbmVyTm9kZT4gY29udGFpbmVyKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0
aGlzKSk7CiAgICAgICAgICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRh
aW5lcik7CkBAIC0xNDc4LDcgKzE0NTksNiBAQCB2b2lkIE5vZGU6OnNldFRleHRDb250ZW50KGNv
bnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIEVsZW1lbnQqIE5vZGU6OmFu
Y2VzdG9yRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgLy8gSW4gdGhlb3J5LCB0aGVyZSBjYW4gYmUg
RW50aXR5UmVmZXJlbmNlIG5vZGVzIGJldHdlZW4gZWxlbWVudHMsIGJ1dCB0aGlzIGlzIGN1cnJl
bnRseSBub3Qgc3VwcG9ydGVkLgogICAgIGZvciAoQ29udGFpbmVyTm9kZSogYW5jZXN0b3IgPSBw
YXJlbnROb2RlKCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnROb2RlKCkp
IHsKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCphbmNlc3RvcikpCiAgICAgICAgICAgICByZXR1
cm4gZG93bmNhc3Q8RWxlbWVudD4oYW5jZXN0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMDRlMzhkMjVi
NDNiNDBmYmQ1YjM2NGNmNDMzZTc3YzNjMTA3MzVjNC4uYTJmYzQzODg5NDBlMjJjZjc1YmY1OTVi
NzQ4OWRkODM5MmQ1MDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0xMjUsNyArMTI1LDYgQEAgcHVibGlj
OgogICAgICAgICBBVFRSSUJVVEVfTk9ERSA9IDIsCiAgICAgICAgIFRFWFRfTk9ERSA9IDMsCiAg
ICAgICAgIENEQVRBX1NFQ1RJT05fTk9ERSA9IDQsCi0gICAgICAgIEVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERSA9IDUsCiAgICAgICAgIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSA9IDcsCiAgICAg
ICAgIENPTU1FTlRfTk9ERSA9IDgsCiAgICAgICAgIERPQ1VNRU5UX05PREUgPSA5LApAQCAtMTM0
LDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgWFBBVEhfTkFNRVNQQUNFX05PREUgPSAxMywK
ICAgICB9OwogICAgIGVudW0gRGVwcmVjYXRlZE5vZGVUeXBlIHsKKyAgICAgICAgRU5USVRZX1JF
RkVSRU5DRV9OT0RFID0gNSwKICAgICAgICAgRU5USVRZX05PREUgPSA2LAogICAgICAgICBOT1RB
VElPTl9OT0RFID0gMTIsCiAgICAgfTsKQEAgLTQxNyw3ICs0MTcsNiBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0luU2hhZG93VHJlZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNJblNoYWRvd1Ry
ZWVGbGFnKTsgfQogICAgIGJvb2wgaXNJblRyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZs
YWcoc3RhdGljX2Nhc3Q8Tm9kZUZsYWdzPihJbkRvY3VtZW50RmxhZyB8IElzSW5TaGFkb3dUcmVl
RmxhZykpOyB9CiAKLSAgICBib29sIGlzUmVhZE9ubHlOb2RlKCkgY29uc3QgeyByZXR1cm4gbm9k
ZVR5cGUoKSA9PSBFTlRJVFlfUkVGRVJFTkNFX05PREU7IH0KICAgICBib29sIGlzRG9jdW1lbnRU
eXBlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RF
OyB9CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdW5zaWduZWQgY291bnRDaGlsZE5vZGVzKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IDQ4YTBhMTkyYTdiZWUwY2ZmMjA5ZDVl
YTRkODljOWMzMWEwNGM3MDkuLmRhOWQwMjNiMjVlOGY5ZjJiZjU3YWM4ODEwMzhkNzI1ZDVlMWM2
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC03Niw4ICs3Niw4IEBAIGJv
b2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRvUHJldmlvdXMoTm9kZSogcm9vdCkK
ICAgICByZXR1cm4gbm9kZTsKIH0KIAotTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9k
ZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5v
ZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9k
ZUZpbHRlcj4mJiBmaWx0ZXIpCisgICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0
VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkKICAgICAsIG1fcmVmZXJlbmNlTm9kZShyb290KCks
IHRydWUpCiB7CiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmF0dGFjaE5vZGVJdGVyYXRvcih0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAppbmRleCA5NzE5Mjc0YTNkYTFiOTc1NDA2YWE3
MWNjNWU5ZWFlNWYzYzdkMzM1Li40ZjE1MDdkZTAzYWMzMDNlNWYxODBiMzMxMTI2ODA3NGM2OTgw
ODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCkBAIC0zNyw5ICszNyw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE5vZGVJdGVyYXRvciA6IHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPE5vZGVJdGVyYXRvcj4sIHB1YmxpYyBOb2RlSXRl
cmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUl0ZXJhdG9y
PiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJl
bmNlcykKKyAgICAgICAgc3RhdGljIFJlZjxOb2RlSXRlcmF0b3I+IGNyZWF0ZShQYXNzUmVmUHRy
PE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmls
dGVyPiYmIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwg
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkp
OwogICAgICAgICB9CiAgICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIApAQCAtNTQsNyArNTQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9k
ZSYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9k
ZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wg
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIE5vZGVJdGVyYXRvcihQYXNzUmVmUHRy
PE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsK
IAogICAgICAgICBzdHJ1Y3QgTm9kZVBvaW50ZXIgewogICAgICAgICAgICAgUmVmUHRyPE5vZGU+
IG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCmluZGV4IDEyMDI1ZGU2YjhiNDk0
NzNlZmQ3Zjc4NDAxMWY0MWY3NjEzMDdiNjcuLjIzMTEyZDk5NDNmNTkzMzdhZmYxNWRhY2M3YzFl
ZTViN2E1Zjc5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3Iu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCkBAIC0yNiw3ICsy
Niw5IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBOb2RlRmlsdGVyIGZpbHRlcjsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAm
JiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4
cGFuZEVudGl0eVJlZmVyZW5jZXM7CisjZW5kaWYKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZSByZWZlcmVuY2VOb2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBvaW50ZXJC
ZWZvcmVSZWZlcmVuY2VOb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA1MmUyZjE5MzIxNjdh
ZmM4NWE1MTlkZTUwOWZkNTFiYWYxNjA5NDkzLi44YzFlMmIwZDgyNDA3Y2RlMjMwNmFmZjM2YjE1
YWE0OTE3NGEzNGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTU3Miw3ICs1NzIsNiBAQCBzdGF0
aWMgaW5saW5lIHVuc2lnbmVkIGxlbmd0aE9mQ29udGVudHNJbk5vZGUoTm9kZSogbm9kZSkKICAg
ICAgICAgcmV0dXJuIGRvd25jYXN0PENoYXJhY3RlckRhdGE+KCpub2RlKS5sZW5ndGgoKTsKICAg
ICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RF
OgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6
RE9DVU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICBj
YXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC03MzMsNyArNzMyLDYgQEAgUmVm
UHRyPE5vZGU+IFJhbmdlOjpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBl
IGFjdGlvbiwgUGFzc1JlZlB0cjwKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2RlOjpFTEVN
RU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAg
ICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVO
VF9GUkFHTUVOVF9OT0RFOgpAQCAtODU2LDEzICs4NTQsNiBAQCB2b2lkIFJhbmdlOjppbnNlcnRO
b2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6
IFJhaXNlZCBpZiBhbiBhbmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVyIGJvdW5kYXJ5LXBvaW50
IG9mCi0gICAgLy8gdGhlIFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBpZiAoY29udGFpbmVkQnlS
ZWFkT25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBS
YWlzZWQgaWYgdGhlIGNvbnRhaW5lciBvZiB0aGUgc3RhcnQgb2YgdGhlIFJhbmdlIGlzIG9mIGEg
dHlwZSB0aGF0CiAgICAgLy8gZG9lcyBub3QgYWxsb3cgY2hpbGRyZW4gb2YgdGhlIHR5cGUgb2Yg
bmV3Tm9kZSBvciBpZiBuZXdOb2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBjb250YWluZXIuCiAK
QEAgLTEwMjIsNyArMTAxMyw2IEBAIE5vZGUqIFJhbmdlOjpjaGVja05vZGVXT2Zmc2V0KE5vZGUq
IG4sIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5v
ZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
Tk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9k
ZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVT
UEFDRV9OT0RFOiB7CiAgICAgICAgICAgICBpZiAoIW9mZnNldCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKQEAgLTEwNTIsNyArMTA0Miw2IEBAIHZvaWQgUmFuZ2U6OmNoZWNrTm9k
ZUJBKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6
OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAg
ICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElU
WV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNU
SU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5v
ZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTA3Miw3ICsxMDYxLDYgQEAgdm9pZCBSYW5n
ZTo6Y2hlY2tOb2RlQkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAg
IGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZ
UEVfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2Ug
Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJ
TkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAg
ICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTQ5LDcgKzExMzcsNiBA
QCB2b2lkIFJhbmdlOjpzZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAg
ICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpF
TEVNRU5UX05PREU6Ci0gICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9E
RToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgog
ICAgICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6
OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTE2NSw3ICsxMTUyLDYgQEAgdm9pZCBSYW5nZTo6
c2VsZWN0Tm9kZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2Fz
ZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9O
T0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2Rl
OjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19J
TlNUUlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAg
Y2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyMDQsNyArMTE5MCw2IEBAIHZv
aWQgUmFuZ2U6OnNlbGVjdE5vZGVDb250ZW50cyhOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAg
ICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9k
ZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNF
X05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9E
RToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBO
b2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyNDMsMjAgKzEyMjgsMTIgQEAgdm9pZCBS
YW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJlbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToK
ICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxF
TUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAg
ICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNh
c2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9O
T0RFOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVyIG9mIGVpdGhlciBi
b3VuZGFyeS1wb2ludCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9ubHkuCi0gICAgaWYg
KGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIFJhaXNlIGEgSElF
UkFSQ0hZX1JFUVVFU1RfRVJSIGlmIHN0YXJ0Q29udGFpbmVyKCkgZG9lc24ndCBhY2NlcHQgY2hp
bGRyZW4gbGlrZSBuZXdQYXJlbnQuCiAgICAgTm9kZSogcGFyZW50T2ZOZXdQYXJlbnQgPSAmc3Rh
cnRDb250YWluZXIoKTsKIApAQCAtMTMzMCwzNiArMTMwNywxNiBAQCB2b2lkIFJhbmdlOjpjaGVj
a0RlbGV0ZUV4dHJhY3QoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IGlmICghY29tbW9uQW5jZXN0b3JDb250YWluZXIoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKGFjdGlvbiAhPSBFeHRyYWN0KQorICAgICAgICByZXR1cm47CisKICAgICBOb2RlKiBwYXN0
TGFzdCA9IHBhc3RMYXN0Tm9kZSgpOwogICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Tm9kZSgpOyBu
ICE9IHBhc3RMYXN0OyBuID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbikpIHsKLSAgICAgICAgaWYg
KG4tPmlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKGFjdGlvbiA9PSBFeHRyYWN0ICYmIG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6RE9DVU1FTlRf
VFlQRV9OT0RFKSB7CisgICAgICAgIGlmIChuLT5pc0RvY3VtZW50VHlwZU5vZGUoKSkgewogICAg
ICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAoY29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0g
ICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotfQotCi1ib29sIFJhbmdlOjpjb250YWluZWRCeVJlYWRPbmx5KCkgY29uc3QKLXsK
LSAgICBmb3IgKE5vZGUqIG4gPSAmc3RhcnRDb250YWluZXIoKTsgbjsgbiA9IG4tPnBhcmVudE5v
ZGUoKSkgewotICAgICAgICBpZiAobi0+aXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KLSAgICBmb3IgKE5vZGUqIG4gPSAmZW5kQ29udGFpbmVyKCk7IG47
IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwogfQog
CiBOb2RlKiBSYW5nZTo6Zmlyc3ROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggYzhmMjk5
M2FkZDBkMTU5ZmFjNTJiZGFjN2YxY2M5MzBiZGU1ZjZlZS4uNGMxMTE2MjBhNzJkNzE3ODU4MjU1
Y2Q5ZTAzNTFlMzRlZWJlMjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTE2MSw3ICsxNjEsNiBAQCBw
cml2YXRlOgogCiAgICAgTm9kZSogY2hlY2tOb2RlV09mZnNldChOb2RlKiwgaW50IG9mZnNldCwg
RXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tOb2RlQkEoTm9kZSosIEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSBjb25zdDsK
IAogICAgIGVudW0gQWN0aW9uVHlwZSB7IERlbGV0ZSwgRXh0cmFjdCwgQ2xvbmUgfTsKICAgICB2
b2lkIGNoZWNrRGVsZXRlRXh0cmFjdChBY3Rpb25UeXBlLCBFeGNlcHRpb25Db2RlJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggYjdmZDk3MjdmZmU3YzlmNTBmNjI4ODlhNTBiODJm
NzEwNGZiZmIzOS4uYjRkZmUxMDZiM2FjMTY5NDYzOTk0NmI4NmY1MTk2YTIxNzJkMGFiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMTAwLDcgKzEwMCw2IEBAIGJvb2wgU2hhZG93
Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09N
TUVOVF9OT0RFOgogICAgIGNhc2UgVEVYVF9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9O
T0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJz
YWwuY3BwCmluZGV4IDc0YTkyOGY3Y2MwMjliNmYzM2NmZGNlNTFhMWYyYTNhMzFmZWRiNTIuLjNj
NGE5NTViMTExMDZjZGEyMjI4NWE5ZjUyNzE3MDdiMWQ5Yzc3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2
ZXJzYWwuY3BwCkBAIC0zMCwxOCArMzAsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1O
b2RlSXRlcmF0b3JCYXNlOjpOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5v
ZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZp
bHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yQmFzZTo6Tm9k
ZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdo
YXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIG5vZGVGaWx0ZXIpCiAgICAgOiBtX3Jvb3Qo
cm9vdE5vZGUpCiAgICAgLCBtX3doYXRUb1Nob3cod2hhdFRvU2hvdykKICAgICAsIG1fZmlsdGVy
KFdURjo6bW92ZShub2RlRmlsdGVyKSkKLSAgICAsIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlcyhl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKQogewogfQogCiBzaG9ydCBOb2RlSXRlcmF0b3JCYXNlOjph
Y2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IFRvIGhhbmRsZSBY
TUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBjaGVjayBtX2V4cGFuZEVudGl0eVJlZmVyZW5j
ZXMuCi0KICAgICAvLyBUaGUgYml0IHR3aWRkbGluZyBoZXJlIGlzIGRvbmUgdG8gbWFwIERPTSBu
b2RlIHR5cGVzLCB3aGljaCBhcmUgZ2l2ZW4gYXMgaW50ZWdlcnMgZnJvbQogICAgIC8vIDEgdGhy
b3VnaCAxNCwgdG8gd2hhdFRvU2hvdyBiaXQgbWFza3MuCiAgICAgaWYgKCEoKCgxIDw8IChub2Rl
LT5ub2RlVHlwZSgpIC0gMSkpICYgbV93aGF0VG9TaG93KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJhdmVyc2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgK
aW5kZXggZWQ2ZThkZGJkMGMyNjYxNWUzMzdhMmU0MmM5YjlkOTM1OGY4ZmRkYS4uZmZiZDU0OWIx
ZGU4NDg2MDQzZWU0ZDBiNDIwYTdkZGNhNzQ4ZmE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyYXZlcnNhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaApA
QCAtMzgsMTcgKzM4LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9kZSogcm9v
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdC5nZXQoKTsgfQogICAgICAgICB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3coKSBjb25zdCB7IHJldHVybiBtX3doYXRUb1Nob3c7IH0KICAgICAgICAgTm9k
ZUZpbHRlciogZmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXIuZ2V0KCk7IH0KLSAgICAg
ICAgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbmRF
bnRpdHlSZWZlcmVuY2VzOyB9CisgICAgICAgIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIE5vZGVJ
dGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBS
ZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAg
ICAgTm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRU
b1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShO
b2RlKikgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290
OwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fd2hhdFRvU2hvdzsKICAgICAgICAgUmVmUHRyPE5v
ZGVGaWx0ZXI+IG1fZmlsdGVyOwotICAgICAgICBib29sIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNl
czsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtl
ci5jcHAKaW5kZXggYWQwYWNlMTk5YjdkYTY5ZWVjYjIwNDNhMjhjOWVmNDRmYzA2M2Q0Ni4uODc3
NDgyYWZmNDdhM2M1NDM0YWY3NTMyZTZkYzA1M2QxNTEzY2QxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmNwcApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRy
ZWVXYWxrZXI6OlRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5k
RW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRU
b1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorVHJlZVdh
bGtlcjo6VHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKKyAgICA6IE5vZGVJdGVy
YXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpKQogICAgICwg
bV9jdXJyZW50KHJvb3QoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCmluZGV4IGJmNjli
ZGVjZTA5OWJjZDE0ZGJhZmQ1OGYwMTdjZmJkODdiNTE1NjMuLjIyOGYyM2Q0NzQ2YTIxNTliYjUw
YmY2YWE2Mjc4OGI3MzM2NGZiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaApAQCAtMzcsOSAr
MzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUcmVlV2Fsa2VyIDogcHVi
bGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8VHJlZVdhbGtlcj4sIHB1Ymxp
YyBOb2RlSXRlcmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8VHJl
ZVdhbGtlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXMpCisgICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRlKFBhc3NS
ZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5v
ZGVGaWx0ZXI+JiYgZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUcmVlV2Fsa2VyKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVy
KSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVHJlZVdhbGtlcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikp
KTsKICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICBOb2Rl
KiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQpAQCAtNTQs
NyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUqIG5leHROb2RlKCk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVu
c2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5k
RW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIFRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAg
IAogICAgICAgICBOb2RlKiBzZXRDdXJyZW50KFBhc3NSZWZQdHI8Tm9kZT4pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVdhbGtlci5pZGwKaW5kZXggNDgwOWVlM2Q0ZjFkMWZkNDA4NWUxYTExOTczYThkZjQw
MjBlNDcxNS4uYWQ1Y2I1ZDY0MDMxMGY4YzAzODk2MWY1MTMyZDViZGRkMjM2NmM3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlV2Fsa2VyLmlkbApAQCAtMjYsNyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBOb2RlIHJvb3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAg
ICAgIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVD
VElWRV9DCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJl
bmNlczsKKyNlbmRpZgogICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2Rl
IGN1cnJlbnROb2RlOwogCiAgICAgTm9kZSBwYXJlbnROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IDgzNDU1NzIwNDk2YTBkMTBkZDA2
ZmMwZWE0ZWViZjQzOGNiNGVjMjYuLjcxMmFiZmFmOGNlY2NjOGYyNzc2ZWE1MDU4NmRjM2EwMTBh
Y2Y1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3Bw
CkBAIC01NzMsNyArNTczLDYgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRN
YXJrdXAoU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBjb25zdCBOb2RlJiBub2QKICAgICAgICAgYXBw
ZW5kQ0RBVEFTZWN0aW9uKHJlc3VsdCwgZG93bmNhc3Q8Q0RBVEFTZWN0aW9uPihub2RlKS5kYXRh
KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAg
IGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6WFBBVEhf
TkFNRVNQQUNFX05PREU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKaW5kZXggNmY2NjRkODQwMWZmNzE3MDUyNjg2
MDNlMDQxZWJmNzdiNThmM2M0NC4uYmVhZGI0ZGYyMGZlOGU0NDBhMjUzNGMyMTk0Y2M4ODdhNjQ3
NjY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKQEAgLTcxLDcgKzcxLDYgQEAgYm9vbCBp
c1ZhbGlkQ29udGV4dE5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZF
UkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBOb2Rl
OjpURVhUX05PREU6CiAgICAgICAgICAgICByZXR1cm4gIShub2RlLT5wYXJlbnROb2RlKCkgJiYg
bm9kZS0+cGFyZW50Tm9kZSgpLT5pc0F0dHJpYnV0ZU5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5h
bHMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01JbnRlcm5hbHMubW0KaW5kZXggZTVjNmYwMmZjOGRjODExMDg4ODNlYWI3NTAyYzUyMzg4
OGZlN2VlMy4uZDU3ZGZjZDNlYmEwZDI3NTQ2OTUxZmVmNGU0ODA0ZGJhMjI3ZTg3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
RE9NSW50ZXJuYWxzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5tbQpAQCAtNzYsNyArNzYsNiBAQCBzdGF0aWMg
Q2xhc3MgV0tET01Ob2RlQ2xhc3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKICAgICAgICAgcmV0dXJu
IFtXS0RPTVRleHQgY2xhc3NdOwogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6QVRUUklCVVRFX05P
REU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBXZWJDb3Jl
OjpOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpET0NVTUVOVF9UWVBF
X05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KaW5kZXggODcxMDVhOGI2Y2Y2ZGE5OTkwMWMxMWQ3YWJhMDRhZmVkMmVmODNk
MS4uODYzYTg1NGU5NmU0ZmIyNWM0ZjQwOGE0NTZmMjFjZmI4OTllNGIxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAt
MjMyNCwxMSArMjMyNCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBc3Npc3RhYmxlRWxlbWVu
dChFbGVtZW50JiBub2RlKQogICAgIGlmIChpczxIVE1MU2VsZWN0RWxlbWVudD4obm9kZSkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChpczxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2Rl
KSkKLSAgICAgICAgcmV0dXJuICFkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKS5p
c1JlYWRPbmx5Tm9kZSgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoaXM8SFRNTElu
cHV0RWxlbWVudD4obm9kZSkpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVt
ZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obm9kZSk7CiAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIGxhdW5kcnkgbGlzdCBvZiB0eXBlcyBpcyBub3QgYSBnb29kIHdheSB0byBmYWN0b3Ig
dGhpcy4gTmVlZCBhIHN1aXRhYmxlIGZ1bmN0aW9uIG9uIEhUTUxJbnB1dEVsZW1lbnQgaXRzZWxm
LgotICAgICAgICByZXR1cm4gIWlucHV0RWxlbWVudC5pc1JlYWRPbmx5Tm9kZSgpICYmIChpbnB1
dEVsZW1lbnQuaXNUZXh0RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlRmllbGQoKSB8fCBp
bnB1dEVsZW1lbnQuaXNEYXRlVGltZUxvY2FsRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNNb250
aEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzVGltZUZpZWxkKCkpOworICAgICAgICByZXR1cm4g
aW5wdXRFbGVtZW50LmlzVGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZUZpZWxkKCkg
fHwgaW5wdXRFbGVtZW50LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50Lmlz
TW9udGhGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpOwogICAgIH0KICAgICBy
ZXR1cm4gbm9kZS5pc0NvbnRlbnRFZGl0YWJsZSgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM4MWUwZDE5MzA1NmE3
NmI0OWQxNjA4Y2ZhZjcxZWIyOTllYjAyODMuLjA5MzFiZTczODA3MjA0M2FlYzJiZTllZDE5NTM3
NjYyNmY2MDBmODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNCBAQAogMjAxNS0wOS0xOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5
IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHNldmVyYWwgb3V0ZGF0ZWQgRE9NIGNvbXBsaWFu
Y2UgdGVzdHMuIFVwZGF0ZSAvIFJlYmFzZWxpbmUgb3RoZXJzLgorCisyMDE1LTA5LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBF
bnRpdHkgTm9kZSB0eXBlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDkyMzkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDNiNGUz
YTVlMGMzNzgyMTZhMDBlMzA2NTFhZTliNzA1ZGVjYzE0Zi4uNWQ1ZjdlZDZlNDQ0YTk4MTNlNTVh
YmQ4NTNhMGZhMGI0ZjkwZWZjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMTYgQEAKIDIwMTUtMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAorICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5v
ZGUgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmViYXNlbGluZSBXM0MgRE9NIHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3Npbmcu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQu
dHh0OgorCisyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAg
ICAgICAgRHJvcCBzdXBwb3J0IGZvciBFbnRpdHkgTm9kZSB0eXBlCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkyMzkKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyYThlNDY2MTI0YjE4
ZmY0YzViNjQ3ZWFiZmE3NzAxNTQ0ZDgxZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2I1OWFjMzY2OWEwY2Q2NzZiNDZlNGQ5ZmNiNzRmYjYxNmIxODNh
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6
Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0
bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2Ny
aXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJk
b2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMiPjwvc2NyaXB0
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41
NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+
MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1U
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+
Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
Tm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+
MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
Zi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U3ZTEyNzg0MWVmOTg2ZDYxNjg2
OWEyMjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNo
ZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAlj
YXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91
cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hy
b25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0
YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVz
dCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotLyoqCi0qIAotICAgIFRoZSAiY3JlYXRlRW50aXR5UmVmZXJlbmNlKHRh
Z05hbWUpIiBtZXRob2QgcmFpc2VzIGFuCi0gICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgRE9NRXhj
ZXB0aW9uIGlmIHRoZSBzcGVjaWZpZWQKLSAgIHRhZ05hbWUgY29udGFpbnMgYW4gaW52YWxpZCBj
aGFyYWN0ZXIuIAotCi0qIEBhdXRob3IgTklTVAotKiBAYXV0aG9yIE1hcnkgQnJhZHkKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0nSU5W
QUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9S
RUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0Bu
YW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJTlZB
TElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1Ymxp
Yy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2
YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0
L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJmb28iKTsK
LSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29k
ZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0
aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsK
LQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50
aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiaW52YWxpZF5OYW1lIik7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
SU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQkJfQotCQotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9s
ZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYx
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWFlYmU0MDQ0NzhkOGIwMjViNTFjNmFlM2MzNjY1
ZDVhMzcwMzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEK
LVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1s
IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzYjZkMDljZGFiYzIwYzE3MjY1YWFmMjU5NzZlMzMyNDlmNWQxYjk0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3Jn
L1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjRkMWVjOTc1MzI5YjE3ZDcyM2NlM2MwZTk3OWU1
ZDVmOTBmNDBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0
dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1w
dHkgbmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRo
b3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYn
KS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNv
cmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUn
KS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmlu
Zy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24g
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxk
ZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3Mg
PSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBz
dWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkp
OwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsK
LQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCIiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2Yo
ZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRU
cnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0J
Ci19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTA4MmNiZWFlNGY2ZDg4ZGZkMDY0
ZWRiNGMyZDlhYWI5NjE1YzNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1
ZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0YmI3YmI4YzgxMDljZjU5M2RmZWY4NWJjOWNkMzRhZTRjYjI4OGQxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9o
dG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAx
Ly9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwh
LS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzIGIvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjYzJhZTM1ZTI3YjQ5NDQ4ZDA3ZDYxNjRiNDliMGE5
ODMwY2NmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZh
bHVlMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJY
TUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5z
IGVudGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0
cmdldHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFj
cm9ueW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0g
ICAgICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2Rl
OwotICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFs
cGhhUmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7
Ci0gICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVz
ID0gdGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5n
ZXROYW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50
VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJhbHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0J
Ci0JCWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBo
YSIpOwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICBy
ZXR2YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAg
ICAgdmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZh
bHVlMSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzcwYzdjM2RiMWRmZTc4ZDg3
YTUxYzRiYWQxMTZkMjk4MzhmMWMwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFs
dWUwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3Q6CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZh
bHVlMDMKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI4MDQ2ZjEyZmI4OGIyZWI5Y2U2NmY5NjBmMmIyYmQxOWE0NzdhOWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIg
Ci0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5o
Y19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0
bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJoY19ub2RldmFsdWUwMy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTYxNjcxYWE0YjM4YTY1YTFjZWQ0Zjk1OWE4YjE0NjM1ZjMxMjU4NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzIjsKLSAgIH0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1BbiBlbnRpdHkgcmVmZXJlbmNlIGlzIGNyZWF0ZWQsIHNldE5vZGVW
YWx1ZSBpcyBjYWxsZWQgd2l0aCBhIG5vbi1udWxsIGFyZ3VtZW50LCBidXQgZ2V0Tm9kZVZhbHVl
Ci1zaG91bGQgc3RpbGwgcmV0dXJuIG51bGwuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI0lELUY2OEQwODAKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4
L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0xMUM5ODQ5MAotKi8K
LWZ1bmN0aW9uIGhjX25vZGV2YWx1ZTAzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfbm9kZXZhbHVlMDMiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdOb2RlOwotICAgICAgdmFyIG5ld1ZhbHVl
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
IAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7
Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBuZXdOb2Rl
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURf
RVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJbmV3Tm9kZSA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIGFzc2VydE5vdE51bGwoImNyZWF0
ZWRFbnRSZWZOb3ROdWxsIixuZXdOb2RlKTsKLW5ld1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7
Ci0KLSAgICAgIGFzc2VydE51bGwoImluaXRpYWxseU51bGwiLG5ld1ZhbHVlKTsKLSAgICBuZXdO
b2RlLm5vZGVWYWx1ZSA9ICJUaGlzIHNob3VsZCBoYXZlIG5vIGVmZmVjdCI7Ci0KLSAgICAgIG5l
d1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51bGwoIm51bGxBZnRl
ckF0dGVtcHRlZENoYW5nZSIsbmV3VmFsdWUpOwotICAgIAotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19ub2RldmFsdWUwMygpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVf
Tk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZl
bDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzhjZWMwYTg5ZDRhNWZhY2U2
YjNjYjI0MDM2OTg3ZDc5OGI2Zjg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVh
dG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLVhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJS
OiBTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyBiL0xheW91dFRlc3Rz
L2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JU
RURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmUwMThjOGE2NjMwNTQ5
Njc4M2QxYjc1YWMwZTc0YmYyMjM3ZGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTE5ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLS8vIGV4cG9zZSB0ZXN0IGZ1bmN0aW9uIG5hbWVzCi1mdW5jdGlvbiBleHBvc2VU
ZXN0RnVuY3Rpb25OYW1lcygpCi17Ci1yZXR1cm4gWydYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9O
T1RfU1VQUE9SVEVEX0VSUiddOwotfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFy
IGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0
aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3Vp
dGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBh
c3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhl
cndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBl
eGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0
aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRV
cFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNy
ZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8v
Ci0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2Nz
TG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2Mi
LCAic3RhZmZOUyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBj
YXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8v
Ci0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAg
ICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAg
IFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0v
LyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAg
ICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qICAgICAgIAotICAgICAgVGVz
dCBpZiBYUGF0aEV2YWx1YXRvci5ldmFsdWF0ZSBwcm9wZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRF
RF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBlIExlIEjDqWdhcmV0Ci0qIEBhdXRob3Ig
Qm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwt
My1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV2YWx1YXRvci1ldmFsdWF0ZQotKi8KLWZ1bmN0
aW9uIFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiWFBhdGhFdmFs
dWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAg
dmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRvcjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAg
ICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwotCi0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51
bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVhdG9yID0gY3JlYXRlWFBhdGhFdmFs
dWF0b3IoZG9jKTsKLWNvbnRleHROb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50
aXR5bmFtZSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZXN1bHQgPSB4cEV2YWx1YXRvci5ldmFsdWF0ZSgiLy9mb286YmFyIixjb250ZXh0
Tm9kZSxudWxsTlNSZXNvbHZlciwwLG51bGxSZXN1bHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJS
IixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIFhQ
YXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0
aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YjhiZGMxYzZkNDA5NTk2ZTJhZTQ4NDIwZDdiZTdjZTkx
ODJlOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi08c3ZnIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6bmlzdD0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiLz4NCi08
c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9IlhQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIi8+DQotPHNjcmlwdCB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJzdmd1bml0LmpzIi8+DQotPC9zdmc+
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHBy
ZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQ
UE9SVEVEX0VSUi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEw
YTdkY2M2YTY0MGY3ZjZmMDZjY2JmNGJlMDcwNjA1MjU1OTQ3ODAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUjogU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURf
RVJSLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9u
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhY2Y2MTQ2NjEwOTNjY2ZjYzUxNzhiODY0YTZhMmMwYjI5ZGY4Njk1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcv
bGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0vLyBleHBvc2UgdGVzdCBmdW5jdGlvbiBu
YW1lcwotZnVuY3Rpb24gZXhwb3NlVGVzdEZ1bmN0aW9uTmFtZXMoKQotewotcmV0dXJuIFsnWFBh
dGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSJ107Ci19Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICAgIAotICAgICAgIGlm
IChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRp
b25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBp
biBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9j
dW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQg
d2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVk
LgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0v
KioKLSogICAgICAgCi0gICAgICBUZXN0IGlmIFhQYXRoRXhwcmVzc2lvbi5ldmFsdWF0ZSBwcm9w
ZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBl
IExlIEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5v
cmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV4cHJl
c3Npb24tZXZhbHVhdGUKLSovCi1mdW5jdGlvbiBYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxp
emF0aW9uKGJ1aWxkZXIsICJYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9F
UlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRv
cjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAgICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwot
Ci0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsK
LSAgICAgIHZhciB4cGF0aEV4cHJlc3Npb247Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwg
ImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICB4cEV2YWx1YXRvciA9IGNyZWF0ZVhQYXRoRXZhbHVh
dG9yKGRvYyk7Ci14cGF0aEV4cHJlc3Npb24gPSB4cEV2YWx1YXRvci5jcmVhdGVFeHByZXNzaW9u
KCIvL2ZvbyIsbnVsbE5TUmVzb2x2ZXIpOwotICAgICAgY29udGV4dE5vZGUgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJlbnRpdHluYW1lIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHhwYXRoRXhwcmVzc2lvbi5ldmFs
dWF0ZShjb250ZXh0Tm9kZSwwLG51bGxSZXN1bHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixz
dWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIFhQYXRo
RXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRl
X05PVF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRo
L1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmODZkNzUwYTM5ZGFhZjQ2Y2IwNGQ5ZjEzYTI3MGNmMjU1
Y2NjZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05P
VF9TVVBQT1JURURfRVJSLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOm5pc3Q9Imh0dHA6Ly93d3cu
bmlzdC5nb3YiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+DQot
PHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJYUGF0aEV4
cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMiLz4NCi08c2NyaXB0IHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9InN2Z3VuaXQuanMiLz4NCi08L3N2
Zz4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkMmQ2ZDE3NzBhMTI3ODk5YTIyYWFjZjM2ZmNmOTg2MTI2MDc3M2FmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmCi1TdGF0dXMJU3VjY2VzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlN2UxMjc4NDFlZjk4NmQ2MTY4
NjlhMjI0MTQ4MTYxYTM5MTcwMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcworKysgL2Rldi9udWxsCkBAIC0x
LDE0MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7
Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVz
dCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlv
bnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4g
IE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQg
dGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVy
aW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAg
IHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8v
ICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAg
ICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAg
Y2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAg
CWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRo
b2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9u
b3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5j
aHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ug
c3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0
ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgr
K2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJjcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
dGFnTmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFMSURfQ0hBUkFDVEVSX0VSUiBET01F
eGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFtZSBjb250YWlucyBhbiBpbnZhbGlk
IGNoYXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBhdXRob3IgTWFyeSBCcmFkeQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2NvbnN0YW50W0BuYW1lPSdJ
TlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4
L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0zOTJCNzVBRQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3JhaXNlcy9leGNlcHRpb25b
QG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJlZm9yZSguLCc6Jyk9J0lO
VkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVi
bGljL3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlvbiBkb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAg
IHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRl
eHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZvbyIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2Ug
ewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRF
bnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJpbnZhbGlkXk5hbWUiKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkODEwOTgzMzIxMDRmMTBhOWEwNzNhZDAxZTRlNGExM2I4YTFlMzhjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25j
cmVhdGVlbnRyZWYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJp
Y3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEg
IiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRh
ICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFs
cGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFG
aWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNv
bW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hl
YWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVm
ZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0
aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdh
bW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJv
bmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29k
ZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVu
dHJlZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjNiYzk5ODViNWMyYjdmNjAxYTEwZjg0
ZTM5ZTY1MzY4MTM0Njg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVu
dHJlZjEKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVm
MS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNGQxZWM5NzUzMjliMTdkNzIzY2UzYzBlOTc5ZTVkNWY5MGY0MGEyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1D
cmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1wdHkgbmFtZSBzaG91bGQgY2F1
c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9s
ZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0n
SU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5
OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9s
ZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9u
W0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJ
TlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1
YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hh
cmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAg
ICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0g
InRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZv
byIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihl
eC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRy
dWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVs
c2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBi
YWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCIiKTsKLSAgICAgICAgfQot
CQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVm
aW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19JTlZBTElE
X0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS54aHRt
bCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmODNiYWI5ODRhZTdjYTJhZmViY2EwMjRlYzNkODBiODdkNDhmZTg0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElD
ICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0
ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0
NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5
NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFB
VFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgot
ICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9j
b2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVu
Y2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24g
d2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7
Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMjA5YzNlNDM2NGVkYzQ1NWQ1NGQ0MTUyMDk0ZTJl
NjZhYWQ3NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMgotU3Rh
dHVzCWZhaWx1cmUKLU1lc3NhZ2UJYXR0clZhbHVlMTogYXNzZXJ0RXF1YWxzIGZhaWxlZCwgYWN0
dWFsIFnOsSwgZXhwZWN0ZWQgzrFZzrEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NGNjMmFlMzVlMjdiNDk0NDhkMDdkNjE2NGI0OWIwYTk4MzBjY2YxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMiI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DaGVj
a3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5zIGVudGl0eSByZWZlcmVu
Y2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0yMjE2NjI0
NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0g
ICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0cmdldHZhbHVlMiIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFjcm9ueW1MaXN0OwotICAg
ICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0gICAgICB2YXIgdGl0bGVB
dHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIHJl
dHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFscGhhUmVmOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGFjcm9ueW1M
aXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7Ci0gICAgICB0ZXN0Tm9k
ZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVzID0gdGVzdE5vZGUuYXR0
cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oImNs
YXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9o
dG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAg
ICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJ
YWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgZmly
c3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICByZXR2YWwgPSB0aXRsZUF0
dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAgICAgdmFsdWUgPSB0aXRs
ZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZhbHVlMSIsIs6xWc6xIix2
YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBhMmU0MDEzOGM1NTA4NDlkNzlkMTdhODRhOWU0MjdiMjg1ZWVmYjku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RB
VEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0
bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNl
bGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iaGNfYXR0cmdldHZhbHVlMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4
YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJl
ZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29k
ZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZn
YW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4K
LSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFu
YWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFz
IDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0
cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwv
Y29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9u
eW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDdiMWEyNjJmYTg4MTZlOTcxZWMzMDc5NmQ3NjU5
OTRlZjk4ZTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMwotU3RhdHVz
CWVycm9yCi1NZXNzYWdlCUVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUv
aGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNf
bm9kZXZhbHVlMDMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MTY3MWFhNGIz
OGE2NWExY2VkNGY5NTlhOGIxNDYzNWYzMTI1ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hj
X25vZGV2YWx1ZTAzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFuIGVu
dGl0eSByZWZlcmVuY2UgaXMgY3JlYXRlZCwgc2V0Tm9kZVZhbHVlIGlzIGNhbGxlZCB3aXRoIGEg
bm9uLW51bGwgYXJndW1lbnQsIGJ1dCBnZXROb2RlVmFsdWUKLXNob3VsZCBzdGlsbCByZXR1cm4g
bnVsbC4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtRjY4RDA4
MAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgx
MDAxL2xldmVsLW9uZS1jb3JlI0lELTExQzk4NDkwCi0qLwotZnVuY3Rpb24gaGNfbm9kZXZhbHVl
MDMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJoY19ub2RldmFsdWUwMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIG5ld05vZGU7Ci0gICAgICB2YXIgbmV3VmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIu
Y29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIG5ld05vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJlbnQxIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
CX0KLQkKLQkJZWxzZSB7Ci0JCQluZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
ZW50MSIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgiY3JlYXRlZEVudFJlZk5vdE51bGwiLG5ld05v
ZGUpOwotbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgi
aW5pdGlhbGx5TnVsbCIsbmV3VmFsdWUpOwotICAgIG5ld05vZGUubm9kZVZhbHVlID0gIlRoaXMg
c2hvdWxkIGhhdmUgbm8gZWZmZWN0IjsKLQotICAgICAgbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVW
YWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgibnVsbEFmdGVyQXR0ZW1wdGVkQ2hhbmdlIixuZXdW
YWx1ZSk7Ci0gICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
IGhjX25vZGV2YWx1ZTAzKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEyNzY1MWVjODlmYTg4MGJiNTI0Y2EyNGJhZjllMWM1MjgxZmQyZTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NjAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08
IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+
Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+
Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5
OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24x
IFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0g
Im5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgot
XT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imhj
X25vZGV2YWx1ZTAzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9u
Zz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAg
ICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNy
b255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEg
UmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJl
ciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwv
Y29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0
PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJv
Z2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgot
ICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29u
bm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+
MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08
L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzc5M2UwNGNiNjRkOWJlOGFmNWYwNmI3ZTUzODZjZjI0
NmFiYzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYK
LVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4MDRiOTQ4MTUyOGZlMjA4MWZiM2E0ZGMzZDQ5ZDI1ZDA1NWE4ZjIzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTc1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNiI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSBhZG9wdE5vZGUgb24gYSBuZXcgZG9jdW1lbnQg
dG8gYWRvcHQgdGhlIGEgbmV3IEF0dHJpYnV0ZSBub2RlIGhhdmluZyBhIFRleHQgYW5kIGFuIEVu
dGl0eVJlZmVyZW5jZSAKLQljaGlsZC4gIENoZWNrIGlmIHRoaXMgYXR0cmlidXRlIGhhcyBiZWVu
IGFkb3B0ZWQgc3VjY2Vzc2Z1bGx5IGJ5IHZlcmlmeWluZyB0aGUgbm9kZU5hbWUsIG5hbWVzcGFj
ZVVSSSwgcHJlZml4LCAKLQlzcGVjaWZpZWQgYW5kIG93bmVyRWxlbWVudCBhdHRyaWJ1dGVzIG9m
IHRoZSBhZG9wdGVkIG5vZGUuICBBbHNvIHZlcmlmeSB0aGUgb3duZXJEb2N1bWVudCBhdHRyaWJ1
dGUKLQlvZiB0aGUgYWRvcHRlZCBub2RlIGFuZCB0aGUgYWRvcHRlZCBjaGlsZHJlbiBvZiB0aGUg
YXR0cmlidXRlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAw
NDA0MDcvY29yZSNEb2N1bWVudDMtYWRvcHROb2RlCi0qLwotZnVuY3Rpb24gZG9jdW1lbnRhZG9w
dG5vZGUwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgImRvY3VtZW50YWRvcHRub2RlMDYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIHZhciBu
ZXdBdHRyOwotICAgICAgdmFyIG5ld1RleHQ7Ci0gICAgICB2YXIgbmV3RW50UmVmOwotICAgICAg
dmFyIGFkb3B0ZWRBdHRyOwotICAgICAgdmFyIGFkb3B0VGV4dDsKLSAgICAgIHZhciBhZG9wdEVu
dFJlZjsKLSAgICAgIHZhciBub2RlTGlzdDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZh
ciBub2RlTmFtZXNwYWNlVVJJOwotICAgICAgdmFyIG5vZGVQcmVmaXg7Ci0gICAgICB2YXIgYXR0
ck93bmVyRWxlbTsKLSAgICAgIHZhciBpc1NwZWNpZmllZDsKLSAgICAgIHZhciBhZG9wdGVkVGV4
dE5vZGVWYWx1ZTsKLSAgICAgIHZhciBhZG9wdGVkRW50UmVmTm9kZVZhbHVlOwotICAgICAgdmFy
IG51bGxEb2NUeXBlID0gbnVsbDsKLQotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2
YXIgZG9jRWxlbTsKLSAgICAgIHZhciByb290TlM7Ci0gICAgICB2YXIgcm9vdE5hbWU7Ci0gICAg
ICB2YXIgeG1sTlMgPSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIjsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NF
bGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5hbWUgPSBkb2NFbGVtLnRh
Z05hbWU7Ci0KLSAgICAgIHJvb3ROUyA9IGRvY0VsZW0ubmFtZXNwYWNlVVJJOwotCi0gICAgICBk
b21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9tSW1wbC5jcmVhdGVEb2N1
bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAgbmV3QXR0ciA9IGRvYy5j
cmVhdGVBdHRyaWJ1dGVOUyh4bWxOUywieG1sOmxhbmciKTsKLSAgICAgIG5ld1RleHQgPSBkb2Mu
Y3JlYXRlVGV4dE5vZGUoIlRleHQgTm9kZSIpOwotICAgICAgbmV3RW50UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBuZXdBdHRy
LmFwcGVuZENoaWxkKG5ld1RleHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IG5ld0F0dHIuYXBw
ZW5kQ2hpbGQobmV3RW50UmVmKTsKLSAgICAgIGFkb3B0ZWRBdHRyID0gbmV3RG9jLmFkb3B0Tm9k
ZShuZXdBdHRyKTsKLSAgICAgIAotCWlmKAotCQotCShhZG9wdGVkQXR0ciAhPSBudWxsKQotCi0J
KSB7Ci0Jbm9kZU5hbWUgPSBhZG9wdGVkQXR0ci5ub2RlTmFtZTsKLQotICAgICAgbm9kZU5hbWVz
cGFjZVVSSSA9IGFkb3B0ZWRBdHRyLm5hbWVzcGFjZVVSSTsKLQotICAgICAgbm9kZVByZWZpeCA9
IGFkb3B0ZWRBdHRyLnByZWZpeDsKLQotICAgICAgYXR0ck93bmVyRWxlbSA9IGFkb3B0ZWRBdHRy
Lm93bmVyRWxlbWVudDsKLQotICAgICAgaXNTcGVjaWZpZWQgPSBhZG9wdGVkQXR0ci5zcGVjaWZp
ZWQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9ub2RlTmFtZSIs
InhtbDpsYW5nIixub2RlTmFtZSk7Ci0gICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0
bm9kZTA2X25hbWVzcGFjZVVSSSIseG1sTlMsbm9kZU5hbWVzcGFjZVVSSSk7Ci0gICAgICAgYXNz
ZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X3ByZWZpeCIsInhtbCIsbm9kZVByZWZpeCk7
Ci0gICAgICAgYXNzZXJ0TnVsbCgiZG9jdW1lbnRhZG9wdG5vZGUwNl9vd25lckRvYyIsYXR0ck93
bmVyRWxlbSk7Ci0gICAgYXNzZXJ0VHJ1ZSgiZG9jdW1lbnRhZG9wdG5vZGUwNl9zcGVjaWZpZWQi
LGlzU3BlY2lmaWVkKTsKLW5vZGVMaXN0ID0gYWRvcHRlZEF0dHIuY2hpbGROb2RlczsKLQotICAg
ICAgYWRvcHRUZXh0ID0gbm9kZUxpc3QuaXRlbSgwKTsKLSAgICAgIGFkb3B0RW50UmVmID0gbm9k
ZUxpc3QuaXRlbSgxKTsKLSAgICAgIGFkb3B0ZWRUZXh0Tm9kZVZhbHVlID0gYWRvcHRUZXh0Lm5v
ZGVWYWx1ZTsKLQotICAgICAgYWRvcHRlZEVudFJlZk5vZGVWYWx1ZSA9IGFkb3B0RW50UmVmLm5v
ZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfVGV4dE5v
ZGVWYWx1ZSIsIlRleHQgTm9kZSIsYWRvcHRlZFRleHROb2RlVmFsdWUpOwotICAgICAgIGFzc2Vy
dEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9FbnRSZWZOb2RlVmFsdWUiLCJhbHBoYSIsYWRv
cHRlZEVudFJlZk5vZGVWYWx1ZSk7Ci0gICAgICAgCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlv
biBydW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUwNigpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYueGh0
bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUw
Ni54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjkyZDg5MGRhZGI1YTg3MzU5
ZjQ5ZmVkNDE5OTQ3MzU4NGQyMTcyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRh
ZG9wdG5vZGUwNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMDYu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRu
b2RlMTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyOGFiMTg4NjFmYmU4YTUwZjU5YzgxMmFlYmQwNTMzOWVhNTdjZjVkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYKLVN0YXR1cwlTdWNjZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9w
dG5vZGUxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFk
b3B0bm9kZTE2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmQ2ZTJmZGMzNDdh
MzQxMTA1NWJkYTJlZGU5YTIyMjliZTllZmU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudGFkb3B0bm9kZTE2LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotQ3JlYXRlIGEgZG9jdW1lbnQgZnJhZ21lbnQgd2l0aCBhbiBlbnRpdHkgcmVmZXJlbmNlLCBh
ZG9wdCB0aGUgbm9kZSBhbmQgY2hlY2sKLXRoYXQgdGhlIGVudGl0eSByZWZlcmVuY2UgdmFsdWUg
Y29tZXMgZnJvbSB0aGUgYWRvcHRpbmcgZG9jdW1lbnRzIERURC4KLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0RvY3VtZW50My1hZG9wdE5vZGUKLSov
Ci1mdW5jdGlvbiBkb2N1bWVudGFkb3B0bm9kZTE2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRhZG9wdG5vZGUxNiIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWdtZW50OwotICAg
ICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgY2hpbGQ7Ci0g
ICAgICB2YXIgY2hpbGRzQXR0cjsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dE5v
ZGU7Ci0gICAgICB2YXIgYWRvcHRlZDsKLSAgICAgIHZhciBwYXJlbnRJbXA7Ci0gICAgICB2YXIg
Y2hpbGRJbXA7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAgICAgIHZhciBjaGlsZEF0dHJJbXA7
Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2
YXIgYXR0ck5vZGU7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsKLSAgICAgIHZhciBmaXJzdENoaWxk
VHlwZTsKLSAgICAgIHZhciBmaXJzdENoaWxkTmFtZTsKLSAgICAgIHZhciBmaXJzdENoaWxkVmFs
dWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZG9jRnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgcGFy
ZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoInBhcmVudCIpOwotICAgICAgY2hpbGQgPSBkb2MuY3Jl
YXRlRWxlbWVudCgiY2hpbGQiKTsKLSAgICAgIGNoaWxkc0F0dHIgPSBkb2MuY3JlYXRlQXR0cmli
dXRlKCJzdGF0ZSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
Z2FtbWEiKTsKLSAgICAgIHRleHROb2RlID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXN0Iik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gY2hpbGRzQXR0ci5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAg
ICAgYXR0ck5vZGUgPSBjaGlsZC5zZXRBdHRyaWJ1dGVOb2RlKGNoaWxkc0F0dHIpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGNoaWxkLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAgICAgYXBwZW5kZWRDaGls
ZCA9IGRvY0ZyYWdtZW50LmFwcGVuZENoaWxkKHBhcmVudCk7Ci0gICAgICBhZG9wdGVkID0gZG9j
LmFkb3B0Tm9kZShkb2NGcmFnbWVudCk7Ci0gICAgICAKLQlpZigKLQkKLQkoYWRvcHRlZCAhPSBu
dWxsKQotCi0JKSB7Ci0JcGFyZW50SW1wID0gYWRvcHRlZC5maXJzdENoaWxkOwotCi0gICAgICBj
aGlsZEltcCA9IHBhcmVudEltcC5maXJzdENoaWxkOwotCi0gICAgICBhdHRyaWJ1dGVzID0gY2hp
bGRJbXAuYXR0cmlidXRlczsKLQotICAgICAgY2hpbGRBdHRySW1wID0gYXR0cmlidXRlcy5nZXRO
YW1lZEl0ZW0oInN0YXRlIik7Ci0gICAgICBmaXJzdENoaWxkID0gY2hpbGRBdHRySW1wLmZpcnN0
Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImZpcnN0Q2hpbGROb3ROdWxsIixmaXJzdENo
aWxkKTsKLWZpcnN0Q2hpbGROYW1lID0gZmlyc3RDaGlsZC5ub2RlTmFtZTsKLQotICAgICAgZmly
c3RDaGlsZFZhbHVlID0gZmlyc3RDaGlsZC5ub2RlVmFsdWU7Ci0KLSAgICAgIGZpcnN0Q2hpbGRU
eXBlID0gZmlyc3RDaGlsZC5ub2RlVHlwZTsKLQotICAgICAgCi0JaWYoCi0JKDUgPT0gZmlyc3RD
aGlsZFR5cGUpCi0JKSB7Ci0JYXNzZXJ0RXF1YWxzKCJmaXJzdENoaWxkRW50M1JlZiIsImdhbW1h
IixmaXJzdENoaWxkTmFtZSk7Ci0gICAgICAgCi0JfQotCQotCQllbHNlIHsKLQkJCWFzc2VydEVx
dWFscygiZG9jdW1lbnRhZG9wdG5vZGUxNiIsIlRleGFzIixmaXJzdENoaWxkVmFsdWUpOwotICAg
ICAgIAotCQl9Ci0JCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAg
ZG9jdW1lbnRhZG9wdG5vZGUxNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYueGh0bWwgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiYjlkZTFmYjkzOGIwNzk3NTMwZjExMzBjODcxODZlNzYz
N2QxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMTYuanMiLz48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ry
b25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgot
ICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2
ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0
aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlS
ZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50
IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNv
bSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+
Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+
Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIg
aWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3
IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRw
Oi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVu
eSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAg
PHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVN
UDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21w
dXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUy
Ny1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNzM0NDFkNDMw
MjE0OTJmOTQzN2RmYjY2MGRjMGU0ZmEzNjM4MmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19O
T1RfU1VQUE9SVEVEX0VSUl8xOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LmpzIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjczY2FjYmM2ODk2YzY2Y2EyMzMwMmY2YTIx
YWI2OWNlM2Q4NGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUy
Ny5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2Rv
Y3VtZW50cmVuYW1lbm9kZTI3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsK
LXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
YnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0
IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9u
cywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAg
T3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0
aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJp
bmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAg
c2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8g
ICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAg
ICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAg
ZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAg
ICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBl
eCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAot
Ly8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8K
LS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRl
ZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQot
Ly8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHRo
ZSByZW5hbWVOb2RlIG1ldGhvZCB0byBhdHRlbXB0IHRvIHJlbmFtZSBuZXcgVGV4dCwgQ29tbWVu
dCwgQ0RhdGFTZWN0aW9uLAotCVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgRW50aXR5UmVmZXJl
bmNlIG5vZGVzIG9mIGEgbmV3IERvY3VtZW50LgotCUNoZWNrIGlmIGEgTk9UX1NVUFBPUlRFRF9F
UlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQw
NDA3L2NvcmUjRG9jdW1lbnQzLXJlbmFtZU5vZGUKLSovCi1mdW5jdGlvbiBkb2N1bWVudHJlbmFt
ZW5vZGUyNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgImRvY3VtZW50cmVuYW1lbm9kZTI3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZh
ciBkb2M7Ci0gICAgICB2YXIgbmV3RG9jOwotICAgICAgdmFyIGRvbUltcGw7Ci0gICAgICB2YXIg
dGV4dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBp
OwotICAgICAgdmFyIGVudHJlZjsKLSAgICAgIHZhciByZW5hbWVkVHh0OwotICAgICAgdmFyIHJl
bmFtZWRDb21tZW50OwotICAgICAgdmFyIHJlbmFtZWRDZGF0YTsKLSAgICAgIHZhciByZW5hbWVk
UGk7Ci0gICAgICB2YXIgcmVuYW1lZEVudFJlZjsKLSAgICAgIHZhciBudWxsRG9jVHlwZSA9IG51
bGw7Ci0KLSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIHJvb3ROUzsKLSAgICAgIHZhciBy
b290TmFtZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5TID0g
ZG9jRWxlbS5uYW1lc3BhY2VVUkk7Ci0KLSAgICAgIHJvb3ROYW1lID0gZG9jRWxlbS50YWdOYW1l
OwotCi0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9tSW1w
bC5jcmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAgdGV4
dCA9IG5ld0RvYy5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOwotICAgICAgY29tbWVudCA9IG5ld0Rv
Yy5jcmVhdGVDb21tZW50KCJjb21tZW50Iik7Ci0gICAgICBjZGF0YSA9IG5ld0RvYy5jcmVhdGVD
REFUQVNlY3Rpb24oImNkYXRhIik7Ci0gICAgICBwaSA9IG5ld0RvYy5jcmVhdGVQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24oInBpdCIsInBpZCIpOwotICAgICAgZW50cmVmID0gbmV3RG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZFR4dCA9IG5ld0RvYy5yZW5hbWVOb2RlKHRleHQs
Imh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwidGV4dCIpOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURf
RVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVuYW1lZENvbW1lbnQgPSBuZXdEb2MucmVuYW1lTm9kZShjb21tZW50LCJo
dHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNvbW1lbnQiKTsKLSAgICAgICAgfQotCQljYXRj
aChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcg
JiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVE
X0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIHJlbmFtZWRDZGF0YSA9IG5ld0RvYy5yZW5hbWVOb2RlKGNkYXRhLCJodHRw
Oi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNkYXRhIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgp
IHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4
LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJf
MyIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZW5hbWVkUGkgPSBuZXdEb2MucmVuYW1lTm9kZShwaSwiaHR0cDovL3d3dy53My5v
cmcvRE9NL1Rlc3QiLCJwaSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNj
ZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwot
CQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSXzQiLHN1Y2Nlc3MpOwot
CX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1l
ZEVudFJlZiA9IG5ld0RvYy5yZW5hbWVOb2RlKGVudHJlZiwiaHR0cDovL3d3dy53My5vcmcvRE9N
L1Rlc3QiLCJlbnRyZWYiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2Vz
cyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJ
fQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl81IixzdWNjZXNzKTsKLQl9
Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50cmVuYW1lbm9k
ZTI3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
ZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRlNzgxMWI0MmRlMmM0NjdlNWEyYTYwZTE4MjkxZDJkMTA4ZjgzYzkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LnhodG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFU
QT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYj
OTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24g
IiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBT
WVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRB
ICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
Om5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1Q
TElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+
Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9Y
TUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
eGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iZG9jdW1lbnRyZW5hbWVub2RlMjcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0
IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBU
ZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMK
LTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVt
YmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlv
biB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNl
Y3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5F
TVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRl
cGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVu
dDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4
YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2
aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9z
dHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgot
ICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFs
aXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4K
LSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIw
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzhlNGU2NjQ2NmZiZGMxNDA3
Njc1NTM4N2E5YTM1ZjBmMWVhOTZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yMC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjIwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJv
ZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48
L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1
NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFU
QVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZl
bnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBh
IHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8
L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwv
ZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50
IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUz
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29t
Ij4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9u
Zz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29k
ZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgot
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDI0MzczOGY2MGEw
ODg0NjRkYWQ4NDgyN2VhNmMxNGViMDEzZjcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNgotU3RhdHVzCWZhaWx1cmUK
LU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggM2U4YjNmYWU4ODc5YTBhMzRkZjAxYjY0NWRjMzc2MGFiZTAyNzMxYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxk
IFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5k
IE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRo
aXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNl
IFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0
dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUt
MjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZp
ZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAg
Ki8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53
My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIGNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uIGNoZWNrIGlmIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBjb250YWlucyBh
bmQgcHJlY2VkZXMgaXQncyBmaXJzdAotCWNoaWxkRWxlbWVudCwgYW5kIHRoYXQgdGhlIGNoaWxk
RWxlbWVudCBpcyBjb250YWluZWQgYW5kIGZvbGxvd3MgdGhlIEVudGl0eVJlZmVyZW5jZSBub2Rl
LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUz
LWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0
aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNiIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxl
bTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFy
IGVudFJlZlBvc2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0aW9uOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAot
CShnZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIpID09
IGZhbHNlKQotCSkgewotCXZhckxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInZhciIp
OwotICAgICAgdmFyRWxlbSA9IHZhckxpc3QuaXRlbSgyKTsKLSAgICAgIGFzc2VydE5vdE51bGwo
InZhckVsZW1Ob3ROdWxsIix2YXJFbGVtKTsKLWVudFJlZiA9IHZhckVsZW0uZmlyc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmTm90TnVsbCIsZW50UmVmKTsKLQotCX0KLQkK
LQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7
Ci0gICAgICAKLQkJfQotCWVudFJlZkNoaWxkMSA9IGVudFJlZi5maXJzdENoaWxkOwotCi0gICAg
ICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50
UmVmUG9zaXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQx
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uSXNDb250
YWluZWRGb2xsb3dpbmcyNiIsMjAsZW50UmVmUG9zaXRpb24pOwotICAgICAgIGVudFJlZkNoaWxk
MVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZik7
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbkNvbnRhaW5z
UFJFQ0VESU5HMjYiLDEwLGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MzNlMGQwNjU4YmJmYmY0ZmE1MDgzZTBhMjM5NzMyYTQ0
YzFlOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bjI2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MjliNGNkODA1OGEzYzc1Y2E4MTJiNDI1Mjc1
YjM2ZjhlNDI5ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbnRSZWZD
aGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Lmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWUxOWI3NjcwMmIz
NGE5ODVlODI0ZjgxZWFjYWFmM2VlNGJlMGY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCww
IEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29y
dGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4g
UmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtl
aW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQot
Ci0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAg
ICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0
VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IjsKLSAg
IH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gdG8g
Y2hlY2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGNvbnRhaW5zIGFuZCBwcmVjZWRlcyBp
dCdzIGxhc3QKLQljaGlsZEVsZW1lbnQsIGFuZCB0aGF0IHRoaXMgY2hpbGRFbGVtZW50IGlzIGNv
bnRhaW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUuCi0KLSogQGF1dGhv
ciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtY29tcGFyZURvY3Vt
ZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNygp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZh
ciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZhciB2YXJFbGVtOwotICAgICAgdmFy
IGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0gICAgICB2YXIgZW50UmVmUG9zaXRp
b247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JKGdldEltcGxlbWVu
dGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIikgPT0gZmFsc2UpCi0JKSB7
Ci0JdmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidmFyIik7Ci0gICAgICB2YXJF
bGVtID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgidmFyRWxlbU5vdE51
bGwiLHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxlbS5maXJzdENoaWxkOwotCi0gICAgICBhc3Nl
cnROb3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRSZWYpOwotCi0JfQotCQotCQllbHNlIHsKLQkJ
CWVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIAotCQl9
Ci0JZW50UmVmQ2hpbGQxID0gZW50UmVmLmxhc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVs
bCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQxKTsKLWVudFJlZlBvc2l0aW9uID0g
ZW50UmVmLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZkNoaWxkMSk7Ci0gICAgICBhc3Nl
cnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbklzQ29udGFpbmVkRm9sbG93aW5n
MjciLDIwLGVudFJlZlBvc2l0aW9uKTsKLSAgICAgICBlbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVu
dFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWYpOwotICAgICAgYXNzZXJ0
RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Db250YWluc1BSRUNFRElORyIsMTAs
ZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzFhYmUwMWJmOWJkODlkMWExZWFmNmVjYmMwMWIwOTNlNmViZmIxMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcueGh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZ
TEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBn
YW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkg
ZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBk
aXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENE
QVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQg
UElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgot
PCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgi
Lz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzNkMzI0OWQ4NGJiM2MyNjE2NzVlM2U0ZThjYWQzNjI5OGEzZjg1YS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjgKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFz
c2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMmIyOGU4M2MzMDU0NGRhYWE4NDFmMTdmZDE1
ZDdiOGRiYzUyZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHly
aWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0
aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4g
QWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2Fs
LzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAg
KiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJp
IGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0g
ICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgiOwotICAgfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0g
cHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYg
KGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlv
bkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhl
IGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGlu
IHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1
bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3
aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQu
Ci1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8q
KgotKiAKLQlVc2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiBjaGVjayB0aGUgZG9jdW1lbnQg
cG9zaXRpb24gb2YgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGVudDQncwotCWZpcnN0IGNoaWxk
IGFuZCBsYXN0IGNoaWxkLiAgSW52b2tlIGNvbXBhcmVEb2N1bWVudFBvc2l0b24gb24gZmlyc3Qg
Y2hpbGQgd2l0aCBsYXN0IGNoaWxkIGFzIGEgcGFyYW1ldGVyCi0Jc2hvdWxkIHJldHVybiBGT0xM
T1dJTkcsIGFuZCBzaG91bGQgcmV0dXJuIFBSRUNFRElORyB2aWNlIHZlcnNhLgotCi0qIEBhdXRo
b3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgo
KSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIs
ICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2
YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxlbTsKLSAgICAgIHZh
ciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFyIGVudFJlZkNoaWxk
MjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGls
ZDJQb3NpdGlvbjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAKLQlpZigKLQkoZ2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVu
dGl0eVJlZmVyZW5jZXMiKSA9PSBmYWxzZSkKLQkpIHsKLQl2YXJMaXN0ID0gZG9jLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJ2YXIiKTsKLSAgICAgIHZhckVsZW0gPSB2YXJMaXN0Lml0ZW0oMik7Ci0g
ICAgICBhc3NlcnROb3ROdWxsKCJ2YXJFbGVtTm90TnVsbCIsdmFyRWxlbSk7Ci1lbnRSZWYgPSB2
YXJFbGVtLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZk5vdE51bGwi
LGVudFJlZik7Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgCi0JCX0KLQllbnRSZWZDaGlsZDEgPSBlbnRSZWYu
Zmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIs
ZW50UmVmQ2hpbGQxKTsKLWVudFJlZkNoaWxkMiA9IGVudFJlZi5sYXN0Q2hpbGQ7Ci0KLSAgICAg
IGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7Ci1lbnRS
ZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihl
bnRSZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb25Gb2xsb3dpbmcyOCIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgZW50UmVm
Q2hpbGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50
UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uUFJFQ0VESU5HMjgiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjgoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI1MDgyOWYxMmMyOTZiNjE5NTZiODFmYzY2NjU4MmUz
NjMyMjllYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRk
IiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2
OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0
ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICIm
Izk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFU
VExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1s
bnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAg
ICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0
ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRh
PC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RB
VEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRt
bCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNp
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhz
ZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRG
LTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJjYTc4MTdjODE0ODVlZWIxZmQ0YmU0Zjg1
YmQxZWUyMTdmNDk2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1U
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJl
ZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjku
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkOWZkNDVmYTkx
NWM0ZjUyYTBjMDg3N2ExNmI5NWVhN2EyZDg5MTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlDcmVhdGUgdHdvIGVudGl0eSByZWZlcmVuY2Ugbm9k
ZXMuIFVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHRvIGNoZWNrIGlmIHRoZSBjaGlsZCBv
ZiB0aGUgZmlyc3QgRW50aXR5IAotCVJlZiBub2RlIHByZWNlZGVzIHRoZSBjaGlsZCBvZiB0aGUg
c2Vjb25kIEVudGl0eSBSZWYgbm9kZSwgYW5kIHRoYXQgdGhlIGNoaWxkIG9mIHRoZSBzZWNvbmQg
RW50aXR5IFJlZiBub2RlCi0JZm9sbG93cyB0aGUgY2hpbGQgb2YgdGhlIGZpcnN0IEVudGl0eSBS
ZWYgbm9kZS4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjkoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0lu
aXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOSIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0VsZW07Ci0gICAgICB2
YXIgZW50UmVmMTsKLSAgICAgIHZhciBlbnRSZWYyOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsK
LSAgICAgIHZhciBlbnRSZWZDaGlsZDI7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247
Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQyUG9zaXRpb247Ci0gICAgICB2YXIgYXBwZW5kZWRDaGls
ZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICBlbnRSZWYxID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgZW50
UmVmMiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIGRvY0VsZW0g
PSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRWxlbS5h
cHBlbmRDaGlsZChlbnRSZWYxKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NFbGVtLmFwcGVu
ZENoaWxkKGVudFJlZjIpOwotICAgICAgZW50UmVmQ2hpbGQxID0gZW50UmVmMS5maXJzdENoaWxk
OwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGls
ZDEpOwotZW50UmVmQ2hpbGQyID0gZW50UmVmMi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5v
dE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7Ci1lbnRSZWZDaGlsZDFQ
b3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWZDaGls
ZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Gb2xs
b3dpbmcyOSIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgZW50UmVmQ2hpbGQyUG9z
aXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQx
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uUFJFQ0VE
SU5HMjkiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZWEzZDJhOWI3MjExZDRkZjYzNWM0NjViYjU5NmQwNWJhOTEyYmIwYS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS5qcyIv
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291
bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgot
ICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlv
biB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMg
aXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRh
YjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAm
Z2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0g
Sm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3Vw
PjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4K
LSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVj
dG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMg
OTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5n
b3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+
Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+
Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2
aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZl
YXR1cmUwNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3YTk1
YTFmNjJjZTE0NzQ4ZjM0NjA0MjA0YzczMjhiNzY5NDRiZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZWdldGZlYXR1cmUwNAotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxpbmUgMTAxOiBU
eXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0ZmVhdHVyZTA0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXRmZWF0dXJlMDQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ZjVkMjBm
NzdiZmI5ZGNhMGExMGU4MGUxZGY1NWViZmIyM2M0ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVnZXRmZWF0dXJlMDQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDIgKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
Q2hlY2sgaW1wbGVtZW50YXRpb24gb2YgTm9kZS5nZXRGZWF0dXJlIG9uIEVudGl0eVJlZmVyZW5j
ZS4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWdldEZlYXR1cmUK
LSovCi1mdW5jdGlvbiBub2RlZ2V0ZmVhdHVyZTA0KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWdldGZlYXR1cmUwNCIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5vZGU7Ci0gICAgICB2YXIgbnVs
bFZlcnNpb24gPSBudWxsOwotCi0gICAgICB2YXIgZmVhdHVyZUltcGw7Ci0gICAgICB2YXIgaXNT
dXBwb3J0ZWQ7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgZG9tSW1wbCA9IGRvYy5pbXBsZW1lbnRhdGlvbjsK
LW5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBmZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiQ29yZSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0
U2FtZSgiY29yZVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1mZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0
U2FtZSgiY09yRVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1mZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiK2NPckUiLG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2Vy
dFNhbWUoIlBsdXNDb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJbXBsKTsKLWZl
YXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJvcmcudzNjLmRvbXRzLmJvZ3VzLmZlYXR1cmUi
LG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2VydE51bGwoInVucmVjb2duaXplZEZlYXR1cmUiLGZl
YXR1cmVJbXBsKTsKLSAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsIjIu
MCIpOwotICAgICAgYXNzZXJ0U2FtZSgiQ29yZTIwIixub2RlLGZlYXR1cmVJbXBsKTsKLWZlYXR1
cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIiwiMy4wIik7Ci0gICAgICBhc3NlcnRTYW1l
KCJDb3JlMzAiLG5vZGUsZmVhdHVyZUltcGwpOwotaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9y
dGVkKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0
dXJlKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7
Ci0JYXNzZXJ0U2FtZSgiWE1MVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQot
CWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiU1ZHIixudWxsVmVyc2lvbik7Ci0gICAg
ICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZHIixudWxsVmVyc2lvbik7Ci0gICAg
ICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIlNWR1Vuc3BlY2lmaWVk
Iixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0
ZWQoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0
dXJlKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkg
ewotCWFzc2VydFNhbWUoIkhUTUxVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9
Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJFdmVudHMiLG51bGxWZXJzaW9uKTsK
LSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJFdmVudHMiLG51bGxWZXJzaW9u
KTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiRXZlbnRz
VW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9k
ZS5pc1N1cHBvcnRlZCgiTFMiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9k
ZS5nZXRGZWF0dXJlKCJMUyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0
ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJMU1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsK
LQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkxTLUFzeW5jIixudWxsVmVy
c2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiTFMtQXN5bmMiLG51
bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2Ft
ZSgiTFNBc3luY1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBv
cnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIlhQYXRoIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0
dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiWFBhdGgiLG51bGxWZXJzaW9uKTsKLSAgICAgIAot
CWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiWFBhdGhVbnNwZWNpZmllZCIs
bm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVk
KCIrSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1
cmUoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7
Ci0JYXNzZXJ0Tm90TnVsbCgiUGx1c0hUTUxVbnNwZWNpZmllZCIsZmVhdHVyZUltcGwpOwotCi0J
fQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiK1NWRyIsbnVsbFZlcnNpb24pOwot
ICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIlNWRyIsbnVsbFZlcnNpb24pOwot
ICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnROb3ROdWxsKCJQbHVzU1ZH
VW5zcGVjaWZpZWQiLGZlYXR1cmVJbXBsKTsKLQotCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVnZXRmZWF0dXJlMDQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZDg1YzUzYzM4MjNiYjgxMWIxZTc0OTMzOWE1
NTczYjI1NzA0NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBbCi08IUVO
VElUWSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50MiAnZm9vPGJyLz4nPgotPCFFTEVNRU5UIGh0
bWwgKGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0bWwgeG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci08
IUVMRU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+Ci08IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRB
KT4KLTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNyYyBDREFUQSAjSU1QTElFRAotICAgICB0eXBl
IENEQVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQg
dGl0bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJvZHkgKHApPgotPCFBVFRMSVNUIGJvZHkgb25s
b2FkIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHAgKCNQQ0RBVEF8YnIpKj4KLTwhRUxFTUVO
VCBiciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hvbGVUZXh0IHNhbXBsZTwvdGl0bGU+Ci08c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdzZWxmeGh0bWwuanMnPjwvc2NyaXB0Pjxz
Y3JpcHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdub2RlZ2V0
ZmVhdHVyZTA0LmpzJz48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotPHA+YmFyPC9wPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDljNWMyOWNkZDk5N2JhZTkxYmMwYzVhYjc5NDA1YjgwMTI2ODMzY2IuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1Ci1TdGF0dXMJ
ZXJyb3IKLU1lc3NhZ2UJTGluZSAxMjE6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTQ2N2EzYmM0MTYyMGQzOTBlYzdkNGQ1ZDkyMjhi
ODg0MGM5MGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE1IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZh
ciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
dGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1
aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywg
YXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3Ro
ZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUg
ZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcg
dGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0
VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBj
cmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAv
LwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJ
bXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBz
ZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LQlUaGUgbWV0aG9kIGdldFRleHRDb250ZW50IHJldHVybnMgdGhlIHRleHQgY29udGVudCBvZiB0
aGlzIG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJbnZva2UgdGhlIG1ldGhvZCBnZXRU
ZXh0Q29udGVudCBvbiBhIG5ldyBFbGVtZW50IG5vZGUgd2l0aCBuZXcgVGV4dCwgRW50aXR5UmVm
ZXJlbmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29tbWVudCBub2RlcyBhbmQgY2hlY2sg
aWYgdGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAotCWNvbmNhdGVuYXRlZCBTdHJpbmcg
d2l0aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4
dGNvbnRlbnQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgY29t
bWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcGk7
Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0g
ZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVs
ZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNv
bW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEgPSBkb2Mu
Y3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0u
YXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxk
KGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVm
KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIHRleHRDb250ZW50
ID0gZWxlbS50ZXh0Q29udGVudDsKLQotICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVudDE1IiwiVGV4dCDOskNEYXRhIix0
ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBub2RlZ2V0dGV4dGNvbnRlbnQxNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LnhodG1sIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmQzNmNiYTNjM2RhMDkwY2JhZDc3NDdkMGU4OTFj
NWYyNGI2OTQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS54
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/
Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAg
IDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAg
IDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0g
ICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBw
Ci0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1Q
TElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAy
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4
bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFu
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+
PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1Q
TElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVh
ZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVnZXR0ZXh0Y29udGVudDE1LmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjQx
NDRkMDVmZjA4ZDcyZThlOTg0YWExMTMxNTQ4NjRiODExYTRiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNgotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxp
bmUgMTIzOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTQxZjdjODQxOWU4ZDExNTY0MjA4ODQ5NTg4NjhmYWFkNjE1NWQ5YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNiI7
Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7
Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1l
d29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElm
IHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8g
ICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1
cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1l
ZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0
ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdy
dW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3Vt
ZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9
IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRy
aWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25B
dHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBnZXRU
ZXh0Q29udGVudCByZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhpcyBub2RlIGFuZCBpdHMg
ZGVzY2VuZGFudHMuCi0JCi0JSW52b2tlIHRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgb24gYSBu
ZXcgRG9jdW1lbnRGcmFnbWVudCBub2RlIHdpdGggbmV3IFRleHQsIEVudGl0eVJlZmVyZW5jZXMg
IAotCUNEQVRBU2VjdGlvbiwgUEkgYW5kIENvbW1lbnQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZSB2
YWx1ZSByZXR1cm5lZCBpcyBhIHNpbmdsZSAKLQljb25jYXRlbmF0ZWQgU3RyaW5nIHdpdGggaXRz
IGNvbnRlbnQuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQw
Ny9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9kZWdldHRleHRjb250ZW50
MTYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJub2RlZ2V0dGV4dGNvbnRlbnQxNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbGVtQ2hp
bGQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVm
OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50
OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwg
ImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53
My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0
Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVu
dCAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsK
LSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRh
ICIpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAg
ICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFw
cGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNk
YXRhKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVsZW0pOwot
ICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0gICAgICB0ZXh0Q29udGVudCA9IGRvY0Zy
YWcudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50
MTYiLCJUZXh0IM6yQ0RhdGEiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE2KCk7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmZWZjMTVlYjRl
ZjAxZmIzZmVkMWNiZDg1ODY0ZTQ1NTkxZDFjZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXR0ZXh0Y29udGVudDE2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRt
bAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRt
bDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElU
WSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElU
WSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90
YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZp
bGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHht
bG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAot
ICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAg
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBz
cGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAg
ICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
Ci0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRj
b250ZW50MTYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9
ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMg
YSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08
IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNl
IHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAg
PHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0
cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwv
Y29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4
NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBE
YWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRw
Oi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3Jk
aWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM2YmViMzI3ZDgwZGVmMmM5NzllYjQ5MTFmYjM3NzcxMDMzMzIyY2Eu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3Ci1TdGF0
dXMJZmFpbHVyZQotTWVzc2FnZQlub2RlZ2V0dGV4dGNvbnRlbnQxNzogYXNzZXJ0RXF1YWxzIGZh
aWxlZCwgYWN0dWFsICwgZXhwZWN0ZWQgzrIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAyNGJhNjAxYTkxZmU1MTU4YThiMTMyN2M4MzMyMzhjZmI5YTU4
NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZva2UgdGhlIG1ldGhvZCBn
ZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhbmQgY2hlY2sgaWYg
dGhlIAotCXZhbHVlIHJldHVybmVkIGlzIHRoZSBFbnRpdHlSZWZlcmVuY2UncyBjb250ZW50Lgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
dGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4dGNvbnRlbnQxNygpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXR0
ZXh0Y29udGVudDE3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIHRleHRDb250ZW50ID0gZW50
UmVmLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVu
dDE3IiwizrIiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcu
eGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3OWMyMmM0ZDFlNTg0ZGEwZGFm
OWU4MzZkYzQ1YzFhNjM0Mzk0ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVy
c2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0
LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICIm
Izk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAi
JiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmls
ZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAg
PCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3Rj
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAg
ICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkg
ZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQg
ZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5z
IENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgot
PGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5z
OnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFm
Zi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRjb250ZW50MTcu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZv
cmUxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzk3ZmE4MzEwZDM3ZGVlMDEwYmU1YzQ5MTc5MDY2NTE3ZThiMzFlMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3Jl
MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9y
ZTExLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGE4YjllYzJjMjA0MGRiMTgy
ZDExYjZjMWRjODlkZmQ4MjQ1NDQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0
YmVmb3JlMTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotCi0vKgotQ29weXJp
Z2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1
c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRp
dW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBB
bGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUg
VzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwv
MjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAq
ICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkg
aWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAg
ICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0K
LQlVc2luZyBpbnNlcnRCZWZvcmUgb24gYSBEb2N1bWVudEZyYWdtZW50IG5vZGUgYXR0ZW1wdCB0
byBpbnNlcnQgYSBjaGlsZCBub2RlcyBiZWZvcmUKLQlvdGhlciBwZXJtaXNzaWJsZSBub2RlcyBh
bmQgdmVyaWZ5IHRoZSBjb250ZW50cy9uYW1lIG9mIGVhY2ggaW5zZXJ0ZWQgbm9kZS4KLQotKiBA
YXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5v
cmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcy
NwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUxMSgpIHsKLSAgIHZhciBzdWNjZXNzOwot
ICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxMSIp
ICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAg
ICB2YXIgZWxlbTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFy
IHR4dDsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIGluc2Vy
dGVkOwotICAgICAgdmFyIGluc2VydGVkVmFsOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9j
RnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImJvZHkiKTsKLSAg
ICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUYXJnZXQiLCJQSURh
dGEiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAg
ICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICBjZGF0YSA9IGRvYy5j
cmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVu
ZENoaWxkKGVsZW0pOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQo
cGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY29tbWVudCk7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZVJlZik7Ci0gICAgICBpbnNlcnRlZCA9IGRv
Y0ZyYWcuaW5zZXJ0QmVmb3JlKGNvbW1lbnQscGkpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNl
cnRlZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9Db21t
ZW50IiwiQ29tbWVudCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5p
bnNlcnRCZWZvcmUodHh0LGNvbW1lbnQpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5k
YXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9UZXh0IiwiVGV4
dCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUo
Y2RhdGEsdHh0KTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5zZXJ0ZWQuZGF0YTsKLQotICAgICAg
YXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfQ0RBVEEiLCJDREFUQSIsaW5zZXJ0ZWRW
YWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUoZVJlZixjZGF0YSk7
Ci0gICAgICBpbnNlcnRlZFZhbCA9IGluc2VydGVkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9FbnQxIiwiYWxwaGEiLGluc2VydGVkVmFsKTsKLSAg
ICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVpbnNlcnRiZWZv
cmUxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFhNGFhNjgzNzM4NWUwMDAzMzNkNmJjNWM0ODExODY3OTQ2YWQ1ZGQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/Pgot
PCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8v
RU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsi
PgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0Nzsi
PgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0
OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVN
ICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRs
JwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0g
ICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMg
Y29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
ZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Im5vZGVpbnNlcnRiZWZvcmUxMS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQyZjNlNjM1NDc1MDdlZTVkYTJkZjM2ZWVkMTViNGNj
MmZkNTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1Ci1T
dGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdmMzcxNmVhMTlkNGFmNzE3ZGI2NGExYjA2MzVlNDU5NTkwNWUzZTQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3NyAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNSI7Ci0gICB9Ci0KLXZh
ciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAg
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUK
LS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBu
byBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3Vt
ZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAg
IGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8g
ICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1
bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAg
IHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIs
IG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZp
Z3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotCUEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHJhaXNlZCBp
ZiB0aGUgbm9kZSBpcyByZWFkLW9ubHkuCi0JCi0JVXNpbmcgaW5zZXJ0QmVmb3JlIG9uIGEgbmV3
IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gaW5zZXJ0IEVsZW1lbnQsIFRleHQsCi0J
Q29tbWVudCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZCBDREFUQVNlY3Rpb24gbm9kZXMgYmVm
b3JlIGFuIGVsZW1lbnQgY2hpbGQKLQlhbmQgdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVs
aW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29y
ZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZv
cmUxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxNSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0
OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBwaTsKLSAg
ICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBpbnNlcnRlZDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZWxlbUNoaWxkID0gZW50UmVmLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9u
Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAg
IGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjZGF0YSxlbGVtQ2hpbGQpOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci1waSA9IGRvYy5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIAotCXsKLQkJ
c3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYu
aW5zZXJ0QmVmb3JlKHBpLGVsZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSXzIiLHN1Y2Nlc3MpOwotCX0KLWNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVu
dCIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAg
ICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoY29tbWVudCxlbGVtQ2hpbGQpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci10eHQgPSBkb2Mu
Y3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKHR4dCxl
bGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl80IixzdWNjZXNzKTsK
LQl9Ci1lbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCIsImJvZHkiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKGVsZW0sZWxlbUNoaWxk
KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVl
KCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlaW5zZXJ0YmVmb3JlMTUoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5z
ZXJ0YmVmb3JlMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWluc2VydGJlZm9yZTE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjBk
MDBiOWNhMTYzNzFlZmMwMmY4ZTQwMWViNDVkODU3ZjQxZGMxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlaW5z
ZXJ0YmVmb3JlMTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxv
YWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25n
PgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMg
aXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+
Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJl
bmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4K
LSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAg
PHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdl
cjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8
ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2Rl
PlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0i
Xzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2Fk
LiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJo
dHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVy
dCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8
c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBO
b3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFjMGUxNzU0ZjdhOTJjZmVlODk0MTkyOGI0ZWY2YjE3YjlhNzdmMWYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyCi1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1v
dmVjaGlsZDEyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1v
dmVjaGlsZDEyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTE4YTIyNzFlOGFj
OWU4NjliYzFmOWFmNWQxNzExNjM3ODk4Yjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAt
MTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5n
IHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24g
ZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBz
dGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBs
ZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdo
ZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdl
KCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8K
LSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2Vw
dGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsK
LSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVl
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJv
cihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21w
bGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRV
cFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQg
aGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2gg
YWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSog
Ci0JVGhlIG1ldGhvZCByZW1vdmVDaGlsZCByZW1vdmVzIHRoZSBjaGlsZCBub2RlIGluZGljYXRl
ZCBieSBvbGRDaGlsZCBmcm9tIHRoZSBsaXN0IAotCW9mIGNoaWxkcmVuLCBhbmQgcmV0dXJucyBp
dC4gCi0KLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBEb2N1bWVudEZyYWdtZW50IG5vZGUg
YXR0ZW1wdCB0byByZW1vdmUgYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUuCi0gICAgICAgIEFs
c28gYXR0ZW1wdCB0byByZW1vdmUgdGhlIGRvY3VtZW50IGZyYWdtZW50IG5vZGUgZnJvbSB0aGUg
RW50aXR5UmVmZXJlbmNlLiAgVmVyaWZ5IHRoYXQgYSAKLSAgICAgICAgTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSIChFbnRpdHlSZWZlcmVuY2Ugbm9kZSBpcyByZWFkLW9ubHkpIG9yIGEgTk9U
X0ZPVU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNo
aWxkMTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciByZW1vdmVk
RVJlZjsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlbW92ZWRDaGlsZDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBk
b2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVSZWYgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9j
RnJhZy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92ZWRDaGlsZCA9IGRvY0ZyYWcucmVt
b3ZlQ2hpbGQoZVJlZik7Ci0gICAgICByZW1vdmVkRVJlZiA9IGRvY0ZyYWcuZmlyc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0TnVsbCgibm9kZXJlbW92ZWNoaWxkMTIiLHJlbW92ZWRFUmVmKTsKLSAg
ICAKLSAgICAgIHRyeSB7Ci0gICAgICByZW1vdmVkQ2hpbGQgPSBlUmVmLnJlbW92ZUNoaWxkKGRv
Y0ZyYWcpOwotICAgICAgCi0gICAgICB9IGNhdGNoIChleCkgewotCQkgIGlmICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcpIHsgICAgICAKLSAgICAgICBzd2l0Y2goZXguY29kZSkgewot
ICAgICAgIGNhc2UgLyogTk9UX0ZPVU5EX0VSUiAqLyA4IDoKLSAgICAgICBicmVhazsKLSAgICAg
IGNhc2UgLyogTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSICovIDcgOgotICAgICAgIGJyZWFr
OwotICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgdGhyb3cgZXg7Ci0gICAgICAgICAgfQot
ICAgICAgIH0gZWxzZSB7IAotICAgICAgIHRocm93IGV4OwotICAgICAgICB9Ci0gICAgICAgICB9
Ci0gICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlbW92
ZWNoaWxkMTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzM2ZWQ5MmYwM2JhNTRhZWM4MjdkYjc4NGY2MDU2ZDkyMzQ5NDk0Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVtb3ZlY2hpbGQxMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTZlNTZhNmM2YTA2MzIwMDg2NTE1MGZkZTg4YzgzZjk0ZjUy
YTRhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMKLVN0YXR1
cwlmYWlsdXJlCi1NZXNzYWdlCXR4dE5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxk
MTMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxk
MTMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjODBmZmI0YTY1MmQ5MDJkYTJk
MmRmZjUxNzY4NjdmZTk2MmYzZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAg
ICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQot
ICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIs
IGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2Yg
Ci0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0v
LwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxl
dGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhl
Ci0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBy
ZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92
ZSB0aGUgZmlyc3QgY2hpbGQgCi0Jb2YgdGhpcyBub2RlIGFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00t
TGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5v
ZGVyZW1vdmVjaGlsZDEzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFs
aXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTMiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBy
ZW1vdmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAg
dHh0ID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJ0eHROb3ROdWxs
Iix0eHQpOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBy
ZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZCh0eHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICBub2RlcmVtb3ZlY2hpbGQxMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3MTMxN2E0NjNlMTllOTZkOWMxMjU0Njc5ZmI1NzVlN2I5ZmMw
NTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAg
IGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdl
dCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjM1YmY0ZGZkYjAwZTI1ZTA4MThi
MTZkMGQwY2FhNTg5NWY3OTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcGlOb3ROdWxsOiBhc3NlcnROb3ROdWxs
IGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2Q1YTE5
MzNlZTk3NjVhMjljNTc1YmNiNWYwZjU5ZGQxYWZlZWExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAg
IC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBA
cmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0
VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0
ZW1wdCB0byByZW1vdmUgaXRzIGxhc3QgUHJvY2Vzc2luZ0luc3RydWN0aW9uIAotCWNoaWxkIG5v
ZGUgYW5kIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24u
Ci0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0x
NzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxkMTQoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hp
bGQxNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHJlbW92ZWQ7
Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBlbnROYW1lOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYg
PSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICBwaSA9IGVSZWYubGFz
dENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJwaU5vdE51bGwiLHBpKTsKLQotCXsKLQkJ
c3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVtb3ZlZCA9IGVSZWYucmVt
b3ZlQ2hpbGQocGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7
Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hp
bGQxNCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDE0LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDg0ZjdkNzQ1ZWZkMjdjNDZlZDg1NzVmNjc3ZDgyZjA4NzY0MzZlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcz
ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFE
T0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4i
Ci0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgot
ICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgot
ICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsi
PgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQ
VUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJu
b3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwot
ICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8
IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29t
bWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1h
LWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFm
ZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpz
Ii8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5v
ZGVyZW1vdmVjaGlsZDE0LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4MDJlMGMyYmE4YmY4ZWNhNjFhODUyZjk1NmYwYzgxZDViYjhjOTIw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNQotU3RhdHVzCWZh
aWx1cmUKLU1lc3NhZ2UJZWxlbU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzYjNmN2NjOGUwODExYmI4MGIzZTdi
NGNhOTkwNDlkZDA5NWM3ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDD
gsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRz
IEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAot
Zm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAot
UmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OC
wq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIv
Y29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0
cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50
aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICBy
ZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBk
b2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAg
IH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4
KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
Ci0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0v
LyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwot
Ly8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVk
LAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0v
LyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZW1v
dmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBh
biBFbGVtZW50IGNoaWxkIAotCWFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlIgaXMgdGhyb3duLiAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1h
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0y
MDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlvbiBub2RlcmVtb3ZlY2hpbGQx
NSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRl
ciwgIm5vZGVyZW1vdmVjaGlsZDE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0g
ICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudE5hbWU7Ci0gICAg
ICB2YXIgcmVtb3ZlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwot
ICAgICAgZWxlbSA9IGVSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZWxl
bU5vdE51bGwiLGVsZW0pOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZChlbGVtKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTUoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE0ODYyN2E1YzExYmUyNjdlMGRjYTM0ZDA1
OGI4NGRiOTA1MmM1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxNS5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MTgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDlmODQxODhk
ZjFhMDFkOTRlMDNiYzUyNDc2NzUxYjMyOTEyMTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDE4Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTguanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMGI2NzJiYzQ4ZDlhN2M1NjA5YzY2ZjY4ZmI5YzBj
MWE5MjI0OGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAx
LTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZv
cm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBS
ZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3
YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdo
dC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRo
YXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9m
IHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQxOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGls
ZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYSBDREFUQVNl
Y3Rpb24gbm9kZSB3aXRoIAotCWEgRW50aXR5UmVmZXJlbmNlIGFuZCB2aWNlIHZlcnNhIHZlcmlm
eSB0aGUgZGF0YSBvZiB0aGUgcmVwbGFjZWQgbm9kZXMuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1
dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBu
b2RlcmVwbGFjZWNoaWxkMTgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRp
YWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMTgiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVudFJlZjsKLSAg
ICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciByZXBsYWNlZENEYXRhOwotICAgICAgdmFyIHJlcGxh
Y2VkRXJlZjsKLSAgICAgIHZhciBjZGF0YU5hbWU7Ci0gICAgICB2YXIgZXJlZk5hbWU7Ci0gICAg
ICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7
Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAg
ICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIHJlcGxhY2Vk
Q0RhdGEgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChlbnRSZWYsY2RhdGEpOwotICAgICAgY2RhdGFO
YW1lID0gcmVwbGFjZWRDRGF0YS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZXJlcGxhY2VjaGlsZDE4XzEiLCJDREFUQVNlY3Rpb24iLGNkYXRhTmFtZSk7Ci0gICAgICAgcmVw
bGFjZWRFcmVmID0gZG9jRnJhZy5yZXBsYWNlQ2hpbGQoY2RhdGEsZW50UmVmKTsKLSAgICAgIGVy
ZWZOYW1lID0gcmVwbGFjZWRFcmVmLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5v
ZGVyZXBsYWNlY2hpbGQxOF8yIiwiYWxwaGEiLGVyZWZOYW1lKTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQxOCgpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQxOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMTgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkNzY3YjllYWY4
NGUyYWNlZDMxY2E1OWNmYTM5MTQzNmQzYzJlM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hp
bGQxOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDE5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhOGEyZDM2MWU5MTA2ZDRkMWQ4MGU1MTJiY2RlYzU4MGIzYjBlNzQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5Ci1TdGF0dXMJU3VjY2Vzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQxOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMTkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiOWExN2RmOTdmNDNk
MDM1MmYzYmQ4YWQxYzVjOTM0MDhmMzViMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQxOS5qcworKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
CVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRv
IHJlcGxhY2UgYW4gRWxlbWVudCBub2RlIHdpdGggCi0JaXRzIEVudGl0eVJlZmVyZW5jZSBjaGls
ZCB2ZXJpZnkgdGhlIG5vZGVOYW1lIG9mIHRoZSByZXBsYWNlZCBub2RlLgotCi0qIEBhdXRob3Ig
SUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwot
ZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDE5KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDE5IikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBl
bnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBu
b2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBw
ZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICByZXBsYWNlZCA9IGRvY0ZyYWcucmVwbGFjZUNoaWxkKGVu
dFJlZixlbGVtKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAg
IGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE5IiwiZG9tMzpwIixub2RlTmFtZSk7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNo
aWxkMTkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzMjViMmNiM2IzYmU3MGVkNzk0YmUxZjAyMDMwYjM2ZDE5MzQ3M2U3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVwbGFjZWNoaWxkMTkuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxZGFmMmZlZjM1ZWRiMzczOTVmNDQ5NzNjODgxNTUy
MjZiYjdiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMgot
U3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmZDNmNDIzZjczNWYzZjFiMjVjYTVlNGNiMzYwODI1NjMwM2E3NDVhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJl
bmNlIG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGFuIEVudGl0eVJlZmVyZW5jZSBub2RlIHdpdGgg
Ci0JaXRzIEVsZW1lbnQgcGFyZW50LCB3aXRoIGl0c2VsZiBhbmQgdmljZSB2ZXJzYSB2ZXJpZnkg
aWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3Ig
SUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwot
ZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDIyIikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmTWFpbjsKLSAgICAgIHZh
ciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgdmFyIHJlcGxhY2VkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZk1haW4gPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgcmVwbGFjZWRDaGlsZCA9IGVudFJlZk1haW4ucmVwbGFjZUNoaWxkKGVs
ZW0sZW50UmVmKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0
eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlh
c3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMSIsc3VjY2Vzcyk7
Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBs
YWNlZENoaWxkID0gZW50UmVmTWFpbi5yZXBsYWNlQ2hpbGQoZW50UmVmLGVsZW0pOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nl
c3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkQ2hpbGQgPSBlbnRSZWZN
YWluLnJlcGxhY2VDaGlsZChlbnRSZWZNYWluLGVudFJlZik7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDIyKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YzMjU0ZTJjYWJhMzJiYjQwNTNkNzQ2NDlj
YzlmYTgzMDFhZWQwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIy
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDIyLmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQyMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxOGI3N2Iz
OGUzYmMxYzM3YWJhZjY2ZGNhZWFjMGQ5NGFlYjQ5ZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICsw
LDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMjMKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLmpzIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMzMWFmYzlkYzdlNTQwM2E4NWNmNDc1NGQ4NmJm
YzRlZDJlNmExOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkg
dGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIg
b2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4g
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNo
aWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhbiBF
bGVtZW50LCBUZXh0LAotCUNvbW1lbnQsIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgQ0RBVEFT
ZWN0aW9uIG5vZGVzIHdpdGggZWFjaCBvdGhlciBhbmQgaW4gZWFjaCBjYXNlCi0JdmVyaWZ5IGlm
IGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElC
TQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1
bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQyMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQyMyIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0eHQ7
Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIHBpOwotICAg
ICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFyIGFwcGVuZGVkQ2hp
bGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImRlbHRhIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAg
IGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAgY2RhdGEgPSBk
b2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIHBpID0gZG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBl
bmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxk
KHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAg
ICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFj
ZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGNkYXRhLGVsZW0pOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElP
Tl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChwaSxj
ZGF0YSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQg
PSBlbnRSZWYucmVwbGFjZUNoaWxkKGNvbW1lbnQscGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJ
dHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZCh0eHQsY29t
bWVudCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzQiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQg
PSBlbnRSZWYucmVwbGFjZUNoaWxkKGVsZW0sdHh0KTsKLSAgICAgICAgfQotCQljYXRjaChleCkg
ewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXgu
Y29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMjMoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNThhMWQyNTE2M2ZkNWEzZmJhYzdkMTAxNDkzZDRh
NTcxYWViMTdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMjMuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMw
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDlmODNlNzRiOTI2
NzMzMWMxNzAzYmQyOGQxNmVmYzIxZjQ2ZmIwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBA
QAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNzM1OGY5MzQ3MjYzYjgyN2E4ZTg4ODEzZTdhZTM3YzBi
NzYzMmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0y
MDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl
IG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3Jt
YXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVz
ZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2Fy
ZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAK
LQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQt
c29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0
IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0
ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzAiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0KLQlVc2luZyByZXBsYWNl
Q2hpbGQgb24gYW4gRWxlbWVudCBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhIG5ldyBFbGVtZW50
IGNoaWxkIG5vZGUgd2l0aCAKLQluZXcgY2hpbGQgbm9kZXMgYW5kIHZpY2UgdmVyc2EgYW5kIGlu
IGVhY2ggY2FzZSB2ZXJpZnkgdGhlIG5hbWUgb2YgdGhlIHJlcGxhY2VkIG5vZGUuCi0KLSogQGF1
dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcK
LSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzAoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzAiKSAh
PSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2
YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3RWxlbWVudDsKLSAgICAgIHZhciBuZXdUZXh0Owot
ICAgICAgdmFyIG5ld0NvbW1lbnQ7Ci0gICAgICB2YXIgbmV3UEk7Ci0gICAgICB2YXIgbmV3Q2Rh
dGE7Ci0gICAgICB2YXIgbmV3RVJlZjsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBu
b2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpodG1sIik7Ci0gICAg
ICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiLCJ4aHRtbDpoZWFkIik7Ci0gICAgICBuZXdFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1l
bnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1sOmJvZHkiKTsKLSAgICAg
IGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdFbGVtZW50KTsKLSAgICAgIG5ld1Rl
eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBw
YXJlbnQuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBuZXdDb21tZW50ID0gZG9jLmNyZWF0
ZUNvbW1lbnQoIkNvbW1lbnQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5k
Q2hpbGQobmV3Q29tbWVudCk7Ci0gICAgICBuZXdQSSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQu
YXBwZW5kQ2hpbGQobmV3UEkpOwotICAgICAgbmV3Q2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0
aW9uKCJDZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChu
ZXdDZGF0YSk7Ci0gICAgICBuZXdFUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVs
dGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3RVJlZik7
Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3RWxlbWVudCxvbGRDaGls
ZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8xIiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAg
ICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdFbGVtZW50KTsK
LSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZXJlcGxhY2VjaGlsZDMwXzIiLCJ4aHRtbDpib2R5Iixub2RlTmFtZSk7Ci0gICAgICAg
cmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld1RleHQsb2xkQ2hpbGQpOwotICAgICAg
bm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2Rl
cmVwbGFjZWNoaWxkMzBfMyIsInhodG1sOmhlYWQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNl
ZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3VGV4dCk7Ci0gICAgICBub2RlTmFt
ZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNl
Y2hpbGQzMF80IiwiI3RleHQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5y
ZXBsYWNlQ2hpbGQobmV3Q29tbWVudCxvbGRDaGlsZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxh
Y2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF81
IiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxh
Y2VDaGlsZChvbGRDaGlsZCxuZXdDb21tZW50KTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQu
bm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzYiLCIj
Y29tbWVudCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGls
ZChvbGRDaGlsZCxuZXdQSSk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwot
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF83IiwidGFyZ2V0Iixub2Rl
TmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5l
d0NkYXRhKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFz
c2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzgiLCIjY2RhdGEtc2VjdGlvbiIsbm9kZU5h
bWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdF
UmVmKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2Vy
dEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzkiLCJkZWx0YSIsbm9kZU5hbWUpOwotICAgICAg
IAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDMw
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDMwLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2RiNWNiYjEzM2ZhYWYyZWI0ZjEwNDNkMjFmYzQzNTA4YjdkYzdlMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0g
ICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJ
U1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAg
ICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBM
SUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwh
QVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21t
ZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEt
aW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9k
ZXJlcGxhY2VjaGlsZDMwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDIzM2Y5MjkzMzU4MmE3MDU0MjYxNWQxMjUwYTQ5MTBhNzQ5M2Qw
YTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMKLVN0YXR1
cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDMzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc0
YmU0NGQ0YjBhNzcxY2I3OTIwNDM2YzdhM2MyZDhhNjIxNjRiNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzIjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgZGVmYXVsdCBBdHRyIG5vZGUgdG8g
cmVwbGFjZSBpdHMgVGV4dCBDaGlsZCB3aXRoIGEgCi0JbmV3IEVudGl0eVJlZmVyZW5jZSBOb2Rl
IGFuZCB2ZXJpZnkgdGhlIHZhbHVlIG9mIHRoZSByZXBsYWNlZCBjaGlsZC4KLQotKiBAYXV0aG9y
IElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8K
LWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzMyIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZh
ciBlbGVtOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZh
ciBuZXdDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgbmV3
Q2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY2hpbGRM
aXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7Ci0gICAgICBlbGVtID0gY2hpbGRM
aXN0Lml0ZW0oMyk7Ci0gICAgICBwYXJlbnQgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoImRpciIp
OwotICAgICAgb2xkQ2hpbGQgPSBwYXJlbnQubGFzdENoaWxkOwotCi0gICAgICByZXBsYWNlZCA9
IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVl
ID0gcmVwbGFjZWQubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNl
Y2hpbGQzMyIsInJ0bCIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3OTkwYzE1ODA2NTU1ZWRlY2QxNWYz
MjEwMWE4Y2ZhMjQ2M2E2N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249
IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAi
LS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQi
IFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7
Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4
OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRU
TElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAg
ICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQg
IjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8
L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFU
QSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1s
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNk
Ij48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzMy5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzVl
ZTRkNTg2Y2YwMDk4NmM5MDFlZWQ0ZjE0Yzk0NzNiYzczZWJjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNGEzNWEwMWVhNGUzZThmYmE5YzA5MzIx
YTJmODA0ODgyZTViZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxh
Y2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcmVu
Y2UgQ2hpbGQgd2l0aCBhIAotCW5ldyBUZXh0IE5vZGUgYW5kIHZlcmlmeSB0aGUgdmFsdWUgb2Yg
dGhlIG5ldyBjaGlsZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNCgp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVyZXBsYWNlY2hpbGQzNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsK
LSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIHZh
ciByZXBsYWNlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMu
b3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
cGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0
ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQo
bmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVlID0gcGFyZW50LnZhbHVlOwotCi0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzNCIsIlRleHQiLG5vZGVWYWx1ZSk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFj
ZWNoaWxkMzQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzMDY5YmIwMzgwZDE1ZGNlMzVhY2E4NTBhNTgzNjJiNGQxYjZjMmI5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJub2RlcmVwbGFjZWNoaWxkMzQuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUxYzk4OGY2NGZjOTgzMjM1ODcyOGMxMDM3NWE3
Mjk2YTA3NzZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxYmFlODY3YTVlZjJiYjdkY2E5MWViNzI3ZjJkYzU1YzYwODExOWIzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgQXR0ciBub2Rl
LCByZXBsYWNlIGl0cyBuZXcgRW50aXR5UmVmZXJuZWNlIENoaWxkIHdpdGggYSAKLQluZXcgQXR0
ciBOb2RlIGFuZCB2ZXJpZnkgaWYgYSBISUVSQVJDSFlfUkVRVUVTVF9FUlIgaXMgdGhyb3duLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1
ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDM1KCkgewotICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGls
ZDM1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgcGFyZW50Owot
ICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVW
YWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVu
dCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFt
ZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hp
bGQob2xkQ2hpbGQpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0
dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICAK
LQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0g
cGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0
Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQn
ICYmIGV4LmNvZGUgPT0gMyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfSElFUkFSQ0hZX1JF
UVVFU1RfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNjcyMWNkOTRmMTVlMjZjZmU1YWNmODM1NDIzZmZk
NmQ2OTg4YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/
VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9E
VEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwh
RU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwh
RU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8
IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0g
ICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxu
czp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9Q
SXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElF
RD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNS5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTk5ZTAxNjExOWJj
YjkwNDEyNDkzYzcyZjEwZWFmMTg3M2M0NzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlYTIyNWJlZWYyZmEzOGVlYzk1ZTAwOGUxMmI2Nzk1NzZj
MGE0YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBv
biBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcm5lY2Ugbm9kZSB3
aXRoIGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5IGlmIGEgTk9UX0ZPVU5EX0VSUiBpcyB0
aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29y
ZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzYoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVw
bGFjZWNoaWxkMzYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBw
YXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0gICAgICB2
YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRy
aWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmci
KTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsK
LSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICAKLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gcGFy
ZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gOCk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX0ZPVU5EX0VSUiIs
c3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rl
cmVwbGFjZWNoaWxkMzYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjYWE4ODBiMDcyYTM1Nzg0MDFmYjFiZWVmZDdhMjRhNmFjMTg4MGM0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIg
Q0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRB
ICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElk
YXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEt
LSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48
dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9s
ZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1
MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFs
dGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjMWFhNWJmODg5ZDI1NjZhYTM1M2Iw
OWM0NDFhYTc3YTBiZjZhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhyb3dfV1JPTkdfRE9DVU1FTlRfRVJS
OiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRmZDAyNjQ0MTNkYjc2NmJiNGFmZjIwNjM0YTk4N2MzOTIxNzQ0ODkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNyI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgIHZhciBkb2MyUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2My
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2MyUmVmID0gdGhpcy5kb2MyOwotICAgICAg
fQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvYzJSZWYsICJkb2MyIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDIpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMikgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEg
bmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IFRleHQgbm9kZSB3aXRoIGEgCi0JbmV3IEVu
dGl0eVJlZmVyZW5jZSBOb2RlIGNyZWF0ZWQgYnkgYW5vdGhlciBkb2N1bWVudCBhbmQgdmVyaWZ5
IGlmIGEgCi0JV1JPTkdfRE9DVU1FTlRfRVJSIGlzIHJhaXNlZC4KLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0
aW9uIG5vZGVyZXBsYWNlY2hpbGQzNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzNyIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvYzI7Ci0gICAgICB2YXIgcGFyZW50Owot
ICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVW
YWx1ZTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotICAg
ICAgdmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYzIpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlzLmRvYzI7Ci0gICAgICB9Ci0gICAg
ICBkb2MyID0gbG9hZChkb2MyUmVmLCAiZG9jMiIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50
ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1l
c3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlVGV4dE5vZGUo
IlRleHQiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jMi5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRl
bHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxk
KTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAg
cmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA0KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19X
Uk9OR19ET0NVTUVOVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LnhodG1sIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy54aHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlkZGJkMjMzMTk5N2UzMzM4NWZhYTBm
ZjI3MzI5NDliZWZiYWY2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM3LmpzIi8+PHNj
cmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3Rh
cnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdp
dGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBh
biBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11d
Pjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1t
YTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
bmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25l
czwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAw
LDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1
NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcg
VGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRl
eHRjb250ZW50MTAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
NzYwOTM0ZmVjNGQ5NDc4NmFlMWJmNThmNWQ0NWE1OWIxYTkyYzU2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRl
bnQxMC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU3MWFlNzczOGEwYjI4
M2JjOTJjODdhZmQzYWM1MTM2MjliMzE1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNl
dHRleHRjb250ZW50MTAuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwg
dHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJl
ZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBzZXRUZXh0Q29udGVudCBoYXMgbm8gZWZmZWN0
IHdoZW4gdGhlIG5vZGUgaXMgZGVmaW5lZCB0byBiZSBudWxsLgotCQotCVVzaW5nIHNldFRleHRD
b250ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSwgYXR0ZW1wdCB0byBzZXQgaXRzIGNvbnRlbnQg
dG8gRUxFTUVOVC4KLQlSZXRyZWl2ZSB0aGUgdGV4dENvbnRlbnQgYW5kIHZlcmlmeSBpZiBpdCBp
cyB3YXMgc2V0IHRvIEVMRU1FTlQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0
ZXh0Y29udGVudDEwKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTAiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBj
b21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBw
aTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0g
PSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImRvbTM6
ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0ICIpOwotICAgICAg
Y29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwotICAgICAgZW50UmVmID0g
ZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRl
UHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRv
Yy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hp
bGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRS
ZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgZWxlbS50ZXh0
Q29udGVudCA9ICJFTEVNRU5UIjsKLQotICAgICAgdGV4dENvbnRlbnQgPSBlbGVtLnRleHRDb250
ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVzZXR0ZXh0Y29udGVudDEwIiwiRUxFTUVO
VCIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgbm9kZXNldHRleHRjb250ZW50MTAoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkZTc2MGYwZjBhMmI3NThlNmYyZWU4MGUz
MGM1YzlmNGE1NzQ1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50
MTAueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBb
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+
Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsi
PgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1
MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJ
U1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAg
ICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8
c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9z
cGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEg
I0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmJjMTQ3MDg4NmJmMDRlNGIwOTUyNjdmNjUzNDVlMDRiM2VhMzM2Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250
ZW50MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRj
b250ZW50MTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NDMxZjc5MjMxZjAw
YjI0YzU0ODA4YTk2OGMzOTM5ZTYzMWUyZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDExLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEiOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IERvY3VtZW50RnJhZ21lbnQg
bm9kZSBFbGVtZW50IGNoaWxkLCBhdHRlbXB0IHRvIHNldCBpdHMgY29udGVudCB0byAKLQlET0NV
TUVOVEZSQUdNRU5ULiAgUmV0cmVpdmUgdGhlIHRleHRDb250ZW50IGFuZCB2ZXJpZnkgaWYgaXQg
aXMgd2FzIHNldCB0byBET0NVTUVOVEZSQUdNRU5UCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhv
ciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1M
ZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9u
IG5vZGVzZXR0ZXh0Y29udGVudDExKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTEiKSAhPSBudWxsKSBy
ZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVsZW07
Ci0gICAgICB2YXIgZWxlbUNoaWxkOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjb21tZW50
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBwaTsKLSAg
ICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBk
b2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpwIik7Ci0gICAgICB0
eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNy
ZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNl
Y3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0
eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcu
YXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBlbGVtLnRleHRDb250ZW50ID0gIkRPQ1VNRU5URlJB
R01FTlQiOwotCi0gICAgICBlbGVtQ2hpbGQgPSBkb2NGcmFnLmxhc3RDaGlsZDsKLQotICAgICAg
dGV4dENvbnRlbnQgPSBlbGVtQ2hpbGQudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZWdldHRleHRjb250ZW50MTEiLCJET0NVTUVOVEZSQUdNRU5UIix0ZXh0Q29udGVudCk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dGV4
dGNvbnRlbnQxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0MmNiZDA0YWM5MWZkOThmNDAyMTM5NzQzMTk4NWRkZTFiODEzZmZkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS54aHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlM
RSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFs
cGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdh
bW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBl
cHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRp
ciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQ
SWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIv
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29udGVudDExLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTBmYmY0MmIyZTk2NzUw
ODNmMjE3YzE1ZmFkNzgyZGQ3ZmRkNDRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZjMzZmZTZiMTFlY2JlODFjNTYzNmRhYWVhODBi
NDU5YjcwYTg3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkg
MjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5z
dGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3Ig
SW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdo
dHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBT
b2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5
cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVS
SSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmll
ciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVy
biAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
c2V0dGV4dGNvbnRlbnQxMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCi0JCi0JVXNpbmcg
c2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUsIGF0dGVtcHQgdG8g
c2V0IGl0cyB2YWx1ZS4KLQlTaW5jZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIFJlYWRPbmx5
LCBjaGVjayBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiAgCi0JaXMgcmFpc2VkLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
dGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rlc2V0dGV4dGNvbnRlbnQxMigpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR0
ZXh0Y29udGVudDEyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9
IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgZW50UmVmLnRleHRDb250ZW50ID0gIk5BIjsK
LQotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUo
Im5vZGVzZXR0ZXh0Y29udGVudDEyIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR0ZXh0Y29udGVudDEyKCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250
ZW50MTIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0YmY5Njg3YTBlYjRk
ODczOTQyNzMzNTVmMDczNDNkMWYxYmM5MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDEyLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAot
ICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEt
c3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBi
ZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBk
ZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRp
b24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUi
PgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5z
OmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAg
ICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jv
bnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFF
TlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVs
ZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFu
IHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAx
Li0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAg
IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0g
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBo
Y19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNo
YXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXNldHRleHRjb250
ZW50MTIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBD
REFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtD
REFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRv
IGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7
IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1Q
MDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNv
bm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8v
d3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1
c2VyZGF0YTA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY4ZDdhZjJmZjk4M2UxNzMxZTA2ZGFkYjUzZjQ4MDJmZGRlMmY2ZWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4Ci1TdGF0dXMJZXJyb3IKLU1lc3Nh
Z2UJTGluZSAxMTM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5YjZmNTg2M2JmNDY3OGFlNTBhZTk1ZDg4NmQ2NmUwYzhlMzU0ZGQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4IjsKLSAgIH0K
LQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8K
LS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJl
Zm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUg
YXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAg
ZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAg
ICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5
Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0v
LwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcn
OwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVp
bGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRl
Q29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAg
IAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNo
SW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxv
YWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91
cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVz
IGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRv
IGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHNldFVzZXJEYXRhIG9uIGEgQ0RBVEFTZWN0aW9u
IGFuZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZSB0byBzZXQgdGhlaXIgCi0JVXNlckRhdGEgdG8gdGhp
cyBEb2N1bWVudCBhbmQgRG9jdW1lbnRFbGVtZW50IG5vZGUuICBWZXJpZnkgaWYgdGhlIFVzZXJE
YXRhIAotCW9iamVjdCB0aGF0IHdhcyBzZXQgZm9yIGJvdGggbm9kZXMgaXMgZGlmZmVyZW50Lgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
c2V0VXNlckRhdGEKLSovCi1mdW5jdGlvbiBub2Rlc2V0dXNlcmRhdGEwOCgpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR1c2Vy
ZGF0YTA4IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRWxl
bTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY0RhdGE7Ci0gICAgICB2YXIgZWxlbUxp
c3Q7Ci0gICAgICB2YXIgZWxlbU5hbWU7Ci0gICAgICB2YXIgdXNlckRhdGE7Ci0gICAgICB2YXIg
cmV0dXJuZWQxOwotICAgICAgdmFyIHJldHVybmVkMjsKLSAgICAgIHZhciBzdWNjZXNzOwotICAg
ICAgdmFyIHJldFVzZXJEYXRhOwotICAgICAgdmFyIG51bGxIYW5kbGVyID0gbnVsbDsKLQotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0Vs
ZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY0RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0
aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIGlmIChudWxsID09IG51bGxIYW5kbGVyKSB7Ci0g
ICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51bGwpOwotICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51bGxIYW5k
bGVyLmhhbmRsZSk7Ci0gICAgICB9Ci0gICAgICAgaWYgKG51bGwgPT0gbnVsbEhhbmRsZXIpIHsK
LSAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxlbSwgbnVsbCk7Ci0gICAg
ICB9IGVsc2UgewotICAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxlbSwg
bnVsbEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAgICByZXR1cm5lZDEgPSBlbnRSZWYu
Z2V0VXNlckRhdGEoIktleTEiKTsKLSAgICAgIHJldHVybmVkMiA9IGNEYXRhLmdldFVzZXJEYXRh
KCJLZXkyIik7Ci0gICAgICBzdWNjZXNzID0gcmV0dXJuZWQxLmlzRXF1YWxOb2RlKHJldHVybmVk
Mik7Ci0gICAgICBhc3NlcnRGYWxzZSgibm9kZXNldHVzZXJkYXRhMDgiLHN1Y2Nlc3MpOwotCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dXNlcmRhdGEwOCgpOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1
c2VyZGF0YTA4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR1c2VyZGF0YTA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjQ2NDA2
OTZlNmY5MjQzYTYwODFmNzkyMjE3OGRjMWViNmFhZmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dXNlcmRhdGEwOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR1c2Vy
ZGF0YTA4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJs
b2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEg
Q0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFb
Q0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0
byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxz
dXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVN
UDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJz
b25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1
NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDov
L3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGlj
LiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTI1YTM4MDlkNzkwMWZhMDQ0NmM3Nzc3YjRlYWFjYmQ0ZjRlZTEx
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2
Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGQxOGYyNzYxMjQzNTE0YWJhMTZmYmY0MzJmY2VjOGFmZDM3Y2QwMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29y
bGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVj
aG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBh
bmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4g
VGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vu
c2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2Fy
ZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRp
ZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAg
ICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0
ZXh0MDYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0
aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUpOwotICAgICAgIHNldEltcGxlbWVu
dGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIiwgdHJ1ZSk7Ci0KLSAgICAg
IGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwg
ImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0g
ICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwg
ZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAK
LS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8v
Ci0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0
ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUK
LS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRo
b2QgcmVwbGFjZVdob2xlVGV4dCBzdWJzdGl0dXRlcyB0aGUgYSBzcGVjaWZpZWQgdGV4dCBmb3Ig
dGhlIHRleHQgb2YgCi0JdGhlIGN1cnJlbnQgbm9kZSBhbmQgYWxsIGxvZ2ljYWxseS1hZGphY2Vu
dCB0ZXh0IG5vZGVzLiAgVGhpcyBtZXRob2QgcmFpc2VzCi0JYSBOT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlIgaWYgb25lIG9mIHRoZSBUZXh0IG5vZGVzIGJlaW5nIHJlcGxhY2VkIGlzIHJlYWRv
bmx5LgotCQotCUludm9rZSByZXBsYWNlV2hvbGVUZXh0IG9uIGFuIGV4aXN0aW5nIHRleHQgbm9k
ZSB3aXRoIG5ld2x5IGNyZWF0ZWQgdGV4dCBhbmQgRW50aXR5cmVmZXJlbmNlCi0Jbm9kZXMgKHdo
b3NlIHJlcGxhY2VtZW50IHRleHQgaXMgYSBjaGFyYWN0ZXIgZW50aXR5IHJlZmVyZW5jZSkgYXBw
ZW5kZWQgYXMgY2hpbGRyZW4gb2YgaXRzIHBhcmVudCBlbGVtZW50IG5vZGUuICAKLQlXaGVyZSB0
aGUgbm9kZXMgdG8gYmUgcmVtb3ZlZCBhcmUgcmVhZC1vbmx5IGRlc2NlbmRhbnRzIG9mIGFuIEVu
dGl0eVJlZmVyZW5jZSwgdGhlIEVudGl0eVJlZmVyZW5jZSAKLSAgICAgICAgbXVzdCBiZSByZW1v
dmVkIGluc3RlYWQgb2YgdGhlIHJlYWQtb25seSBub2Rlcy4gT25seSBpZiBhbnkgRW50aXR5UmVm
ZXJlbmNlIHRvIGJlIHJlbW92ZWQgaGFzIAotICAgICAgICBkZXNjZW5kYW50cyB0aGF0IGFyZSBu
b3QgRW50aXR5UmVmZXJlbmNlLCBUZXh0LCBvciBDREFUQVNlY3Rpb24gbm9kZXMsIHRoZSByZXBs
YWNlV2hvbGVUZXh0IAotICAgICAgICBtZXRob2QgbXVzdCBmYWlsLCByYWlzaW5nIGEgTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSLiBWZXJpZnkgdGhhdCB0aGUgbWV0aG9kIGRvZXMgbm90IHJh
aXNlCi0gICAgICAgIGFuIGV4Y2VwdGlvbiBhbmQgdmVyaWZ5IHRoZSBjb250ZW50IG9mIHRoZSBy
ZXR1cm5lZCB0ZXh0IG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGlt
YQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUt
MjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qLwotZnVuY3Rpb24gdGV4dHJl
cGxhY2V3aG9sZXRleHQwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlh
bGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDYiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAgICAgIHZhciBlbGVtZW50
U3Ryb25nOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIGVyZWZOb2RlOwotICAgICAg
dmFyIHJlcGxhY2VkVGV4dDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIG5v
ZGVWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3Ryb25nIik7Ci0g
ICAgICBlbGVtZW50U3Ryb25nID0gaXRlbUxpc3QuaXRlbSgwKTsKLSAgICAgIHRleHROb2RlID0g
ZG9jLmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAgICAgZXJlZk5vZGUgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVu
dFN0cm9uZy5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bWVudFN0cm9uZy5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICB0ZXh0Tm9kZSA9IGVsZW1l
bnRTdHJvbmcuZmlyc3RDaGlsZDsKLQotICAgICAgcmVwbGFjZWRUZXh0ID0gdGV4dE5vZGUucmVw
bGFjZVdob2xlVGV4dCgiTmV3IFRleHQgYW5kIENkYXRhIik7Ci0gICAgICBub2RlVmFsdWUgPSB0
ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygidGV4dHJlcGxhY2V3aG9s
ZXRleHQwNiIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQot
Ci0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIHRleHRyZXBsYWNld2hvbGV0ZXh0MDYoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDc5NzBiNjBiMTA5MDhhMGM3OWZkNTdjODEzOWJkOTE4YzM3MWVjMmIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRz
Ci08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51
bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rp
b24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZl
bnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRh
dmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwv
c3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4K
LSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lh
bGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA3NWVjYmQwOGU2ODZmNjlm
YWZlNGE2MzdhYzk2NTYyMGEyZjQ5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxh
Y2V3aG9sZXRleHQwNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90
ZXh0cmVwbGFjZXdob2xldGV4dDA3Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcuanMgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU2NGQzMmRkMzEzMjlkNjdhOTkxYTc5
MTQyMTAwZjAwMWYzZWIwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9s
ZXRleHQwNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
ICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LUFwcGVuZCBhbiBlbnRpdHkgcmVmZXJlbmNlIGFuZCBhIHRleHQgbm9kZSBhZnRlciB0byB0aGUg
Y29udGVudCBvZiB0aGUKLWZpcnN0IHN0cm9uZyBlbGVtZW50LiAgVGhlbiBjYWxsIHJlcGxhY2VX
aG9sZVRleHQgb24gaW5pdGlhbCBjb250ZW50Ci1vZiB0aGF0IGVsZW1lbnQuICBTaW5jZSB0aGUg
ZW50aXR5IHJlZmVyZW5jZSBkb2VzIG5vdCBjb250YWluIGFueSAKLWxvZ2ljYWxseS1hZGphY2Vu
dCB0ZXh0IGNvbnRlbnQsIG9ubHkgdGhlIGluaXRpYWwgdGV4dCBlbGVtZW50IHNob3VsZAotYmUg
cmVwbGFjZWQuIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQGF1
dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTQyNQotKi8K
LWZ1bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0ZXh0cmVwbGFjZXdob2xldGV4dDA3
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgaXRlbUxpc3Q7Ci0g
ICAgICB2YXIgZWxlbWVudE5hbWU7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgZXJl
Zk5vZGU7Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7
Ci0gICAgICB2YXIgbm9kZTsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgbm9kZVR5
cGU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgaXRlbUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0cm9uZyIpOwotICAgICAg
ZWxlbWVudE5hbWUgPSBpdGVtTGlzdC5pdGVtKDApOwotICAgICAgZXJlZk5vZGUgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICB0ZXh0Tm9kZSA9IGRvYy5jcmVhdGVU
ZXh0Tm9kZSgiTmV3IFRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtZW50TmFtZS5h
cHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVudE5hbWUu
YXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgdGV4dE5vZGUgPSBlbGVtZW50TmFtZS5maXJz
dENoaWxkOwotCi0gICAgICByZXBsYWNlZFRleHQgPSB0ZXh0Tm9kZS5yZXBsYWNlV2hvbGVUZXh0
KCJOZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAgIHRleHROb2RlID0gZWxlbWVudE5hbWUuZmly
c3RDaGlsZDsKLQotICAgICAgYXNzZXJ0U2FtZSgicmV0dmFsX3NhbWUiLHRleHROb2RlLHJlcGxh
Y2VkVGV4dCk7Ci1ub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2Vy
dEVxdWFscygibm9kZVZhbHVlU2FtZSIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsK
LSAgICAgICBub2RlID0gdGV4dE5vZGUubmV4dFNpYmxpbmc7Ci0KLSAgICAgIGFzc2VydE5vdE51
bGwoInNlY29uZENoaWxkTm90TnVsbCIsbm9kZSk7Ci1ub2RlVHlwZSA9IG5vZGUubm9kZVR5cGU7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygic2Vjb25kQ2hpbGRJc0VudFJlZiIsNSxub2RlVHlwZSk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICB0ZXh0cmVwbGFj
ZXdob2xldGV4dDA3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZDI5NzdiYTE4OGFhMWIxMzg4NjZlZGFiMzU1NWI3OTdjMjQx
NzgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9U
RVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFF
TlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwh
RU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAg
ICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5z
OnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJ
dGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVE
PgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3
dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2Nh
dGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0idGV4dHJlcGxhY2V3aG9sZXRleHQwNy5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3
aG9sZXRleHQwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0
NTFhNDY2YjY0MzFhMjRkNmI3YTQ5MzJhNmRjZDMxNDQ1ZTY0MmUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOAotU3RhdHVzCWZhaWx1cmUKLU1l
c3NhZ2UJdGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBhc3NlcnRUcnVlIGZhaWxl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBs
YWNld2hvbGV0ZXh0MDguanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4
dHJlcGxhY2V3aG9sZXRleHQwOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA4
NTRiMzBmMmZmYTc0ZDczYTcxNGFmZjdkYzdiZDMwYTA1ODljMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNiAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1BcHBlbmRzIGFuIGVudGl0eSByZWZlcmVuY2UgY29udGFpbmluZyB0
ZXh0IGFuZCBhbiBlbGVtZW50IHRvIGFuIGV4aXN0aW5nCi10ZXh0IG5vZGUsIHRoZW4gY2FsbHMg
VGV4dC5yZXBsYWNlV2hvbGVUZXh0IG9uIHRoZSBleGlzdGluZyB0ZXh0IG5vZGUuCi1BIE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUiBzaG91bGQgYmUgdGhyb3duLgotCi0qIEBhdXRob3IgQ3Vy
dCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwt
My1Db3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdob2xlVGV4dAotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD00MjUKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTQwCi0qLwotZnVuY3Rp
b24gdGV4dHJlcGxhY2V3aG9sZXRleHQwOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDgiKSAhPSBu
dWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAgICAgIHZh
ciBwOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBub2RlOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0g
bG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRF
bGVtZW50c0J5VGFnTmFtZSgicCIpOwotICAgICAgcCA9IGl0ZW1MaXN0Lml0ZW0oMCk7Ci0gICAg
ICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQyIik7Ci0gICAgICBub2Rl
ID0gcC5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgbm9kZSA9IHAuZmlyc3RDaGlsZDsKLQot
ICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBub2Rl
ID0gbm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJ5byIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4Lnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmFlOTk2OWFmOGM2ZDEwMjM0ZmEw
MDM2MmQ3ODUzZTY5N2QwZDFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdo
b2xldGV4dDA4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWwgWwotPCFFTlRJVFkgZW50MSAnZm9vJz4KLTwhRU5USVRZIGVudDIgJ2Zvbzxici8+Jz4K
LTwhRUxFTUVOVCBodG1sIChoZWFkLCBib2R5KT4KLTwhQVRUTElTVCBodG1sIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotPCFFTEVNRU5UIGhlYWQgKHRpdGxlLHNjcmlwdCopPgotPCFFTEVNRU5UIHNj
cmlwdCAoI1BDREFUQSk+Ci08IUFUVExJU1Qgc2NyaXB0IAotICAgICBzcmMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgdHlwZSBDREFUQSAjSU1QTElFRAotICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVE
PgotPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KLTwhRUxFTUVOVCBib2R5IChwKT4KLTwhQVRU
TElTVCBib2R5IG9ubG9hZCBDREFUQSAjSU1QTElFRD4KLTwhRUxFTUVOVCBwICgjUENEQVRBfGJy
KSo+Ci08IUVMRU1FTlQgYnIgRU1QVFk+Ci1dPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPgotPGhlYWQ+Ci08dGl0bGU+cmVwbGFjZVdob2xlVGV4dCBzYW1wbGU8
L3RpdGxlPgotPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nc2VsZnhodG1sLmpz
Jz48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9J1VURi04JyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
IHNyYz0ndGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyc+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08
L3NjcmlwdD48L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLTxwPmJhcjwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vu
dGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFjM2Q5Y2JkZjcwMGU2OTZiNmEw
NzQ4NTBjNjI2YzQzODYzNjc5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHkt
ZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1U
ZXN0IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIGFsd2F5cyB0cmVhdGVk
IHJlYWRvbmx5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHhtbERvYzIu
YWRvcHROb2RlKGVudGl0eVJlZmVyZW5jZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVu
Y2Uub3duZXJEb2N1bWVudCBpcyB4bWxEb2MKLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1
ZSA9ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSBpcyBu
dWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5hbWVzcGFjZUVycm9yOiBET00gRXhjZXB0aW9uIDE0LgotUEFTUyBlbnRpdHlSZWZl
cmVuY2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLnRleHRDb250ZW50ID0g
J2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA3LgotRkFJTCBlbnRpdHlSZWZlcmVuY2UudGV4dENvbnRlbnQgc2hvdWxk
IGJlID4uIFdhcyAuCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBiZSAx
LiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24g
Ny4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIGlzIGNoaWxkcmVuQmVm
b3JlRmFpbGVkQXBwZW5kCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBi
ZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmluc2VydEJlZm9yZSh0ZXh0LCBlbnRp
dHlSZWZlcmVuY2UuZmlyc3RDaGlsZCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uu
Y2hpbGROb2Rlcy5sZW5ndGggaXMgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2Vw
dGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZiMTY0MWJlZDQ0NzMw
NzBmYmMyZTlmMzQ5YzE5Y2I4MWQzZThmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVh
ZG9ubHktZXhjZXB0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlYWRvbmx5
LWV4Y2VwdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1Q
TEFURS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10
ZXN0cy9URU1QTEFURS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmVlZDkz
YTVlMDZkODg0MTI4ZGYzYjM0ZGI1NDJkODUwNzFlMzVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVy
ZW5jZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICsw
LDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9IllPVVJfSlNfRklM
RV9IRVJFIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhj
ZXB0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQt
dGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWYyNDY1N2Q4MmRiM2U4YTdmYmJlNDg3N2QzZDNkNjNiMTA5ZDQ3Ny4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9F
bnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdCB0byBtYWtlIHN1cmUg
RW50aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBhbHdheXMgdHJlYXRlZCByZWFkb25seSIpCi0KLXZh
ciB4bWxEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7Ci12YXIgeG1sRG9jMiA9IGRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZhciBlbnRpdHlSZWZlcmVuY2UgPSB4bWxEb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotCi1zaG91bGRUaHJvdygieG1sRG9jMi5hZG9w
dE5vZGUoZW50aXR5UmVmZXJlbmNlKSIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5vd25l
ckRvY3VtZW50IiwgInhtbERvYyIpCi0KLS8vIG5vZGVWYWx1ZSBpcyBkZWZpbmVkIHRvIGJlIG51
bGwgZm9yIEVudGl0eSBSZWZlcmVuY2Ugbm9kZXMsIGFuZCB0aHVzIHNob3VsZCBzaWxlbnRseSBm
YWlsIHRvIG1vZGlmeQotLy8gU3BlYyBpcyBhbWJpZ2lvdXMgYXMgdG8gaWYgd2Ugc2hvdWxkIHRo
cm93IGhlcmUgb3Igbm90LiAgSSd2ZSByZXF1ZXN0ZWQgY2xhcmlmaWNhdGlvbjoKLS8vIGh0dHA6
Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAwOEphbk1hci8wMDA5Lmh0
bWwKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlID0gJ2ZvbyciKTsKLXNo
b3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQotc2hvdWxkVGhy
b3coImVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJl
ZmVyZW5jZS5wcmVmaXgiLCAibnVsbCIpOwotCi1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNl
LnRleHRDb250ZW50ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UudGV4dENv
bnRlbnQiLCAiJz4nIik7Ci0KLXZhciBjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCA9IGVudGl0
eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3VsZEJlKCJjaGlsZHJlbkJlZm9yZUZh
aWxlZEFwcGVuZCIsICIxIik7Ci12YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJG
QUlMIik7Ci1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIik7
Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIiwgImNoaWxkcmVu
QmVmb3JlRmFpbGVkQXBwZW5kIik7Ci0KLWNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kID0gZW50
aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hvdWxkQmUoImNoaWxkcmVuQmVmb3Jl
RmFpbGVkQXBwZW5kIiwgIjEiKTsKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2UuaW5zZXJ0
QmVmb3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENoaWxkKSIpOwotc2hvdWxkQmUoImVu
dGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCIsICJjaGlsZHJlbkJlZm9yZUZhaWxlZEFw
cGVuZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFsLXZh
bHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFs
dWVzLWV4cGVjdGVkLnR4dAppbmRleCAyNmYwZWMyYTNkZWJmZTdhN2VkZWIwOGUyZDEwMWE3NDE1
ZGNkZmI1Li4xYzk4MWZiM2I1ZDg5MjdkNWE4NDMzOGYzNzEyNDUzYTYwY2U4MWYxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVk
LnR4dApAQCAtMTEzLDEyICsxMTMsNiBAQCBQQVNTIGVsZW1lbnQubmFtZXNwYWNlVVJJIGlzICdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwogUEFTUyBlbGVtZW50LnByZWZpeCBpcyAnaHRt
bCcKIFBBU1MgZWxlbWVudC5ub2RlVmFsdWUgaXMgbnVsbAogUEFTUyBlbGVtZW50LmF0dHJpYnV0
ZXMudG9TdHJpbmcoKSBpcyAnW29iamVjdCBOYW1lZE5vZGVNYXBdJwotUEFTUyBkb2N1bWVudC5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoJ2d0JykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBw
b3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZU5h
bWUgaXMgJ2d0JwotUEFTUyBlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIGlzIG51bGwKLVBBU1Mg
ZW50aXR5UmVmZXJlbmNlLm5hbWVzcGFjZVVSSSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5j
ZS5wcmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIGlzIG51bGwK
IFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5vZGVOYW1lIGlzICd4bWwtc3R5bGVzaGVldCcK
IFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLmxvY2FsTmFtZSBpcyBudWxsCiBQQVNTIHByb2Nl
c3NpbmdJbnN0cnVjdGlvbi5uYW1lc3BhY2VVUkkgaXMgbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1ZXMuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwppbmRl
eCA3MzFhODA2MzkwODY5OGI0Njk1YjI4YzM2Yjc3M2E3ZGQxYTMwMzU0Li45YjEyYTk3OTAxYzAz
OTQzMjMzMmQzM2RmY2FkYzk4MjdmYjZhYWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwpAQCAtMTU2LDE2
ICsxNTYsNiBAQCBzaG91bGRCZSgiZWxlbWVudC5wcmVmaXgiLCAiJ2h0bWwnIik7CiBzaG91bGRC
ZSgiZWxlbWVudC5ub2RlVmFsdWUiLCAibnVsbCIpOwogc2hvdWxkQmUoImVsZW1lbnQuYXR0cmli
dXRlcy50b1N0cmluZygpIiwgIidbb2JqZWN0IE5hbWVkTm9kZU1hcF0nIik7CiAKLS8vIE5vdCBw
b3NzaWJsZSB0byBjcmVhdGUgRW50aXR5IG5vZGVzIHZpYSB0aGUgRE9NLCBXZWJLaXQgZG9lc24n
dCBjcmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKLQotc2hvdWxkVGhyb3coImRvY3VtZW50LmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgnZ3QnKSIpOwotdmFyIGVudGl0eVJlZmVyZW5jZSA9IHhtbERvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5v
ZGVOYW1lIiwgIidndCciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIiwg
Im51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubmFtZXNwYWNlVVJJIiwgIm51bGwi
KTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UucHJlZml4IiwgIm51bGwiKTsKLXNob3VsZEJl
KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQogLy8gTm90IHBvc3NpYmxl
IHRvIGNyZWF0ZSBOb3RhdGlvbiBub2RlcyB2aWEgdGhlIERPTSwgV2ViS2l0IGRvZXNuJ3QgY3Jl
YXRlIHRoZW0gZnJvbSBwYXJzaW5nCiAKIHZhciBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSBkb2N1
bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3htbC1zdHlsZXNoZWV0JywgJ3R5cGU9
XCJ0ZXh0L3hzbFwiIGhyZWY9XCJtaXNzaW5nLnhzbFwiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
CmluZGV4IDc3MTNmYzljZjQ4N2Y2OTc5ODE4NzQyMmUxMjcxYWE4NjJiZTYyNTcuLjc0N2NkN2U2
MjU5Y2RkY2EwYmUyNWNlZTRiNWNjMmEwMWY3MGNmMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
CkBAIC0zMyw4ICszMyw2IEBAIFBBU1M6IGNhbkdldCgnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJl
ICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0RvY3VtZW50VHlwZScpIHNob3VsZCBiZSAn
dHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFbGVtZW50Jykgc2hvdWxkIGJlICd0cnVlJyBh
bmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0VsZW1lbnQnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4K
LVBBU1M6IGNhbkdldCgnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMu
Ci1QQVNTOiBjYW5TZXQoJ0VudGl0eVJlZmVyZW5jZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlz
LgogUEFTUzogY2FuR2V0KCdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBB
U1M6IGNhblNldCgnRXZhbEVycm9yJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBj
YW5HZXQoJ0V2ZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggZmZmNWM0
YWQwODE0YWI5YzFjYzA0NmFmZWJiMThjOWQ3OGJjNjc0MC4uNDQzMTZhYzc4ZjEzODc4MDQ5MGU0
ZTU2MTJhYjJhZDhmYjdlMDllYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbApAQCAtODQsNyArODQsNiBAQCB2YXIgd2luZG93
UmVhZFdyaXRlUHJvcGVydGllcyA9IFsKICAgICAiRG9jdW1lbnRGcmFnbWVudCIsIAogICAgICJE
b2N1bWVudFR5cGUiLCAKICAgICAiRWxlbWVudCIsIAotICAgICJFbnRpdHlSZWZlcmVuY2UiLCAK
ICAgICAiRXZhbEVycm9yIiwgCiAgICAgIkV2ZW50IiwgCiAgICAgIkhUTUxBbmNob3JFbGVtZW50
IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dp
bmRvdy1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNl
cy93aW5kb3ctcHJvcGVydGllcy5qcwppbmRleCBmOWM3MDkyOTI5Mjk4Yzc2Zjc5Y2U1ZjZhNmFl
NTJmYzljZWMwZGY1Li45ZDQzMGVjZWIyZWFjN2E1NzE4YjM3ZmQ2M2RlN2NlMjRhYmExYjNlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1w
cm9wZXJ0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMv
d2luZG93LXByb3BlcnRpZXMuanMKQEAgLTU2LDcgKzU2LDYgQEAgdmFyIHByb3BlcnR5SW5mbyA9
IFsKICAgICBbIkRvY3VtZW50RnJhZ21lbnQiLCAib2JqZWN0Il0sCiAgICAgWyJEb2N1bWVudFR5
cGUiLCAib2JqZWN0Il0sCiAgICAgWyJFbGVtZW50IiwgIm9iamVjdCJdLAotICAgIFsiRW50aXR5
UmVmZXJlbmNlIiwgIm9iamVjdCJdLAogICAgIFsiRXZlbnQiLCAib2JqZWN0Il0sCiAgICAgWyJF
dmVudEV4Y2VwdGlvbiIsICJvYmplY3QiXSwKICAgICBbIkhUTUxBbmNob3JFbGVtZW50IiwgIm9i
amVjdCJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1s
b29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCA2N2QzMDJjZWVk
NTIwNTYzZGZlMWRiZjdmNzkwMGQyMGZkODQ4OGIwLi4xMTIyMTRhNzdiZjUzZjBjMTJmZjNhYmEz
ZTcwN2VmMTMwN2U2YWI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAt
MTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1
bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9
PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydF
bGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3
aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1Q
QVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29u
c3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmpl
Y3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQn
XSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50
J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVu
dEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0
cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKaW5kZXggMzAyYTA5Yjg2YTVi
ZjJlNzk5ZDI0YzhlNjllMTMwN2UxYTRkMjZkMS4uYWJmNjdhZDJlOWFmNjE4Y2FmODU3NzcwYmEw
OTExNDRhMTcyNDRhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dApAQCAt
OTYsOCArOTYsNiBAQCBQQVNTOiBDb21tZW50IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzog
Q0RBVEFTZWN0aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogRG9jdW1lbnRUeXBlIHN1
Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
Ci1QQVNTOiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1QQVNTOiBFbnRpdHlSZWZlcmVu
Y2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gc3Vj
Y2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRG9jdW1lbnQgc3VjY2Vzc2Z1bGx5IHNoYWRv
d2VkCiBQQVNTOiBIVE1MRWxlbWVudCBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2lu
Zy5odG1sCmluZGV4IDliNDZlYWNlMDEzNzBjNTUyNjJkMGVmNjRkNjgxYWU1NmVhYmMwMmMuLmNi
NzRmYjA0YTA3MjUyZjEwYjVkYzYzZjljNjA0YjE1MTkwYzVkOWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcu
aHRtbApAQCAtMjE1LDEwICsyMTUsNiBAQAogICAgICAgICBsb2coRG9jdW1lbnRUeXBlID09IDEg
PyAiUEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRG9j
dW1lbnRUeXBlIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIE5vdGF0aW9uID0gMTsK
ICAgICAgICAgbG9nKE5vdGF0aW9uID09IDEgPyAiUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5
IHNoYWRvd2VkIiA6ICJGQUlMOiBOb3RhdGlvbiB3YXMgbm90IHNoYWRvd2VkIik7Ci0gICAgICAg
IHZhciBFbnRpdHkgPSAxOwotICAgICAgICBsb2coRW50aXR5ID09IDEgPyAiUEFTUzogRW50aXR5
IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRW50aXR5IHdhcyBub3Qgc2hhZG93ZWQi
KTsKLSAgICAgICAgdmFyIEVudGl0eVJlZmVyZW5jZSA9IDE7Ci0gICAgICAgIGxvZyhFbnRpdHlS
ZWZlcmVuY2UgPT0gMSA/ICJQQVNTOiBFbnRpdHlSZWZlcmVuY2Ugc3VjY2Vzc2Z1bGx5IHNoYWRv
d2VkIiA6ICJGQUlMOiBFbnRpdHlSZWZlcmVuY2Ugd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAg
ICB2YXIgUHJvY2Vzc2luZ0luc3RydWN0aW9uID0gMTsKICAgICAgICAgbG9nKFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiA9PSAxID8gIlBBU1M6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBzdWNjZXNzZnVs
bHkgc2hhZG93ZWQiIDogIkZBSUw6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiB3YXMgbm90IHNoYWRv
d2VkIik7CiAgICAgICAgIHZhciBIVE1MRG9jdW1lbnQgPSAxOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRleCA0YTE4YWRmN2Jh
ZjY2OWM3NjFkNTE5N2IxMzRkYTBiZmVlODcyZTg2Li4zN2MzNTQxOTM4ZjExMDdkNjZjYzkzMTUw
YzFiMTQzNjVmNWVhOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29u
c3RydWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29u
c3RydWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDYgQEAgUEFTUyBUcnlBbGxvY2F0ZSgn
Q2hhcmFjdGVyRGF0YScpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdDREFUQVNl
Y3Rpb24nKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRG9jdW1lbnRUeXBlJykg
aXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0VsZW1lbnQnKSBpcyAnZXhjZXB0aW9u
JwotUEFTUyBUcnlBbGxvY2F0ZSgnRW50aXR5UmVmZXJlbmNlJykgaXMgJ2V4Y2VwdGlvbicKIFBB
U1MgVHJ5QWxsb2NhdGUoJ0V2ZW50VGFyZ2V0JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxs
b2NhdGUoJ0hUTUxEb2N1bWVudCcpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdO
b2RlJykgaXMgJ2V4Y2VwdGlvbicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Rv
bS1jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3Rv
cnMuaHRtbAppbmRleCBmMjQ5OWRjMDQ2NTM3NzM3NmZhODg2YjJjYmIzYmQwYTlkODZlNDIxLi43
OTUzYjYxYTI1ZDIxMDczN2JiY2Y2YTQwODE2ZTFhZmM1MGNkYmUwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCkBAIC0xOCw3ICsxOCw2IEBAIHZhciBvYmpl
Y3RzX2V4Y2VwdGlvbiA9IFsKICAgICAnQ0RBVEFTZWN0aW9uJywKICAgICAnRG9jdW1lbnRUeXBl
JywKICAgICAnRWxlbWVudCcsCi0gICAgJ0VudGl0eVJlZmVyZW5jZScsCiAgICAgJ0V2ZW50VGFy
Z2V0JywKICAgICAnSFRNTERvY3VtZW50JywKICAgICAnTm9kZScsCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAppbmRleCA3ODhjYWJlNWQw
M2I1MWZmYmM0MGZmMzYzY2FkNmNhMDZhYjg1ZDQ5Li42OTJiYTcwNWZlZDgzYjI5NWEyNzA4ZDVl
NzM2MDZiMGU2YTAxYTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVy
LWNsYXNzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXIt
Y2xhc3Nlcy1leHBlY3RlZC50eHQKQEAgLTQ3LDkgKzQ3LDYgQEAgUEFTUyBqc1dyYXBwZXJDbGFz
cyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKS5jb25zdHJ1Y3RvcikgaXMgJ0NEQVRB
U2VjdGkKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4
JywgJ3gnLCAneCcpKSBpcyAnRWxlbWVudCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLl9fcHJvdG9fXykgaXMgJ0VsZW1lbnRQ
cm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnRO
UygneCcsICd4JywgJ3gnKS5jb25zdHJ1Y3RvcikgaXMgJ0VsZW1lbnRDb25zdHJ1Y3RvcicKLVBB
U1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkpIGlz
ICdFbnRpdHlSZWZlcmVuY2UnCi1QQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgpLl9fcHJvdG9fXykgaXMgJ0VudGl0eVJlZmVyZW5jZVByb3RvdHlw
ZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCkuY29uc3RydWN0b3IpIGlzICdFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3RvcicKIFBBU1MganNX
cmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpIGlz
ICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50
LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLl9fcHJvdG9fXykgaXMgJ1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvblByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuY29uc3RydWN0b3IpIGlzICdQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb25Db25zdHJ1Y3RvcicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2Vz
Lmh0bWwKaW5kZXggOGJlOGZlM2JmMGMyM2MwMzRhMDc3ODIzNTUwZDY3M2RmZTEwZWRjNy4uZmY4
MWQ4ZjkwNTA0NDBkYzFlMzFkMzA4MzM1NWM2NjMxMjljOTYzMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKQEAgLTkwLDcgKzkwLDYgQEAgZnVuY3Rpb24gcnVu
VGVzdCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9jdW1lbnQiKTsKICAgICB0ZXN0KCJ4
bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJDREFUQVNlY3Rpb24iKTsKICAgICB0
ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykiLCAiRWxlbWVu
dCIpOwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpIiwgIkVu
dGl0eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpOwogCiAgICAgZGVidWcoJycp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKaW5kZXggNjNlMjQyYTJmYmUz
MmI5ZDZiODNkNThjZWFkNTY0OWI0OTY3NDFiYi4uZDU5M2E1ZWFiYThhOGUwOGUwMWMwOWMyMjQz
MThkZTkwODYwY2Q4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CkBA
IC0xODcsNyArMTg3LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnIKIENPTlNPTEUgTUVTU0FH
RTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlu
cywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3QgY2hlY2tzIGNyb3NzLWZyYW1lIGFj
Y2VzcyBzZWN1cml0eSAocmRhcjovL3Byb2JsZW0vNTI1MTMwOSkuCiAKIApAQCAtMjM1LDcgKzIz
NCw2IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkRvY3VtZW50RnJhZ21lbnQnKSBzaG91
bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5Eb2N1bWVu
dFR5cGUnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdp
bmRvdy5FbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0
YXJnZXRXaW5kb3cuRW50aXR5Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgotUEFTUzogY2Fu
R2V0KCd0YXJnZXRXaW5kb3cuRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICdmYWxzZScgYW5k
IGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRXZhbEVycm9yJykgc2hvdWxkIGJlICdm
YWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRXZlbnQnKSBzaG91bGQg
YmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5IVE1MQW5jaG9y
RWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwK
aW5kZXggMzgwMGEwYjVlODEyNGI5NDVkODEwMzkwYzNlOWI1ZjkwZTU3ODM4ZC4uY2NlNWY3YTNm
MjM0MWNhYjdmZjA5Y2JlNzViM2IyZTY5ZGVhNmNmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwK
QEAgLTIwLDcgKzIwLDYgQEAKICAgICAgICAgICAgICJEb2N1bWVudFR5cGUiLCAKICAgICAgICAg
ICAgICJFbGVtZW50IiwgCiAgICAgICAgICAgICAiRW50aXR5IiwgCi0gICAgICAgICAgICAiRW50
aXR5UmVmZXJlbmNlIiwgCiAgICAgICAgICAgICAiRXZhbEVycm9yIiwgCiAgICAgICAgICAgICAi
RXZlbnQiLCAKICAgICAgICAgICAgICJIVE1MQW5jaG9yRWxlbWVudCIsIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBl
Y3RlZC50eHQKaW5kZXggZTQ1ODVhYmQ1MTYwNWMxZTJkOWU4YjlmMmNkODhhYmNkNWNhZDJlMC4u
MWVhNWJkYzZkOTQ5NzQ2ZTFlOWMyNTM1NjY0NjVjNDBiMzliODVjOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhw
ZWN0ZWQudHh0CkBAIC03OCw3ICs3OCw2IEBAIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0
V2luZG93LCAnRG9jdW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5H
ZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0RvY3VtZW50RnJhZ21lbnQnKSBzaG91bGQgYmUg
J2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0Rv
Y3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2Ny
aXB0b3IodGFyZ2V0V2luZG93LCAnRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4K
LVBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRW50aXR5UmVmZXJlbmNlJykg
c2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRX
aW5kb3csICdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5H
ZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0V2ZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5k
IGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdIVE1MQW5jaG9yRWxl
bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVz
Y3JpcHRvci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKaW5kZXggZGVhMDE3ZDY3OGEx
NWZkZDEzYzc3YTkyYWU1MTVjNzA4ZTdiZDNhYy4uMzA2NmIzYTJhZmNiNWQ1ZDIzOTFmY2Y0OTlk
MWUzNDk0NjUxNTQxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKQEAgLTE5LDcgKzE5LDYgQEAKICAgICAgICAgICAgICJE
b2N1bWVudEZyYWdtZW50IiwgCiAgICAgICAgICAgICAiRG9jdW1lbnRUeXBlIiwgCiAgICAgICAg
ICAgICAiRWxlbWVudCIsIAotICAgICAgICAgICAgIkVudGl0eVJlZmVyZW5jZSIsIAogICAgICAg
ICAgICAgIkV2YWxFcnJvciIsIAogICAgICAgICAgICAgIkV2ZW50IiwgCiAgICAgICAgICAgICAi
SFRNTEFuY2hvckVsZW1lbnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0
CmluZGV4IDQ3ZmQ1NDM5ZDM3ZDc2ZDEwNjU0OWE3MTliYjVhYzkyMjkyM2NiZWMuLjg1YjBhYmEx
YjE1YjQ2ZWFlYmEwNjBmYmQ1NWUyOTI5ZjQxMjUyZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
cHV0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
NTQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE1MjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBB
TEVSVDogUEFTUzogd2luZG93LkF0dHIgc2hvdWxkIGJlICdbb2JqZWN0IEF0dHJDb25zdHJ1Y3Rv
cl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQ0RBVEFTZWN0aW9uIHNob3VsZCBiZSAn
W29iamVjdCBDREFUQVNlY3Rpb25Db25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3
aW5kb3cuQ2hhcmFjdGVyRGF0YSBzaG91bGQgYmUgJ1tvYmplY3QgQ2hhcmFjdGVyRGF0YUNvbnN0
cnVjdG9yXScgYW5kIGlzLgpAQCAtMTQsOCArMTQsNiBAQCBBTEVSVDogUEFTUzogd2luZG93LkRP
TUV4Y2VwdGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdJyBh
bgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5ET01JbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgJ1tvYmpl
Y3QgRE9NSW1wbGVtZW50YXRpb25Db25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3
aW5kb3cuRE9NUGFyc2VyIHNob3VsZCBiZSAnW29iamVjdCBET01QYXJzZXJDb25zdHJ1Y3Rvcl0n
IGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRWxlbWVudCBzaG91bGQgYmUgJ1tvYmplY3Qg
RWxlbWVudENvbnN0cnVjdG9yXScgYW5kIGlzLgotQUxFUlQ6IFBBU1M6IHdpbmRvdy5FbnRpdHkg
c2hvdWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KLUFMRVJUOiBQQVNTOiB3aW5kb3cuRW50aXR5
UmVmZXJlbmNlIHNob3VsZCBiZSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0n
IGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRXZhbEVycm9yIHNob3VsZCBiZSAnZnVuY3Rp
b24gRXZhbEVycm9yKCkgeyAgICBbbmF0aXZlIGNvZGVdfScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6
IHdpbmRvdy5FdmVudCBzaG91bGQgYmUgJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGFuZCBp
cy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQgc2hvdWxkIGJlICdbb2Jq
ZWN0IEhUTUxBbmNob3JFbGVtZW50Q29uc3RydWN0b3JdJyBhbmQgaXMuCkBAIC0yNzQsMTUgKzI3
MiwxNSBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIwOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEy
MTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTIyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxMjM6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyNDogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTMzOiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzU6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDEzMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTM0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzY6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzNzogQmxvY2tlZCBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9t
YWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM4OiBC
bG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBh
Y2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJv
dG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTog
bGluZSAxMzk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE0MDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0
Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNDI6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0MzogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTQ0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxNDU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0NjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCkBAIC0zMjEsNyArMzE5LDcgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3
ODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYK
IENPTlNPTEUgTUVTU0FHRTogbGluZSAxNzk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4MDogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTgxOiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Np
bmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xz
LCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
ODI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE4NDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTg1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODY6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NzogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0zMzcsNyArMzM1LDcgQEAgQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE5NjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOTc6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5ODog
QmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20g
YWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFBy
b3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTk5OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAyMDA6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjAzOiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMDQ6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90
b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDIwNTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0zNzAs
NyArMzY4LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzMTogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSAyMzI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDIzMzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjM0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMzU6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogVGhpcyB0ZXN0IGNoZWNrcyBjcm9zcy1mcmFtZSBhY2Nl
c3Mgc2VjdXJpdHkgb2Ygd2luZG93IGF0dHJpYnV0ZSBzZXR0ZXJzIChyZGFyOi8vcHJvYmxlbS81
MzI2NzkxKS4KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCmluZGV4IGFjMDI0Zjg1NWFhODY2ZTY3
MTdiOTdmZmIxYjc0OTU2YjNjNWQ3M2MuLmEyYjZiODcwYTE4YzczOTI1NDhjMWVhOWQ4NTkyMjc4
MjljYjZlMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCkBAIC01MCw3ICs1MCw2IEBAIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRE9N
SW1wbGVtZW50YXRpb24iKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3cs
ICJET01QYXJzZXIiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJF
bGVtZW50Iik7Ci0gICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRW50aXR5
UmVmZXJlbmNlIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRXZh
bEVycm9yIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRXZlbnQi
KTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJIVE1MQW5jaG9yRWxl
bWVudCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNv
dXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQt
dGVzdC5odG1sCmluZGV4IDM2ZjgyNmJkOTA1ZjA1Nzc4MGI4YjYzODY5NmY3OTM3ZTVjNGM4OGYu
LmI2N2RmYzM5ZmIwMjNiMGM5NzdlZWM4M2M5NjY2MWI4YzE5OGUwZDUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFt
ZS1mb3ItcHV0LXRlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwKQEAgLTU4LDgg
KzU4LDYgQEAKICAgICAgICAgdmFyIERPTUltcGxlbWVudGF0aW9uT2xkID0gd2luZG93LkRPTUlt
cGxlbWVudGF0aW9uOwogICAgICAgICB2YXIgRE9NUGFyc2VyT2xkID0gd2luZG93LkRPTVBhcnNl
cjsKICAgICAgICAgdmFyIEVsZW1lbnRPbGQgPSB3aW5kb3cuRWxlbWVudDsKLSAgICAgICAgdmFy
IEVudGl0eU9sZCA9IHdpbmRvdy5FbnRpdHk7Ci0gICAgICAgIHZhciBFbnRpdHlSZWZlcmVuY2VP
bGQgPSB3aW5kb3cuRW50aXR5UmVmZXJlbmNlOwogICAgICAgICB2YXIgRXZhbEVycm9yT2xkID0g
d2luZG93LkV2YWxFcnJvcjsKICAgICAgICAgdmFyIEV2ZW50T2xkID0gd2luZG93LkV2ZW50Owog
ICAgICAgICB2YXIgSFRNTEFuY2hvckVsZW1lbnRPbGQgPSB3aW5kb3cuSFRNTEFuY2hvckVsZW1l
bnQ7CkBAIC0yNjEsOCArMjU5LDYgQEAKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRE9N
SW1wbGVtZW50YXRpb24iLCAiRE9NSW1wbGVtZW50YXRpb25PbGQiKTsKICAgICAgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuRE9NUGFyc2VyIiwgIkRPTVBhcnNlck9sZCIpOwogICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5FbGVtZW50IiwgIkVsZW1lbnRPbGQiKTsKLSAgICAgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuRW50aXR5IiwgIkVudGl0eU9sZCIpOwotICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5FbnRpdHlSZWZlcmVuY2UiLCAiRW50aXR5UmVmZXJlbmNlT2xkIik7CiAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LkV2YWxFcnJvciIsICJFdmFsRXJyb3JPbGQiKTsKICAg
ICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZlbnQiLCAiRXZlbnRPbGQiKTsKICAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQiLCAiSFRNTEFuY2hvckVsZW1l
bnRPbGQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKaW5k
ZXggOWJlYTJhM2Q2NjY2ZDBkOTM2YzEwY2ZiMTE2OTFhMTk2YjRhZGI4My4uOWJhYzg3NmI0MDlh
NDc4ZGRlZmViYjA5NWY2NjQwZDQ0MmRjMDNiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlz
dG9yaWNhbC1leHBlY3RlZC50eHQKQEAgLTksNyArOSw3IEBAIFBBU1MgSGlzdG9yaWNhbCBET00g
ZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01Mb2NhdG9yCiBQQVNTIEhpc3RvcmljYWwgRE9N
IGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NT2JqZWN0IAogUEFTUyBIaXN0b3JpY2FsIERP
TSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTVVzZXJEYXRhIAogUEFTUyBIaXN0b3JpY2Fs
IERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eSAKLUZBSUwgSGlzdG9yaWNhbCBE
T00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlSZWZlcmVuY2UgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXSIKK1BBU1MgSGlzdG9yaWNhbCBE
T00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlSZWZlcmVuY2UgCiBGQUlMIEhpc3Rv
cmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRXZlbnRFeGNlcHRpb24gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdIgogUEFTUyBIaXN0b3Jp
Y2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5hbWVMaXN0IAogUEFTUyBIaXN0b3Jp
Y2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5vdGF0aW9uIApAQCAtMTksOSArMTks
NyBAQCBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogUmFuZ2VF
eGNlcHRpb24KIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBj
cmVhdGVDREFUQVNlY3Rpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5k
ZWZpbmVkIGJ1dCBnb3QgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gY3JlYXRlQ0RBVEFT
ZWN0aW9uKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iCi1GQUlMIEhpc3RvcmljYWwgRE9NIGZl
YXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogY3JlYXRlRW50aXR5UmVmZXJlbmNlIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIGNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpIHsKLSAgICBbbmF0aXZlIGNv
ZGVdCi19IgorUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IGNy
ZWF0ZUVudGl0eVJlZmVyZW5jZSAKIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBi
ZSByZW1vdmVkOiB4bWxFbmNvZGluZyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVk
KSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBudWxsCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZl
YXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogeG1sU3RhbmRhbG9uZSBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoYm9vbGVhbikgZmFsc2UKIEZBSUwg
SGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxWZXJzaW9uIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChvYmplY3Qp
IG51bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMmQ4ZGM4ZTE5ODU5NzQ1OGM5
MzE0ZGVkYmVlMjdjZjM2MWQ2ZTM4ZC4uNzk4OTU4MmFiM2ViOGFjMDUwYTNkOGE3NWRhZWM0MjY4
YmRlZDdmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMxMywxMSArMzEzLDYg
QEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQn
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcp
LmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBp
cyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
LVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZl
cmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxl
IGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JF
dmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9y
RXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKaW5kZXggYmFhYjQ5ODIwZjRkYTlmMzM5MzBiMmI3OTk0MmU5MzMxMDVlOGY3
MC4uNDU3ZTk5MDE0ZDQzODkzMmNhNDYzMjc4NGM5YjZjYTU3ODlkMmUyNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzEzLDExICsz
MTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxl
bWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZh
bHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBm
YWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1l
cmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBF
cnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1w
cmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCBlZGI3NTUwNzYyOWM3YzBkYzYyMDdiZjA0OTQ2
MGE0ZDU3ODk0YTgyLi44MmIwMjRhODY2YTQwZDMyOTFjNjVjNzNhZmNmOWJjMjQzYTk3NDVmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0CkBAIC0xMTQsOCArMTE0LDYgQEAgUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2Jq
ZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0RvY3VtZW50
VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFT
UyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVl
CiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZl
cmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9
PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2lu
WydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdp
blsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3
aW5bJ0V2ZW50RXhjZXB0aW9uJ10gPT0gJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rv
cl0nIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dAppbmRleCBhMGM2ZmY0Zjg3OWM1OTljNjAwN2U2N2U2OTViMjFhNTYyZTI2OTlmLi5l
NjgxYTQ2YTRmOGU2ZWQ1ZTI0Yjc3YTE3OTMwYWM1MTVlOGU2NGQ1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRl
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMTgsMTEgKzMxOCw2
IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50
JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQn
KS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUg
aXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJs
ZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9y
RXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJv
ckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1h
dmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYzE1YjY2NWEwZmZhYjY3NmMw
ZmU4ZDk3NWY4MzhiNzdkODk4OWJjOC4uZTE4NDI5NWMwZWMxM2M4MDNkM2JmNTk1MDQxNzhhY2Y1
M2NhNmVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMwOCw2IEBAIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxl
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVm
ZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50
aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFz
T3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVy
ZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFz
T3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAwZmJjNGIwMjhkOTJlNmFkZmE2NjM3NmU4ZWUyYmY2
N2VjNGZjZjMuLjk0ZDc4MTI2MjkwZDBiM2YwMzdhNDk2NWZhNWRmN2RhM2RjMjg3NWMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50Jyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmln
dXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJh
YmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAt
cHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKaW5kZXggOTNk
YWRjMDMxZjYyZjM2NjNhODk2NjAzYTNkYWIxOGVlMjY0MzJhNC4uMTYyZjQ4ZmM1NmI5ODc5YjNh
OWIxMzZiOGI3MWIyZWY5YTg3YTJlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxv
b2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0LDggKzExNCw2IEBAIFBBU1Mgd2lu
WydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVD
b25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxl
bWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVj
dCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNl
J10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNT
IHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3Ry
dWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0
cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25z
dHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudEV4Y2VwdGlvbiddID09ICdbb2JqZWN0
IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1v
YmpjLWV4cGVjdGVkLnR4dAppbmRleCBjMmNmZmUxNGJkM2UyMGNhZTUzM2ZjOTBjZDdhNzVkZGVm
NTRhYjE3Li43YzJiMTczMTE0NDVmM2M3ZDQzNzBlODRjMDc2ODFmZDM5MmYyY2YyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9i
amMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93
cmFwcGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKQEAgLTIxLDcgKzIxLDYgQEAgWE1MCiBQ
QVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQpIGlzICdET01Eb2N1bWVudCcKIFBBU1Mg
b2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSkgaXMgJ0RP
TUNEQVRBU2VjdGlvbicKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVF
bGVtZW50TlMoJ3gnLCAneCcsICd4JykpIGlzICdET01FbGVtZW50JwotUEFTUyBvYmpDV3JhcHBl
ckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpKSBpcyAnRE9NRW50aXR5
UmVmZXJlbmNlJwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigpKSBpcyAnRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uJwogCiBFdmVu
dHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVy
LWNsYXNzZXMtb2JqYy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKaW5kZXggMGJiYjQ0NWFjZjc1YTgwOTkyNGJiYzIyODk2
ODIyODQ2YzNhM2MxYi4uZjM1OWQ5NDNkMDhkMGMwMDljY2I2N2FiNzIyZTg2OGJkNjFiYWUzMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xh
c3Nlcy1vYmpjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKQEAgLTEwMyw3ICsxMDMsNiBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkKICAgICB0ZXN0KCJ4bWxEb2N1bWVudCIsICJEb2N1bWVudCIpOwogICAgIHRlc3QoInht
bERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpIiwgIkNEQVRBU2VjdGlvbiIpOwogICAgIHRl
c3QoInhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKSIsICJFbGVtZW50
Iik7Ci0gICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkiLCAiRW50
aXR5UmVmZXJlbmNlIik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCkiLCAiUHJvY2Vzc2luZ0luc3RydWN0aW9uIik7CiAKICAgICBkZWJ1ZygnJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5k
ZXggMDQ0ZjE0ZjBlNTI5NmU2NzVkOGI0M2M4YjQzZDgwMmQyNjk3NzExOC4uYzFhNDIyZjBhMTU1
NzcxOGMxYTdlZDlmMTA0Zjg4Y2Q5NTBhNTYxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICszMDgsNiBAQCBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJs
ZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJl
ZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vu
dGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhh
c093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UK
LVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZl
cmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhh
c093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFs
LWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dAppbmRleCAwODNhMDcxZjZjZTZlYjVlZDIxY2QwNDYwMWEzYWJlNzYxOTMxZmJmLi42ZWJhYWFm
NmNjY2EwMTBhOTJmZjcwN2YxOTI0MWRjODU1N2NlZjhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0yMzgsMTEgKzIzOCw2IEBAIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFz
T3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVt
ZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50
aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNl
JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBm
YWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50
JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQn
KSBpcyBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261532</attachid>
            <date>2015-09-18 15:50:03 -0700</date>
            <delta_ts>2015-09-18 15:53:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150918154949.patch</filename>
            <type>text/plain</type>
            <size>449453</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdkMDVhZWI1MjBmYWFh
NzRhYTc5NTU5N2YxOTZkN2QwYzMxM2E2Zi4uM2FjYWMzMmYwODkxNDU1NzBiZWY2OTI1ZTg2MzMw
MjZhNzQ1YWUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEyMSBAQAogMjAxNS0wOS0xOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKKzIwMTUtMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKwogICAgICAgICBXZWJDb250ZW50IGNyYXNoIGluIFdlYkNvcmU6Ok1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KCkgd2l0aCBHdWFyZE1hbGxvYyB3aGVu
IHByZXBhcmluZyB0byBzdXNwZW5kCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDkzNTAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDhlNjgyNzY4NmFiODRhNzgwYmVl
MDMwNzdkNThlNTE3MDc3NzQzNmUuLjg1ZGViZjA5MGJmMGMwZDg5MDBlOTk5MGNlYTgwMWM1ZWZm
MDZjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxNS0wOS0xOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5
IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIGhhbmRsaW5nIEVudGl0eVJlZmVyZW5jZSBOb2Rl
cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUlu
dGVybmFscy5tbToKKyAgICAgICAgKFdlYktpdDo6V0tET01Ob2RlQ2xhc3MpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6aXNBc3Npc3RhYmxlRWxlbWVudCk6CisKKzIwMTUtMDktMTggIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIEVudGl0eSBO
b2RlIHR5cGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0OTIzOQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggZDNlYjUxNzMxZTA2MDAy
ZTEzNDM4ZGFjYmY1N2VhNDdhZGRjNDMxYy4uMzQzYTgwMTI1ZjQyZjhkOTgyODcwYzM3YjQ1MjQx
NGJmODhmNWM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMTQ5LDcgKzE0OSw2
IEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3cuY3BwIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q1NT
LmNwcCIKICNpbmNsdWRlICJKU0VsZW1lbnQuY3BwIgotI2luY2x1ZGUgIkpTRW50aXR5UmVmZXJl
bmNlLmNwcCIKICNpbmNsdWRlICJKU0Vycm9yRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTRXZlbnQu
Y3BwIgogI2luY2x1ZGUgIkpTRXZlbnRFeGNlcHRpb24uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5j
bWFrZQppbmRleCBiOTI0MWRhMzk1ZDgyMGUxN2JjMGYxNTRkYzU3NjlkNjVjZmEzMTJhLi42OTQz
YjZkOWUxNmI4NmQxZDQ5ZjM3ZjhhNmZmYTJlZGQ4MzVlYzgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdU
Sy5jbWFrZQpAQCAtNTgzLDcgKzU4Myw2IEBAIGxpc3QoQVBQRU5EIEdPYmplY3RET01CaW5kaW5n
c1N0YWJsZV9JRExfRklMRVMKICAgICBkb20vRG9jdW1lbnRGcmFnbWVudC5pZGwKICAgICBkb20v
RG9jdW1lbnRUeXBlLmlkbAogICAgIGRvbS9FbGVtZW50LmlkbAotICAgIGRvbS9FbnRpdHlSZWZl
cmVuY2UuaWRsCiAgICAgZG9tL0V2ZW50LmlkbAogICAgIGRvbS9LZXlib2FyZEV2ZW50LmlkbAog
ICAgIGRvbS9Nb3VzZUV2ZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oKaW5kZXggMDhjNDQ5NjY4YWEyOGQ2MGU1NTNmOTVlMjYyMmZmMDIw
NTFmNmI1MC4uMDc3ZDc0NjEyNjZmODljN2Q2NDEyYjk3MTAxYWQzYWE3MmJmNDM2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xODMy
LDIwICsxODMyLDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFbnRpdHlSZWZlcmVuY2UuY3BwIj4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vy
cm9yRXZlbnQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KQEAgLTE5ODU5LDcgKzE5ODQ1LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0RPTVVSTC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRE9NV2luZG93LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hp
dGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFbGVtZW50LmgiIC8+Ci0g
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0
Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFbnRpdHlS
ZWZlcmVuY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0Vycm9yRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0V2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFdmVudEV4Y2VwdGlvbi5oIiAvPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCmluZGV4IDk3ODdiYzgwNWIzYjE5MWMwNDkxOTMyY2U0N2Y2NTdkZDkwMDliMzcuLjhiZWUy
YWY5MjE4N2JiNjY0MGI3NDMwMzVhYjAxY2FlNzhlMjRkZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTUy
NTcsOSArNTI1Nyw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNFbGVtZW50LmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9G
aWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNFbnRpdHlSZWZlcmVuY2UuY3BwIj4KLSAgICAgIDxGaWx0ZXI+
RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0
dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vycm9yRXZlbnQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTEyNjQ2LDkgKzEyNjQzLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2Vz
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFbnRpdHlSZWZlcmVuY2UuaCI+Ci0gICAgICA8RmlsdGVy
PkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVj
dHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFcnJvckV2ZW50LmgiPgogICAg
ICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGM5MGQxNTE1NmViZTQ2MTRhNDhlM2UyOTkwMWE2NzhlZDhlNWQ3N2YuLjNiYzUwMTMzNmUzOTY4
ZTgwYTlkMGNhZDQ5NjBmOGYwMzg4MjM5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM1ODcsOCArMzU4Nyw2IEBACiAJCTkz
RjlCNjU4MEJBMEYzNUUwMDg1NDA2NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjY1NTBC
QTBGMzVFMDA4NTQwNjQgLyogRE9NSFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5oICovOyB9Owog
CQk5M0Y5QjZFMDBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRFMEJBMEZCNzIwMDg1NDA2
NCAvKiBKU0NvbW1lbnQuY3BwICovOyB9OwogCQk5M0Y5QjZFMTBCQTBGQjcyMDA4NTQwNjQgLyog
SlNDb21tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0Y5QjZERjBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmggKi87IH07Ci0JCTkzRjlC
Nzc0MEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc3MjBCQTVGRERDMDA4NTQw
NjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwICovOyB9OwotCQk5M0Y5Qjc3NTBCQTVGREREMDA4
NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzczMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJl
ZmVyZW5jZS5oICovOyB9OwogCQk5M0Y5QjdBMDBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGOUI3OUUwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmNwcCAqLzsgfTsKIAkJ
OTNGOUI3QTEwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc5RjBCQTYwMzI2MDA4NTQw
NjQgLyogSlNDREFUQVNlY3Rpb24uaCAqLzsgfTsKIAkJOTNGREFGQ0EwQjExMzA3NDAwRTI3NDZG
IC8qIEVkaXRvckluc2VydEFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNGREFGQzkwQjExMzA3NDAwRTI3NDZGIC8qIEVkaXRvckluc2VydEFj
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0xMDk1OSw4ICsxMDk1Nyw2IEBACiAJCTkzRjlCNjU1MEJBMEYzNUUwMDg1NDA2NCAvKiBET01I
VE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNGOUI2REUwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvbW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y5QjZERjBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ29tbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk5M0Y5Qjc3MjBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRp
dHlSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNF
bnRpdHlSZWZlcmVuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0Y5Qjc3
MzBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNFbnRpdHlSZWZlcmVuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNGOUI3OUUwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ0RBVEFTZWN0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGOUI3OUYwQkE2MDMyNjAwODU0MDY0
IC8qIEpTQ0RBVEFTZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
Q0RBVEFTZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRkRBRkM5MEIx
MTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRBY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEVkaXRvckluc2VydEFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjAwNDcsOCArMjAwNDMsNiBAQAogCQkJCUJDNjQ2NDk2MTFEODIzNDkwMDY0
NTVCMCAvKiBKU0RPTVN0cmluZ01hcC5oICovLAogCQkJCTY1REYzMUU1MDlEMUNDNjAwMDBCRTMy
NSAvKiBKU0VsZW1lbnQuY3BwICovLAogCQkJCTY1REYzMUU2MDlEMUNDNjAwMDBCRTMyNSAvKiBK
U0VsZW1lbnQuaCAqLywKLQkJCQk5M0Y5Qjc3MjBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlS
ZWZlcmVuY2UuY3BwICovLAotCQkJCTkzRjlCNzczMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0
eVJlZmVyZW5jZS5oICovLAogCQkJCUZFODBEQTVGMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xv
Y2F0aW9uLmNwcCAqLywKIAkJCQlGRTgwREE2MDBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2Nh
dGlvbi5oICovLAogCQkJCUZFODBEQTYxMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9u
LmNwcCAqLywKQEAgLTI1NTc5LDcgKzI1NTczLDYgQEAKIAkJCQlGRDc4NjhCQTEzNkI5OTkyMDBE
NDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2
NURGMzFGQTA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBREVDNzhGODE4RUU1MzA4MDAxMzE1QzIgLyogSlNFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk5M0Y5Qjc3NTBCQTVGREREMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJFQ0Y3QUREMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9y
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBK
U0Vycm9ySGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRFODM3OEUwOUY4NUQ0RjAwQjg1
QUU0IC8qIEpTRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjkxMzksNyArMjkxMzIsNiBAQAog
CQkJCUZENzg2OEI5MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRjkwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzJFRDU1NTBDNkI5QkQzMDA5MjBCRkYgLyog
SlNFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzRjlCNzc0MEJBNUZEREMw
MDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRUNG
N0FEQzEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNEU4Mzc4NDA5Rjg1RDFDMDBCODVBRTQgLyogSlNFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qv
V2ViS2l0RE9NUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dl
YktpdERPTVByaXZhdGUuY3BwCmluZGV4IDU5Y2Y2OGMxMjkwYTdhYjAyNmUzMWUzMjYxYjA2OGE0
M2QzNjYwOTMuLmUzYjk3MTY2M2JjYWJmODdjNTQ1NTgzOTUzODEyOGU5MDBiMzhmMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRl
LmNwcApAQCAtOTMsOCArOTMsNiBAQCBXZWJLaXRET01Ob2RlKiB3cmFwKE5vZGUqIG5vZGUpCiAg
ICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcFRleHQoZG93bmNhc3Q8VGV4dD4obm9k
ZSkpKTsKICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKICAgICAgICAgcmV0dXJu
IFdFQktJVF9ET01fTk9ERSh3cmFwQ0RBVEFTZWN0aW9uKHN0YXRpY19jYXN0PENEQVRBU2VjdGlv
bio+KG5vZGUpKSk7Ci0gICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6Ci0gICAg
ICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcEVudGl0eVJlZmVyZW5jZShzdGF0aWNfY2Fz
dDxFbnRpdHlSZWZlcmVuY2UqPihub2RlKSkpOwogICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19J
TlNUUlVDVElPTl9OT0RFOgogICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24oc3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4obm9k
ZSkpKTsKICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IGFlYWMwODdkOWRjZmE1MTEwNzkzZDJmZjJj
OWFmYzIzZTEyYjgxNTIuLmIyN2E5ODFjN2QwOWZhNTVjYmUyOTY5YmI3M2IyMWQ0MTQ0ODg0NDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMzMs
NyArMzMsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1
bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbnRpdHkuaCIKLSNpbmNsdWRlICJFbnRpdHlSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSFRNTEF1ZGlvRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCkBAIC01MSw3ICs1MCw2IEBA
CiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnRGcmFnbWVudC5o
IgogI2luY2x1ZGUgIkpTRG9jdW1lbnRUeXBlLmgiCi0jaW5jbHVkZSAiSlNFbnRpdHlSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJKU0hUTUxFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCkBAIC0yMDks
OSArMjA3LDYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBjcmVhdGVXcmFwcGVySW5s
aW5lKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmoKICNlbmRpZgogICAgICAgICAgICAg
ICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBEb2N1bWVudEZy
YWdtZW50LCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5vZGU6OkVO
VElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dS
QVBQRVIoZ2xvYmFsT2JqZWN0LCBFbnRpdHlSZWZlcmVuY2UsIG5vZGUpOwotICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RP
TV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgTm9kZSwgbm9kZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTS5tbQppbmRleCA4ZTFmYmUxZmNkN2MzN2M0NmU5MGMzM2NjMDQ0MjM0YTFh
ZTQ4NzgyLi5lODM5NjVkYmMzNGYyMWMzY2UzMTE2MGQ0NzVhNmQyODJjYTNmYmY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQpAQCAtMzExLDggKzMxMSw2IEBAIENsYXNzIGtpdENs
YXNzKFdlYkNvcmU6Ok5vZGUqIGltcGwpCiAgICAgICAgICAgICByZXR1cm4gW0RPTVRleHQgY2xh
c3NdOwogICAgICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKICAg
ICAgICAgICAgIHJldHVybiBbRE9NQ0RBVEFTZWN0aW9uIGNsYXNzXTsKLSAgICAgICAgY2FzZSBX
ZWJDb3JlOjpOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6Ci0gICAgICAgICAgICByZXR1cm4g
W0RPTUVudGl0eVJlZmVyZW5jZSBjbGFzc107CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6
UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAgICAgICAgcmV0dXJuIFtET01Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24gY2xhc3NdOwogICAgICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNP
TU1FTlRfTk9ERToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAppbmRleCBhYzdiNjZmOTk3MDVkODk5ZWVjZTNjMjg5
NGY4OWUxZjgwOWQxNWY4Li45NmQ3ZWVkM2IwZmYyMTU1OWFkYzMzNWUyMGE0YzQ1OWRmMjFiZGIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0F0dHIuY3BwCkBAIC0xNDgsMTMgKzE0OCw3IEBAIFJlZjxOb2RlPiBBdHRyOjpj
bG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRp
b24pCiAvLyBET00gU2VjdGlvbiAxLjEuMQogYm9vbCBBdHRyOjpjaGlsZFR5cGVBbGxvd2VkKE5v
ZGVUeXBlIHR5cGUpIGNvbnN0CiB7Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2Ug
VEVYVF9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KKyAgICByZXR1cm4gdHlwZSA9PSBURVhUX05PREU7CiB9CiAKIHZvaWQgQXR0
cjo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9BdHRyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCmluZGV4IDEy
NGM2ZDdhMmFhMjg2ODMwZmNiYTI5NjI4ODg4YjcyMDIyOTkyODYuLmY2ZjM2MjA3NzE3YTM1YzJi
MjQzZmFhYTk2NWRjM2FiNzJmMjZiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9B
dHRyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaApAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgTXV0
YWJsZVN0eWxlUHJvcGVydGllczsKIAotLy8gQXR0ciBjYW4gaGF2ZSBUZXh0IGFuZCBFbnRpdHlS
ZWZlcmVuY2UgY2hpbGRyZW4KKy8vIEF0dHIgY2FuIGhhdmUgVGV4dCBjaGlsZHJlbgogLy8gdGhl
cmVmb3JlIGl0IGhhcyB0byBiZSBhIGZ1bGxibG93biBOb2RlLiBUaGUgcGxhbgogLy8gaXMgdG8g
ZHluYW1pY2FsbHkgYWxsb2NhdGUgYSB0ZXh0Y2hpbGQgYW5kIHN0b3JlIHRoZQogLy8gcmVzdWx0
aW5nIG5vZGV2YWx1ZSBpbiB0aGUgYXR0cmlidXRlIHVwb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmNwcAppbmRleCBjOTYzNGIwY2UxMDAzNGU5MmI1YzUxNmUxMzJkMGM0MzQzMTdhNTBk
Li4zZjRmZTBmODAzNzRjODM3MDA5OTBlZDRiNDVhNGE5ZDIxOTQ5YmI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0xODAsNyArMTgwLDYgQEAgc3RhdGljIGlubGluZSBF
eGNlcHRpb25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBO
b2RlJiBuZXcKIHsKICAgICAvLyBVc2UgY29tbW9uIGNhc2UgZmFzdCBwYXRoIGlmIHBvc3NpYmxl
LgogICAgIGlmICgobmV3Q2hpbGQuaXNFbGVtZW50Tm9kZSgpIHx8IG5ld0NoaWxkLmlzVGV4dE5v
ZGUoKSkgJiYgbmV3UGFyZW50LmlzRWxlbWVudE5vZGUoKSkgewotICAgICAgICBBU1NFUlQoIW5l
d1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKICAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNE
b2N1bWVudFR5cGVOb2RlKCkpOwogICAgICAgICBBU1NFUlQoaXNDaGlsZFR5cGVBbGxvd2VkKG5l
d1BhcmVudCwgbmV3Q2hpbGQpKTsKICAgICAgICAgaWYgKGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0
RWxlbWVudHMobmV3Q2hpbGQsIG5ld1BhcmVudCkpCkBAIC0xOTMsOCArMTkyLDYgQEAgc3RhdGlj
IGlubGluZSBFeGNlcHRpb25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSYgbmV3
UGFyZW50LCBOb2RlJiBuZXcKICAgICBpZiAobmV3Q2hpbGQuaXNQc2V1ZG9FbGVtZW50KCkpCiAg
ICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAKLSAgICBpZiAobmV3UGFyZW50
LmlzUmVhZE9ubHlOb2RlKCkpCi0gICAgICAgIHJldHVybiBOT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlI7CiAgICAgaWYgKGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxlbWVudHMobmV3Q2hpbGQs
IG5ld1BhcmVudCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAKQEAg
LTIwOSw3ICsyMDYsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRD
aGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogCiBzdGF0aWMgaW5saW5l
IGJvb2wgY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoQ29udGFpbmVyTm9kZSYg
bmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgQVNT
RVJUKCFuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSk7CiAgICAgQVNTRVJUKCFuZXdQYXJlbnQu
aXNEb2N1bWVudFR5cGVOb2RlKCkpOwogICAgIEFTU0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3
UGFyZW50LCBuZXdDaGlsZCkpOwogICAgIGlmIChuZXdDaGlsZC5jb250YWlucygmbmV3UGFyZW50
KSkgewpAQCAtNTIxLDEyICs1MTcsNiBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxk
KE5vZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgIGVjID0gMDsKIAotICAg
IC8vIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjogUmFpc2VkIGlmIHRoaXMgbm9kZSBpcyBy
ZWFkb25seS4KLSAgICBpZiAoaXNSZWFkT25seU5vZGUoKSkgewotICAgICAgICBlYyA9IE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQog
ICAgIC8vIE5PVF9GT1VORF9FUlI6IFJhaXNlZCBpZiBvbGRDaGlsZCBpcyBub3QgYSBjaGlsZCBv
ZiB0aGlzIG5vZGUuCiAgICAgaWYgKG9sZENoaWxkLnBhcmVudE5vZGUoKSAhPSB0aGlzKSB7CiAg
ICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDIx
NzkzYzIyZjA1M2ZiN2IwNjU2ODE3Y2ZjN2RhYjMxODRhZThiZDQuLjZjZjBlYWU0MDY0MGQwZjEx
ZDYxNDQ0NzkxMDQxNzY1NzQ4YWQyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtOTA5
LDE3ICs5MDksMTAgQEAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gRG9jdW1lbnQ6OmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihjb25zdCBTdHJpbmcKICAgICByZXR1cm4gUHJvY2Vz
c2luZ0luc3RydWN0aW9uOjpjcmVhdGUoKnRoaXMsIHRhcmdldCwgZGF0YSk7CiB9CiAKLVJlZlB0
cjxFbnRpdHlSZWZlcmVuY2U+IERvY3VtZW50OjpjcmVhdGVFbnRpdHlSZWZlcmVuY2UoY29uc3Qg
U3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxFbnRpdHlSZWZlcmVuY2U+
IERvY3VtZW50OjpjcmVhdGVFbnRpdHlSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7Ci0gICAgaWYgKCFpc1ZhbGlkTmFtZShuYW1lKSkgewotICAgICAgICBlYyA9
IElOVkFMSURfQ0hBUkFDVEVSX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
ICAgIGlmIChpc0hUTUxEb2N1bWVudCgpKSB7Ci0gICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9F
UlI7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gRW50aXR5UmVm
ZXJlbmNlOjpjcmVhdGUoKnRoaXMsIG5hbWUpOworICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7
CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZjxUZXh0PiBEb2N1bWVudDo6Y3JlYXRlRWRp
dGluZ1RleHROb2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTk0NCw3ICs5MzcsNiBAQCBSZWZQ
dHI8Tm9kZT4gRG9jdW1lbnQ6OmltcG9ydE5vZGUoTm9kZSogaW1wb3J0ZWROb2RlLCBib29sIGRl
ZXAsIEV4Y2VwdGlvbkNvZGUmCiAgICAgY2FzZSBFTEVNRU5UX05PREU6CiAgICAgY2FzZSBURVhU
X05PREU6CiAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgY2FzZSBFTlRJVFlfUkVG
RVJFTkNFX05PREU6CiAgICAgY2FzZSBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAg
Y2FzZSBDT01NRU5UX05PREU6CiAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgpAQCAt
OTc0LDExICs5NjYsNiBAQCBSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmFkb3B0Tm9kZShQYXNzUmVm
UHRyPE5vZGU+IHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAotICAgIGlmIChzb3VyY2UtPmlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAg
ICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLQogICAgIEV2ZW50UXVldWVTY29wZSBzY29wZTsKIAogICAgIHN3aXRjaCAo
c291cmNlLT5ub2RlVHlwZSgpKSB7CkBAIC0xNzEwLDUyICsxNjk3LDUyIEBAIFJlZjxSYW5nZT4g
RG9jdW1lbnQ6OmNyZWF0ZVJhbmdlKCkKICAgICByZXR1cm4gUmFuZ2U6OmNyZWF0ZSgqdGhpcyk7
CiB9CiAKLVJlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3Io
Tm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4m
JiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYgZWMp
CitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUq
IHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmls
dGVyLCBib29sLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gY3JlYXRlTm9kZUl0
ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBlYyk7Cit9CisKK1Jl
ZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9v
dCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghcm9vdCkgewogICAgICAgICBlYyA9IFR5
cGVFcnJvcjsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIHJldHVybiBOb2Rl
SXRlcmF0b3I6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhw
YW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgcmV0dXJuIE5vZGVJdGVyYXRvcjo6Y3JlYXRlKHJv
b3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVy
YXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9y
KE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCB3aGF0VG9TaG93LCBXVEY6
Om1vdmUoZmlsdGVyKSwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9y
KHJvb3QsIHdoYXRUb1Nob3csIG51bGxwdHIsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRv
cj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9j
dW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKLSAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIG51bGxw
dHIsIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCAweEZG
RkZGRkZGLCBudWxscHRyLCBlYyk7CiB9CiAKLVJlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50
OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQ
dHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5z
aWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2ws
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9v
dCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlVHJl
ZVdhbGtlcihyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZWMpOwogfQogCi1S
ZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJv
b2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8VHJl
ZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIGlmICghcm9vdCkgewogICAgICAgICBlYyA9IFR5cGVFcnJvcjsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIHJldHVybiBUcmVlV2Fsa2VyOjpjcmVh
dGUocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGV4cGFuZEVudGl0eVJlZmVy
ZW5jZXMpOwotfQotCi1SZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxr
ZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRl
cj4mJiBmaWx0ZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIHJldHVybiBjcmVhdGVUcmVl
V2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBmYWxzZSwgZWMpOwor
ICAgIHJldHVybiBUcmVlV2Fsa2VyOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3Zl
KGZpbHRlcikpOwogfQogCiBSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVX
YWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCB3aGF0VG9TaG93LCBu
dWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdo
YXRUb1Nob3csIG51bGxwdHIsIGVjKTsKIH0KIAogUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50
OjpjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIDB4RkZGRkZGRkYsIG51bGxwdHIsIGZhbHNl
LCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgMHhGRkZGRkZGRiwgbnVs
bHB0ciwgZWMpOwogfQogCiB2b2lkIERvY3VtZW50OjpzY2hlZHVsZUZvcmNlZFN0eWxlUmVjYWxj
KCkKQEAgLTMzNDgsNyArMzMzNSw2IEBAIGJvb2wgRG9jdW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQo
Tm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKICAgICBj
YXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgY2FzZSBET0NVTUVOVF9OT0RFOgotICAg
IGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgVEVYVF9OT0RFOgogICAgIGNh
c2UgWFBBVEhfTkFNRVNQQUNFX05PREU6CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMzNzYs
NyArMzM2Miw2IEBAIGJvb2wgRG9jdW1lbnQ6OmNhbkFjY2VwdENoaWxkKGNvbnN0IE5vZGUmIG5l
d0NoaWxkLCBjb25zdCBOb2RlKiByZWZDaGlsZCwgQWNjZXB0CiAgICAgY2FzZSBBVFRSSUJVVEVf
Tk9ERToKICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX05P
REU6Ci0gICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBURVhUX05PREU6
CiAgICAgY2FzZSBYUEFUSF9OQU1FU1BBQ0VfTk9ERToKICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAppbmRleCA3NGNlYWE5NmJjOTJmNDc4MTdjZWJiNWYzY2Y5MzkwYTE5
YTc3ZDY5Li4yY2FhOGIwMGNiMjRkOTI1ZDExOTg4MTY5OWQ2ODA3ODdjOTk2YTM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaApAQCAtNTM1LDEyICs1MzUsMTIgQEAgcHVibGljOgogCiAgICAgV0VCQ09S
RV9FWFBPUlQgUmVmPFJhbmdlPiBjcmVhdGVSYW5nZSgpOwogCi0gICAgUmVmUHRyPE5vZGVJdGVy
YXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRv
U2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywg
RXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxOb2RlSXRlcmF0b3I+IGNyZWF0ZU5vZGVJdGVy
YXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmls
dGVyPiYmLCBib29sLCBFeGNlcHRpb25Db2RlJik7IC8vIEZvciBPYmpDIGJpbmRpbmdzLgogICAg
IFJlZlB0cjxOb2RlSXRlcmF0b3I+IGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNp
Z25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0
cjxOb2RlSXRlcmF0b3I+IGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCBFeGNlcHRpb25D
b2RlJik7CiAKLSAgICBSZWZQdHI8VHJlZVdhbGtlcj4gY3JlYXRlVHJlZVdhbGtlcihOb2RlKiBy
b290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBib29s
IGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8VHJl
ZVdhbGtlcj4gY3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRU
b1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBib29sLCBFeGNlcHRpb25Db2RlJik7IC8vIEZv
ciBPYmpDIGJpbmRpbmdzLgogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2Vy
KE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+
JiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8VHJlZVdhbGtlcj4gY3JlYXRlVHJlZVdh
bGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBSZWZQdHI8VHJlZVdhbGtlcj4gY3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCBF
eGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCA4MWIxMGFlNjA5OTUy
ZWY0MDY1ODRkMDc3NjU2NjRlNjcwMTFkNTE0Li5iYTllYzMzNjAwMjVmYTFiMDcyMmQzZmNlZGQ2
ZjljNTJmMWE0ZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTM5LDcgKzM5LDEwIEBA
CiAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgTmV3T2JqZWN0LCBSYWlzZXNFeGNl
cHRpb25dIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBjcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24o
W0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgdGFyZ2V0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgZGF0
YSk7CiAgICAgW05ld09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBBdHRyIGNyZWF0ZUF0dHJpYnV0
ZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKLSAgICBbTmV3
T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEVudGl0eVJlZmVyZW5jZSBjcmVhdGVFbnRpdHlSZWZl
cmVuY2UoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSk7CisKKyNp
ZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwor
ICAgIFtSYWlzZXNFeGNlcHRpb25dIEVudGl0eVJlZmVyZW5jZSBjcmVhdGVFbnRpdHlSZWZlcmVu
Y2UoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSk7CisjZW5kaWYK
IAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElW
RV9DCiAgICAgW0ltcGxlbWVudGVkQXM9Z2V0RWxlbWVudHNCeVRhZ05hbWVGb3JPYmpDXSBOb2Rl
TGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERP
TVN0cmluZyB0YWduYW1lKTsKQEAgLTkyLDE0ICs5NSwyMyBAQAogCiAgICAgLy8gRE9NIExldmVs
IDIgVHJhbnZlcnNhbCBhbmQgUmFuZ2UgKERvY3VtZW50VHJhdmVyc2FsIGludGVyZmFjZSkKIAot
ICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbiwgTmV3T2Jq
ZWN0XSBOb2RlSXRlcmF0b3IgY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9vdCwKKyNpZiBkZWZp
bmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQworICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gTm9kZUl0ZXJhdG9y
IGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlIHJvb3QsCiAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCiAgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0
ZXI/IGZpbHRlciwKICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb24s
IE5ld09iamVjdF0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwKKyAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb25dIFRyZWVXYWxrZXIg
Y3JlYXRlVHJlZVdhbGtlcihOb2RlIHJvb3QsCiAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCiAgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0ZXI/
IGZpbHRlciwKICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KTsKKyNlbHNlCisgICAgW1JhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBOb2RlSXRlcmF0b3Ig
Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9vdCwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKKyAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRl
cj8gZmlsdGVyKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIFRyZWVXYWxrZXIg
Y3JlYXRlVHJlZVdhbGtlcihOb2RlIHJvb3QsCisgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCisgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0ZXI/
IGZpbHRlcik7CisjZW5kaWYKIAogICAgIC8vIERPTSBMZXZlbCAyIEFic3RyYWN0IFZpZXdzIChE
b2N1bWVudFZpZXcgaW50ZXJmYWNlKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHAKaW5kZXggZjliMzhhMGJkMjhlOGUzYzYwOTM0YWZmMWE2MDA1OTI3MDkwM2ZlYy4uYTY3
MDAyYzRiZjk4NzQ0YTI5NTNmNDllMjZlNjFiYTBjYWQzNzFhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtNjAsNyArNjAsNiBAQCBib29sIERvY3VtZW50RnJh
Z21lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICAgICAgY2Fz
ZSBDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgVEVYVF9OT0RFOgogICAgICAgICBjYXNlIENE
QVRBX1NFQ1RJT05fTk9ERToKLSAgICAgICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4YmUzMzc3YzgxMDAzMmZhYjhi
ZTdhYjQzNmIyZDI1NDg5ZTczMGYxLi5mNTMzMWI5MGI1YjI3Y2U5NWJmN2U1NDJiMzk1YTM2OTZj
ZGU5NWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNzUxLDcgKzE3NTEsNiBAQCBib29s
IEVsZW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICBjYXNl
IENPTU1FTlRfTk9ERToKICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAg
ICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9E
RToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCmluZGV4IDdlOTFhNDYyZGE4MjA5ZDky
MmM0NWRjODRjNDFhMDg1NWFkNmJlMWEuLmU1ODI0ZjEwOGJiNmY1NDNiNWEwNzY3YWZlMWZhODRh
MmQ0ODFkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCkBAIC0yNSwz
MCArMjUsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBFbnRpdHlSZWZlcmVu
Y2U6OkVudGl0eVJlZmVyZW5jZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZW50
aXR5TmFtZSkKK2lubGluZSBFbnRpdHlSZWZlcmVuY2U6OkVudGl0eVJlZmVyZW5jZShEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYpCiAgICAgOiBDb250YWluZXJOb2RlKGRvY3VtZW50
KQotICAgICwgbV9lbnRpdHlOYW1lKGVudGl0eU5hbWUpCiB7CiB9CiAKLVJlZjxFbnRpdHlSZWZl
cmVuY2U+IEVudGl0eVJlZmVyZW5jZTo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiBlbnRpdHlOYW1lKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVudGl0eVJl
ZmVyZW5jZShkb2N1bWVudCwgZW50aXR5TmFtZSkpOwotfQotCi1TdHJpbmcgRW50aXR5UmVmZXJl
bmNlOjpub2RlTmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZW50aXR5TmFtZTsKLX0KLQot
Tm9kZTo6Tm9kZVR5cGUgRW50aXR5UmVmZXJlbmNlOjpub2RlVHlwZSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIEVOVElUWV9SRUZFUkVOQ0VfTk9ERTsKLX0KLQotUmVmPE5vZGU+IEVudGl0eVJlZmVy
ZW5jZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5n
T3BlcmF0aW9uKQotewotICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIG1fZW50aXR5
TmFtZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRW50aXR5UmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNl
LmgKaW5kZXggODZkZmViMzk4MjViMzQ1MGU3NTM1OTI1MDY4NTExMGIzYWYwY2E4Zi4uMThjMmVj
MWFmY2U1NzBlODBlODY1YTA4NDViYWJkODg2NmY5NjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRp
dHlSZWZlcmVuY2UuaApAQCAtMjYsMTggKzI2LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBFbnRpdHlSZWZlcmVuY2UgZmluYWwgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxFbnRpdHlSZWZlcmVuY2U+IGNyZWF0ZShEb2N1bWVudCYs
IGNvbnN0IFN0cmluZyYgZW50aXR5TmFtZSk7Ci0KK2NsYXNzIEVudGl0eVJlZmVyZW5jZSA6IHB1
YmxpYyBDb250YWluZXJOb2RlIHsKIHByaXZhdGU6CiAgICAgRW50aXR5UmVmZXJlbmNlKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKTsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG5v
ZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgp
IGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFs
KERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7Ci0KLSAgICBTdHJpbmcgbV9l
bnRpdHlOYW1lOwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVm
ZXJlbmNlLmlkbAppbmRleCA2ZDA1MzVmOWJjMWRhYTc5MTc4MzFlZmRiZTZhYmQwN2FlOWI3ZGJh
Li4yNzMxZDdhNjYwOTYzNWJkNmMxNmU2ZDJjNjZlNjA3ZWJiOGM0Y2IwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbApAQCAtMTcsOCArMTcsMTIgQEAKICAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElW
RV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQworCiBbCisgICAgTm9JbnRlcmZhY2VPYmplY3Qs
CiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKIF0gaW50ZXJmYWNlIEVudGl0eVJlZmVyZW5jZSA6
IE5vZGUgewogfTsKIAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggNDM2MmQ2NTZkYzQ3ZmQ2
NDMzNWI0Njg2MTRiZTczNjU4ODEzMDJiYS4uZGVmMjRjZTY3MDk1NTY2NGJjYmExMzUwNDcxNmZj
NDE3Y2FmNjMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTAzLDcgKzEwMyw2IEBAIHZvaWQgTm9k
ZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgIHNpemVfdCB0ZXh0Tm9kZXMgPSAwOwogICAgIHNpemVf
dCBjZGF0YU5vZGVzID0gMDsKICAgICBzaXplX3QgY29tbWVudE5vZGVzID0gMDsKLSAgICBzaXpl
X3QgZW50aXR5UmVmZXJlbmNlTm9kZXMgPSAwOwogICAgIHNpemVfdCBlbnRpdHlOb2RlcyA9IDA7
CiAgICAgc2l6ZV90IHBpTm9kZXMgPSAwOwogICAgIHNpemVfdCBkb2N1bWVudE5vZGVzID0gMDsK
QEAgLTE2OCwxMCArMTY3LDYgQEAgdm9pZCBOb2RlOjpkdW1wU3RhdGlzdGljcygpCiAgICAgICAg
ICAgICAgICAgKytjb21tZW50Tm9kZXM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERTogewotICAgICAg
ICAgICAgICAgICsrZW50aXR5UmVmZXJlbmNlTm9kZXM7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlIEVOVElUWV9OT0RFOiB7CiAgICAgICAg
ICAgICAgICAgKytlbnRpdHlOb2RlczsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIxMSw3
ICsyMDYsNiBAQCB2b2lkIE5vZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICBwcmludGYoIiAgTnVt
YmVyIG9mIFRleHQgbm9kZXM6ICV6dVxuIiwgdGV4dE5vZGVzKTsKICAgICBwcmludGYoIiAgTnVt
YmVyIG9mIENEQVRBU2VjdGlvbiBub2RlczogJXp1XG4iLCBjZGF0YU5vZGVzKTsKICAgICBwcmlu
dGYoIiAgTnVtYmVyIG9mIENvbW1lbnQgbm9kZXM6ICV6dVxuIiwgY29tbWVudE5vZGVzKTsKLSAg
ICBwcmludGYoIiAgTnVtYmVyIG9mIEVudGl0eVJlZmVyZW5jZSBub2RlczogJXp1XG4iLCBlbnRp
dHlSZWZlcmVuY2VOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBFbnRpdHkgbm9kZXM6
ICV6dVxuIiwgZW50aXR5Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgUHJvY2Vzc2lu
Z0luc3RydWN0aW9uIG5vZGVzOiAlenVcbiIsIHBpTm9kZXMpOwogICAgIHByaW50ZigiICBOdW1i
ZXIgb2YgRG9jdW1lbnQgbm9kZXM6ICV6dVxuIiwgZG9jdW1lbnROb2Rlcyk7CkBAIC0zODQsMTQg
KzM3OCw4IEBAIFN0cmluZyBOb2RlOjpub2RlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAotdm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiAvKm5vZGVW
YWx1ZSovLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgTm9kZTo6c2V0Tm9kZVZhbHVlKGNvbnN0
IFN0cmluZyYgLypub2RlVmFsdWUqLywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgLy8gTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgd2hlbiB0aGUgbm9kZSBpcyByZWFkb25seQot
ICAgIGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gQnkgZGVmYXVs
dCwgc2V0dGluZyBub2RlVmFsdWUgaGFzIG5vIGVmZmVjdC4KIH0KIApAQCAtODkwLDExICs4Nzgs
NiBAQCB2b2lkIE5vZGU6OmNoZWNrU2V0UHJlZml4KGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChp
c1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gRklYTUU6IFJhaXNlIE5BTUVT
UEFDRV9FUlIgaWYgcHJlZml4IGlzIG1hbGZvcm1lZCBwZXIgdGhlIE5hbWVzcGFjZXMgaW4gWE1M
IHNwZWNpZmljYXRpb24uCiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5vZGVOYW1lc3BhY2VV
UkkgPSBuYW1lc3BhY2VVUkkoKTsKQEAgLTE0MjIsNyArMTQwNSw2IEBAIHN0YXRpYyB2b2lkIGFw
cGVuZFRleHRDb250ZW50KGNvbnN0IE5vZGUqIG5vZGUsIGJvb2wgY29udmVydEJSc1RvTmV3bGlu
ZXMsIGJvb2wmCiAgICAgICAgIH0KICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2FzZSBOb2Rl
OjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGlzTnVsbFN0
cmluZyA9IGZhbHNlOwogICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbm9kZS0+Zmlyc3RDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewpAQCAtMTQ1OCw3ICsx
NDQwLDYgQEAgdm9pZCBOb2RlOjpzZXRUZXh0Q29udGVudChjb25zdCBTdHJpbmcmIHRleHQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNlIEVMRU1F
TlRfTk9ERToKICAgICAgICAgY2FzZSBBVFRSSUJVVEVfTk9ERToKLSAgICAgICAgY2FzZSBFTlRJ
VFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgRE9DVU1FTlRfRlJBR01FTlRfTk9ERTog
ewogICAgICAgICAgICAgUmVmPENvbnRhaW5lck5vZGU+IGNvbnRhaW5lcihkb3duY2FzdDxDb250
YWluZXJOb2RlPigqdGhpcykpOwogICAgICAgICAgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBt
dXRhdGlvbihjb250YWluZXIpOwpAQCAtMTQ3OCw3ICsxNDU5LDYgQEAgdm9pZCBOb2RlOjpzZXRU
ZXh0Q29udGVudChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiBFbGVt
ZW50KiBOb2RlOjphbmNlc3RvckVsZW1lbnQoKSBjb25zdAogewotICAgIC8vIEluIHRoZW9yeSwg
dGhlcmUgY2FuIGJlIEVudGl0eVJlZmVyZW5jZSBub2RlcyBiZXR3ZWVuIGVsZW1lbnRzLCBidXQg
dGhpcyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZC4KICAgICBmb3IgKENvbnRhaW5lck5vZGUq
IGFuY2VzdG9yID0gcGFyZW50Tm9kZSgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+
cGFyZW50Tm9kZSgpKSB7CiAgICAgICAgIGlmIChpczxFbGVtZW50PigqYW5jZXN0b3IpKQogICAg
ICAgICAgICAgcmV0dXJuIGRvd25jYXN0PEVsZW1lbnQ+KGFuY2VzdG9yKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmlu
ZGV4IDA0ZTM4ZDI1YjQzYjQwZmJkNWIzNjRjZjQzM2U3N2MzYzEwNzM1YzQuLmEyZmM0Mzg4OTQw
ZTIyY2Y3NWJmNTk1Yjc0ODlkZDgzOTJkNTAxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMTI1LDcgKzEy
NSw2IEBAIHB1YmxpYzoKICAgICAgICAgQVRUUklCVVRFX05PREUgPSAyLAogICAgICAgICBURVhU
X05PREUgPSAzLAogICAgICAgICBDREFUQV9TRUNUSU9OX05PREUgPSA0LAotICAgICAgICBFTlRJ
VFlfUkVGRVJFTkNFX05PREUgPSA1LAogICAgICAgICBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05P
REUgPSA3LAogICAgICAgICBDT01NRU5UX05PREUgPSA4LAogICAgICAgICBET0NVTUVOVF9OT0RF
ID0gOSwKQEAgLTEzNCw2ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFhQQVRIX05BTUVTUEFD
RV9OT0RFID0gMTMsCiAgICAgfTsKICAgICBlbnVtIERlcHJlY2F0ZWROb2RlVHlwZSB7CisgICAg
ICAgIEVOVElUWV9SRUZFUkVOQ0VfTk9ERSA9IDUsCiAgICAgICAgIEVOVElUWV9OT0RFID0gNiwK
ICAgICAgICAgTk9UQVRJT05fTk9ERSA9IDEyLAogICAgIH07CkBAIC00MTcsNyArNDE3LDYgQEAg
cHVibGljOgogICAgIGJvb2wgaXNJblNoYWRvd1RyZWUoKSBjb25zdCB7IHJldHVybiBnZXRGbGFn
KElzSW5TaGFkb3dUcmVlRmxhZyk7IH0KICAgICBib29sIGlzSW5UcmVlU2NvcGUoKSBjb25zdCB7
IHJldHVybiBnZXRGbGFnKHN0YXRpY19jYXN0PE5vZGVGbGFncz4oSW5Eb2N1bWVudEZsYWcgfCBJ
c0luU2hhZG93VHJlZUZsYWcpKTsgfQogCi0gICAgYm9vbCBpc1JlYWRPbmx5Tm9kZSgpIGNvbnN0
IHsgcmV0dXJuIG5vZGVUeXBlKCkgPT0gRU5USVRZX1JFRkVSRU5DRV9OT0RFOyB9CiAgICAgYm9v
bCBpc0RvY3VtZW50VHlwZU5vZGUoKSBjb25zdCB7IHJldHVybiBub2RlVHlwZSgpID09IERPQ1VN
RU5UX1RZUEVfTk9ERTsgfQogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVU
eXBlKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHVuc2lnbmVkIGNvdW50Q2hpbGROb2Rl
cygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAppbmRleCA0OGEwYTE5MmE3
YmVlMGNmZjIwOWQ1ZWE0ZDg5YzljMzFhMDRjNzA5Li5kYTlkMDIzYjI1ZThmOWYyYmY1N2FjODgx
MDM4ZDcyNWQ1ZTFjNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcApAQCAtNzYs
OCArNzYsOCBAQCBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVUb1ByZXZpb3Vz
KE5vZGUqIHJvb3QpCiAgICAgcmV0dXJuIG5vZGU7CiB9CiAKLU5vZGVJdGVyYXRvcjo6Tm9kZUl0
ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5j
ZXMpCi0gICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1v
dmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKK05vZGVJdGVyYXRvcjo6Tm9kZUl0
ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyKQorICAgIDogTm9kZUl0ZXJhdG9yQmFzZShy
b290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpCiAgICAgLCBtX3JlZmVyZW5j
ZU5vZGUocm9vdCgpLCB0cnVlKQogewogICAgIHJvb3QoKS0+ZG9jdW1lbnQoKS5hdHRhY2hOb2Rl
SXRlcmF0b3IodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJh
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKaW5kZXggOTcxOTI3NGEz
ZGExYjk3NTQwNmFhNzFjYzVlOWVhZTVmM2M3ZDMzNS4uNGYxNTA3ZGUwM2FjMzAzZTVmMTgwYjMz
MTEyNjgwNzRjNjk4MDg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVy
YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaApAQCAtMzcsOSAr
MzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBOb2RlSXRlcmF0b3IgOiBw
dWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxOb2RlSXRlcmF0b3I+LCBw
dWJsaWMgTm9kZUl0ZXJhdG9yQmFzZSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVm
PE5vZGVJdGVyYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFu
ZEVudGl0eVJlZmVyZW5jZXMpCisgICAgICAgIHN0YXRpYyBSZWY8Tm9kZUl0ZXJhdG9yPiBjcmVh
dGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBS
ZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE5vZGVJdGVyYXRvcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjpt
b3ZlKGZpbHRlciksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpKTsKKyAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE5vZGVJdGVyYXRvcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjpt
b3ZlKGZpbHRlcikpKTsKICAgICAgICAgfQogICAgICAgICB+Tm9kZUl0ZXJhdG9yKCk7CiAKQEAg
LTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIG5vZGVXaWxs
QmVSZW1vdmVkKE5vZGUmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIE5vZGVJdGVyYXRvcihQ
YXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmls
dGVyPiYmLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworICAgICAgICBOb2RlSXRlcmF0
b3IoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9k
ZUZpbHRlcj4mJik7CiAKICAgICAgICAgc3RydWN0IE5vZGVQb2ludGVyIHsKICAgICAgICAgICAg
IFJlZlB0cjxOb2RlPiBub2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJ
dGVyYXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbAppbmRleCAx
MjAyNWRlNmI4YjQ5NDczZWZkN2Y3ODQwMTFmNDFmNzYxMzA3YjY3Li4yMzExMmQ5OTQzZjU5MzM3
YWZmMTVkYWNjN2MxZWU1YjdhNWY3OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZUl0ZXJhdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlk
bApAQCAtMjYsNyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJvb3Q7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdzsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7CisjaWYgZGVmaW5lZChMQU5HVUFHRV9P
QkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzOworI2VuZGlmCiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIE5vZGUgcmVmZXJlbmNlTm9kZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBwb2ludGVyQmVmb3JlUmVmZXJlbmNlTm9kZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXgg
NTJlMmYxOTMyMTY3YWZjODVhNTE5ZGU1MDlmZDUxYmFmMTYwOTQ5My4uOGMxZTJiMGQ4MjQwN2Nk
ZTIzMDZhZmYzNmIxNWFhNDkxNzRhMzRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC01NzIsNyAr
NTcyLDYgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsZW5ndGhPZkNvbnRlbnRzSW5Ob2RlKE5v
ZGUqIG5vZGUpCiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDaGFyYWN0ZXJEYXRhPigqbm9kZSku
bGVuZ3RoKCk7CiAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpB
VFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAg
ICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBF
X05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgpAQCAtNzMzLDcg
KzczMiw2IEBAIFJlZlB0cjxOb2RlPiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNl
dHMoQWN0aW9uVHlwZSBhY3Rpb24sIFBhc3NSZWZQdHI8CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTm9kZTo6RUxFTUVOVF9OT0RFOgogICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6Ci0g
ICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgogICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKQEAgLTg1NiwxMyArODU0LDYgQEAgdm9pZCBS
YW5nZTo6aW5zZXJ0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHBycE5ld05vZGUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVyIG9mIGVpdGhlciBi
b3VuZGFyeS1wb2ludCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9ubHkuCi0gICAgaWYg
KGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIEhJRVJBUkNIWV9S
RVFVRVNUX0VSUjogUmFpc2VkIGlmIHRoZSBjb250YWluZXIgb2YgdGhlIHN0YXJ0IG9mIHRoZSBS
YW5nZSBpcyBvZiBhIHR5cGUgdGhhdAogICAgIC8vIGRvZXMgbm90IGFsbG93IGNoaWxkcmVuIG9m
IHRoZSB0eXBlIG9mIG5ld05vZGUgb3IgaWYgbmV3Tm9kZSBpcyBhbiBhbmNlc3RvciBvZiB0aGUg
Y29udGFpbmVyLgogCkBAIC0xMDIyLDcgKzEwMTMsNiBAQCBOb2RlKiBSYW5nZTo6Y2hlY2tOb2Rl
V09mZnNldChOb2RlKiBuLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAg
ICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5v
ZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAg
ICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2Rl
OjpYUEFUSF9OQU1FU1BBQ0VfTk9ERTogewogICAgICAgICAgICAgaWYgKCFvZmZzZXQpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMDUyLDcgKzEwNDIsNiBAQCB2b2lkIFJh
bmdlOjpjaGVja05vZGVCQShOb2RlKiBuLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAg
ICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
VFlQRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2Fz
ZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VT
U0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAg
ICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEwNzIsNyArMTA2MSw2
IEBAIHZvaWQgUmFuZ2U6OmNoZWNrTm9kZUJBKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBj
b25zdAogICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2Rl
OjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgot
ICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBO
b2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVY
VF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTE0
OSw3ICsxMTM3LDYgQEAgdm9pZCBSYW5nZTo6c2VsZWN0Tm9kZShOb2RlKiByZWZOb2RlLCBFeGNl
cHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRf
Tk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgICAg
IGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlf
UkVGRVJFTkNFX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJV
Q1RJT05fTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAg
ICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTExNjUsNyArMTE1Miw2IEBA
IHZvaWQgUmFuZ2U6OnNlbGVjdE5vZGUoTm9kZSogcmVmTm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRP
Q1VNRU5UX1RZUEVfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAg
ICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6
OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05P
REU6CiAgICAgICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMjA0LDcg
KzExOTAsNiBAQCB2b2lkIFJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMoTm9kZSogcmVmTm9kZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdN
RU5UX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgICAg
ICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgICAgIGNhc2UgTm9kZTo6RU5U
SVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lO
U1RSVUNUSU9OX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAg
ICAgICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMjQzLDIwICsxMjI4
LDEyIEBAIHZvaWQgUmFuZ2U6OnN1cnJvdW5kQ29udGVudHMoUGFzc1JlZlB0cjxOb2RlPiBwYXNz
TmV3UGFyZW50LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9T
RUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBj
YXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJF
TkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RF
OgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpYUEFU
SF9OQU1FU1BBQ0VfTk9ERToKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIC8vIE5P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUjogUmFpc2VkIGlmIGFuIGFuY2VzdG9yIGNvbnRhaW5l
ciBvZiBlaXRoZXIgYm91bmRhcnktcG9pbnQgb2YKLSAgICAvLyB0aGUgUmFuZ2UgaXMgcmVhZC1v
bmx5LgotICAgIGlmIChjb250YWluZWRCeVJlYWRPbmx5KCkpIHsKLSAgICAgICAgZWMgPSBOT19N
T0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAv
LyBSYWlzZSBhIEhJRVJBUkNIWV9SRVFVRVNUX0VSUiBpZiBzdGFydENvbnRhaW5lcigpIGRvZXNu
J3QgYWNjZXB0IGNoaWxkcmVuIGxpa2UgbmV3UGFyZW50LgogICAgIE5vZGUqIHBhcmVudE9mTmV3
UGFyZW50ID0gJnN0YXJ0Q29udGFpbmVyKCk7CiAKQEAgLTEzMzAsMzYgKzEzMDcsMTYgQEAgdm9p
ZCBSYW5nZTo6Y2hlY2tEZWxldGVFeHRyYWN0KEFjdGlvblR5cGUgYWN0aW9uLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICBpZiAoIWNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKCkpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGlmIChhY3Rpb24gIT0gRXh0cmFjdCkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgTm9kZSogcGFzdExhc3QgPSBwYXN0TGFzdE5vZGUoKTsKICAgICBmb3IgKE5vZGUqIG4gPSBm
aXJzdE5vZGUoKTsgbiAhPSBwYXN0TGFzdDsgbiA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm4pKSB7
Ci0gICAgICAgIGlmIChuLT5pc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgICAgICBlYyA9IE5P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIGlmIChhY3Rpb24gPT0gRXh0cmFjdCAmJiBuLT5ub2RlVHlwZSgpID09IE5v
ZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERSkgeworICAgICAgICBpZiAobi0+aXNEb2N1bWVudFR5cGVO
b2RlKCkpIHsKICAgICAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotCi0gICAgaWYgKGNvbnRhaW5lZEJ5UmVh
ZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQotYm9vbCBSYW5nZTo6Y29udGFpbmVkQnlSZWFkT25s
eSgpIGNvbnN0Ci17Ci0gICAgZm9yIChOb2RlKiBuID0gJnN0YXJ0Q29udGFpbmVyKCk7IG47IG4g
PSBuLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkpCi0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgZm9yIChOb2RlKiBuID0gJmVuZENv
bnRhaW5lcigpOyBuOyBuID0gbi0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgIGlmIChuLT5pc1Jl
YWRPbmx5Tm9kZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVy
biBmYWxzZTsKIH0KIAogTm9kZSogUmFuZ2U6OmZpcnN0Tm9kZSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5o
CmluZGV4IGM4ZjI5OTNhZGQwZDE1OWZhYzUyYmRhYzdmMWNjOTMwYmRlNWY2ZWUuLjRjMTExNjIw
YTcyZDcxNzg1ODI1NWNkOWUwMzUxZTM0ZWViZTI0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC0xNjEs
NyArMTYxLDYgQEAgcHJpdmF0ZToKIAogICAgIE5vZGUqIGNoZWNrTm9kZVdPZmZzZXQoTm9kZSos
IGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICB2b2lkIGNoZWNrTm9kZUJB
KE5vZGUqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7Ci0gICAgYm9vbCBjb250YWluZWRCeVJlYWRP
bmx5KCkgY29uc3Q7CiAKICAgICBlbnVtIEFjdGlvblR5cGUgeyBEZWxldGUsIEV4dHJhY3QsIENs
b25lIH07CiAgICAgdm9pZCBjaGVja0RlbGV0ZUV4dHJhY3QoQWN0aW9uVHlwZSwgRXhjZXB0aW9u
Q29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IGI3ZmQ5NzI3ZmZlN2M5ZjUw
ZjYyODg5YTUwYjgyZjcxMDRmYmZiMzkuLmI0ZGZlMTA2YjNhYzE2OTQ2Mzk5NDZiODZmNTE5NmEy
MTcyZDBhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTEwMCw3ICsxMDAsNiBA
QCBib29sIFNoYWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QK
ICAgICBjYXNlIENPTU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIENE
QVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJhdmVyc2FsLmNwcAppbmRleCA3NGE5MjhmN2NjMDI5YjZmMzNjZmRjZTUxYTFmMmEz
YTMxZmVkYjUyLi4zYzRhOTU1YjExMTA2Y2RhMjIyODVhOWY1MjcxNzA3YjFkOWM3N2YxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJhdmVyc2FsLmNwcApAQCAtMzAsMTggKzMwLDE1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRy
PE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmls
dGVyPiYmIG5vZGVGaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKK05vZGVJdGVy
YXRvckJhc2U6Ok5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5z
aWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBub2RlRmlsdGVyKQog
ICAgIDogbV9yb290KHJvb3ROb2RlKQogICAgICwgbV93aGF0VG9TaG93KHdoYXRUb1Nob3cpCiAg
ICAgLCBtX2ZpbHRlcihXVEY6Om1vdmUobm9kZUZpbHRlcikpCi0gICAgLCBtX2V4cGFuZEVudGl0
eVJlZmVyZW5jZXMoZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKIHsKIH0KIAogc2hvcnQgTm9kZUl0
ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShOb2RlKiBub2RlKSBjb25zdAogewotICAgIC8vIEZJWE1F
OiBUbyBoYW5kbGUgWE1MIHByb3Blcmx5IHdlIHdvdWxkIGhhdmUgdG8gY2hlY2sgbV9leHBhbmRF
bnRpdHlSZWZlcmVuY2VzLgotCiAgICAgLy8gVGhlIGJpdCB0d2lkZGxpbmcgaGVyZSBpcyBkb25l
IHRvIG1hcCBET00gbm9kZSB0eXBlcywgd2hpY2ggYXJlIGdpdmVuIGFzIGludGVnZXJzIGZyb20K
ICAgICAvLyAxIHRocm91Z2ggMTQsIHRvIHdoYXRUb1Nob3cgYml0IG1hc2tzLgogICAgIGlmICgh
KCgoMSA8PCAobm9kZS0+bm9kZVR5cGUoKSAtIDEpKSAmIG1fd2hhdFRvU2hvdykpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RyYXZlcnNhbC5oCmluZGV4IGVkNmU4ZGRiZDBjMjY2MTVlMzM3YTJlNDJjOWI5ZDkzNThmOGZk
ZGEuLmZmYmQ1NDliMWRlODQ4NjA0M2VlNGQwYjQyMGE3ZGRjYTc0OGZhN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJhdmVyc2FsLmgKQEAgLTM4LDE3ICszOCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIE5vZGUqIHJvb3QoKSBjb25zdCB7IHJldHVybiBtX3Jvb3QuZ2V0KCk7IH0KICAgICAgICAg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93KCkgY29uc3QgeyByZXR1cm4gbV93aGF0VG9TaG93OyB9
CiAgICAgICAgIE5vZGVGaWx0ZXIqIGZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyLmdl
dCgpOyB9Ci0gICAgICAgIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0
dXJuIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgfQorICAgICAgICBib29sIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgcHJvdGVjdGVkOgot
ICAgICAgICBOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJl
bmNlcyk7CisgICAgICAgIE5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAgIHNob3J0
IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRy
PE5vZGU+IG1fcm9vdDsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX3doYXRUb1Nob3c7CiAgICAg
ICAgIFJlZlB0cjxOb2RlRmlsdGVyPiBtX2ZpbHRlcjsKLSAgICAgICAgYm9vbCBtX2V4cGFuZEVu
dGl0eVJlZmVyZW5jZXM7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVXYWxrZXIuY3BwCmluZGV4IGFkMGFjZTE5OWI3ZGE2OWVlY2IyMDQzYTI4YzllZjQ0
ZmMwNjNkNDYuLjg3NzQ4MmFmZjQ3YTNjNTQzNGFmNzUzMmU2ZGMwNTNkMTUxM2NkMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVdhbGtlci5jcHAKQEAgLTMzLDggKzMzLDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1UcmVlV2Fsa2VyOjpUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5v
ZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVy
LCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCi0gICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJv
b3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJl
bmNlcykKK1RyZWVXYWxrZXI6OlRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCisg
ICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmls
dGVyKSkKICAgICAsIG1fY3VycmVudChyb290KCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIu
aAppbmRleCBiZjY5YmRlY2UwOTliY2QxNGRiYWZkNThmMDE3Y2ZiZDg3YjUxNTYzLi4yMjhmMjNk
NDc0NmEyMTU5YmI1MGJmNmFhNjI3ODhiNzMzNjRmYjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVdhbGtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2Vy
LmgKQEAgLTM3LDkgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgVHJl
ZVdhbGtlciA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPFRyZWVX
YWxrZXI+LCBwdWJsaWMgTm9kZUl0ZXJhdG9yQmFzZSB7CiAgICAgcHVibGljOgotICAgICAgICBz
dGF0aWMgUmVmPFRyZWVXYWxrZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9v
bCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorICAgICAgICBzdGF0aWMgUmVmPFRyZWVXYWxrZXI+
IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVHJlZVdhbGtlcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RG
Ojptb3ZlKGZpbHRlciksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpKTsKKyAgICAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFRyZWVXYWxrZXIocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6
bW92ZShmaWx0ZXIpKSk7CiAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAK
ICAgICAgICAgTm9kZSogY3VycmVudE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQuZ2V0
KCk7IH0KQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOb2Rl
KiBuZXh0Tm9kZSgpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgVHJlZVdhbGtlcihQYXNzUmVm
UHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYm
LCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworICAgICAgICBUcmVlV2Fsa2VyKFBhc3NS
ZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+
JiYpOwogICAgICAgICAKICAgICAgICAgTm9kZSogc2V0Q3VycmVudChQYXNzUmVmUHRyPE5vZGU+
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCmluZGV4IDQ4MDllZTNkNGYxZDFmZDQwODVl
MWExMTk3M2E4ZGY0MDIwZTQ3MTUuLmFkNWNiNWQ2NDAzMTBmOGMwMzg5NjFmNTEzMmQ1YmRkZDIz
NjZjN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKQEAgLTI2LDcgKzI2LDkgQEAKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByb290OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3c7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVGaWx0
ZXIgZmlsdGVyOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4cGFuZEVudGl0eVJl
ZmVyZW5jZXM7ICAgICAgICAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBM
QU5HVUFHRV9PQkpFQ1RJVkVfQworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM7CisjZW5kaWYKICAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBh
dHRyaWJ1dGUgTm9kZSBjdXJyZW50Tm9kZTsKIAogICAgIE5vZGUgcGFyZW50Tm9kZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCA4MzQ1NTcy
MDQ5NmEwZDEwZGQwNmZjMGVhNGVlYmY0MzhjYjRlYzI2Li43MTJhYmZhZjhjZWNjYzhmMjc3NmVh
NTA1ODZkYzNhMDEwYWNmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01h
cmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFj
Y3VtdWxhdG9yLmNwcApAQCAtNTczLDcgKzU3Myw2IEBAIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6
OmFwcGVuZFN0YXJ0TWFya3VwKFN0cmluZ0J1aWxkZXImIHJlc3VsdCwgY29uc3QgTm9kZSYgbm9k
CiAgICAgICAgIGFwcGVuZENEQVRBU2VjdGlvbihyZXN1bHQsIGRvd25jYXN0PENEQVRBU2VjdGlv
bj4obm9kZSkuZGF0YSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJV
VEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNl
IE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhV
dGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwCmluZGV4IDZmNjY0ZDg0
MDFmZjcxNzA1MjY4NjAzZTA0MWViZjc3YjU4ZjNjNDQuLmJlYWRiNGRmMjBmZThlNDQwYTI1MzRj
MjE5NGNjODg3YTY0NzY2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0
aWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwCkBAIC03MSw3ICs3
MSw2IEBAIGJvb2wgaXNWYWxpZENvbnRleHROb2RlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgog
ICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKLSAgICAgICAgY2FzZSBOb2Rl
OjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgcmV0dXJuICEobm9kZS0+cGFy
ZW50Tm9kZSgpICYmIG5vZGUtPnBhcmVudE5vZGUoKS0+aXNBdHRyaWJ1dGVOb2RlKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFj
L1dLRE9NSW50ZXJuYWxzLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tCmluZGV4IGU1YzZmMDJmYzhkYzgxMTA4ODgz
ZWFiNzUwMmM1MjM4ODhmZTdlZTMuLmQ1N2RmY2QzZWJhMGQyNzU0Njk1MWZlZjRlNDgwNGRiYTIy
N2U4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS0RPTUludGVybmFscy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0KQEAgLTc2LDcgKzc2
LDYgQEAgc3RhdGljIENsYXNzIFdLRE9NTm9kZUNsYXNzKFdlYkNvcmU6Ok5vZGUqIGltcGwpCiAg
ICAgICAgIHJldHVybiBbV0tET01UZXh0IGNsYXNzXTsKICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6
OkFUVFJJQlVURV9OT0RFOgogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q0RBVEFfU0VDVElPTl9O
T0RFOgotICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAg
IGNhc2UgV2ViQ29yZTo6Tm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgIGNh
c2UgV2ViQ29yZTo6Tm9kZTo6Q09NTUVOVF9OT0RFOgogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6
RE9DVU1FTlRfVFlQRV9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDg3MTA1YThiNmNmNmRhOTk5MDFjMTFkN2Fi
YTA0YWZlZDJlZjgzZDEuLjg2M2E4NTRlOTZlNGZiMjVjNGY0MDhhNDU2ZjIxY2ZiODk5ZTRiMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTIzMjQsMTEgKzIzMjQsMTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzQXNz
aXN0YWJsZUVsZW1lbnQoRWxlbWVudCYgbm9kZSkKICAgICBpZiAoaXM8SFRNTFNlbGVjdEVsZW1l
bnQ+KG5vZGUpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoaXM8SFRNTFRleHRBcmVh
RWxlbWVudD4obm9kZSkpCi0gICAgICAgIHJldHVybiAhZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxl
bWVudD4obm9kZSkuaXNSZWFkT25seU5vZGUoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
aWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpKSB7CiAgICAgICAgIEhUTUxJbnB1dEVsZW1l
bnQmIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpOwogICAg
ICAgICAvLyBGSVhNRTogVGhpcyBsYXVuZHJ5IGxpc3Qgb2YgdHlwZXMgaXMgbm90IGEgZ29vZCB3
YXkgdG8gZmFjdG9yIHRoaXMuIE5lZWQgYSBzdWl0YWJsZSBmdW5jdGlvbiBvbiBIVE1MSW5wdXRF
bGVtZW50IGl0c2VsZi4KLSAgICAgICAgcmV0dXJuICFpbnB1dEVsZW1lbnQuaXNSZWFkT25seU5v
ZGUoKSAmJiAoaW5wdXRFbGVtZW50LmlzVGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0
ZUZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5wdXRF
bGVtZW50LmlzTW9udGhGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpKTsKKyAg
ICAgICAgcmV0dXJuIGlucHV0RWxlbWVudC5pc1RleHRGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5p
c0RhdGVGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc0RhdGVUaW1lTG9jYWxGaWVsZCgpIHx8IGlu
cHV0RWxlbWVudC5pc01vbnRoRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNUaW1lRmllbGQoKTsK
ICAgICB9CiAgICAgcmV0dXJuIG5vZGUuaXNDb250ZW50RWRpdGFibGUoKTsKIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBh
NTQwOGQzOWUzMDMwMjllNjAxMGIzN2I4NmRiMTA5YzFjODk2NGQyLi4yZGVjMzhmYWZmOWQwMDVh
OWRiNDcxMmFmNDc4MmUwYWMzOTRlOWFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTUtMDkt
MTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBEcm9wIHN1cHBv
cnQgZm9yIGxlZ2FjeSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBzZXZlcmFsIG91dGRhdGVk
IERPTSBjb21wbGlhbmNlIHRlc3RzLiBVcGRhdGUgLyBSZWJhc2VsaW5lIG90aGVycy4KKworMjAx
NS0wOS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFJFR1JF
U1NJT04gKHIxODI0NDksIE1hdmVyaWNrcyBPTkxZKTogUGFnZXMgcmUtb3BlbiBlbXB0eSBhZnRl
ciBzd2lwaW5nIGJhY2sgYW5kIHNjcm9sbGluZyBvbiB0aGVtCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzMTcKICAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzIyNTIxNTE0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDNiNGUzYTVl
MGMzNzgyMTZhMDBlMzA2NTFhZTliNzA1ZGVjYzE0Zi4uNWQ1ZjdlZDZlNDQ0YTk4MTNlNTVhYmQ4
NTNhMGZhMGI0ZjkwZWZjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMTYgQEAKIDIwMTUtMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAor
ICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5vZGUg
dHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5
MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVi
YXNlbGluZSBXM0MgRE9NIHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3NpbmcuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0
OgorCisyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAg
ICAgRHJvcCBzdXBwb3J0IGZvciBFbnRpdHkgTm9kZSB0eXBlCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkyMzkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyYThlNDY2MTI0YjE4ZmY0
YzViNjQ3ZWFiZmE3NzAxNTQ0ZDgxZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25j
cmVhdGVlbnRyZWYKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRl
ZW50cmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggM2I1OWFjMzY2OWEwY2Q2NzZiNDZlNGQ5ZmNiNzRmYjYxNmIxODNhMS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25j
cmVhdGVlbnRyZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93
d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51
bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0
PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMiPjwvc2NyaXB0Pjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZh
bXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+
Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+
Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8i
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+Mjcg
U291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U3ZTEyNzg0MWVmOTg2ZDYxNjg2OWEy
MjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDMg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFy
IGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0
aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3Vp
dGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBh
c3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhl
cndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBl
eGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0
aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRV
cFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNy
ZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8v
Ci0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNoZWNr
RmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotICAgIFRoZSAiY3JlYXRlRW50aXR5UmVmZXJlbmNlKHRhZ05h
bWUpIiBtZXRob2QgcmFpc2VzIGFuCi0gICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgRE9NRXhjZXB0
aW9uIGlmIHRoZSBzcGVjaWZpZWQKLSAgIHRhZ05hbWUgY29udGFpbnMgYW4gaW52YWxpZCBjaGFy
YWN0ZXIuIAotCi0qIEBhdXRob3IgTklTVAotKiBAYXV0aG9yIE1hcnkgQnJhZHkKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1v
bmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0nSU5WQUxJ
RF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMt
RE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1v
bmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1l
PSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJTlZBTElE
X0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9z
aG93X2J1Zy5jZ2k/aWQ9MjQ5Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
YmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0
bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAg
ICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJmb28iKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsKLQkJ
CQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiaW52YWxpZF5OYW1lIik7Ci0gICAgICAg
IH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1
bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfSU5W
QUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQkJfQotCQotfQotCi0KLQotCi1m
dW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZl
bDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWFlYmU0MDQ0NzhkOGIwMjViNTFjNmFlM2MzNjY1ZDVh
MzcwMzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiAr
MCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEKLVN0
YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1sIGIv
TGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzYjZkMDljZGFiYzIwYzE3MjY1YWFmMjU5NzZlMzMyNDlmNWQxYjk0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RS
L2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgot
PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hh
cnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZl
LiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24g
d2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGph
Y2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZk
ZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcg
SXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0
PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVs
IERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQu
IERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAw
NTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVy
IFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjRkMWVjOTc1MzI5YjE3ZDcyM2NlM2MwZTk3OWU1ZDVm
OTBmNDBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAK
LQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVt
LCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNl
YXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBV
bml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25z
b3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQot
ICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICog
IEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJn
ZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRl
ZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJl
KCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9h
ZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAg
ICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlh
bGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVk
IG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3Rh
cnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2Fk
ZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNo
YW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4
ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1wdHkg
bmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRob3Ig
Q3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2
ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9j
b25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUj
SUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2
ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9y
YWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1i
ZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24gZG9j
dW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIu
Y29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRp
dHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNj
ZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwot
CQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9
Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7
Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCIi
KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVl
KCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTA4MmNiZWFlNGY2ZDg4ZGZkMDY0ZWRi
NGMyZDlhYWI5NjE1YzNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1
ZTIKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2
ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2
ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0YmI3YmI4YzgxMDljZjU5M2RmZWY4NWJjOWNkMzRhZTRjYjI4OGQxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9F
TiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0g
VGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRs
ZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2Vs
Zmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZl
LiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24g
d2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGph
Y2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZk
ZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcg
SXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0
PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVs
IERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQu
IERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAw
NTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVy
IFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzIGIvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjYzJhZTM1ZTI3YjQ5NDQ4ZDA3ZDYxNjRiNDliMGE5ODMw
Y2NmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBX
b3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBU
ZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNz
IGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVk
LiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGlj
ZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsx
XSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3
YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVu
dGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAot
ICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVl
MiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51
bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZy
YW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAg
IElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwot
Ly8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0
YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBp
bW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRo
ZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9
ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRv
Y3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRl
ciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwi
LCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9
IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlm
IChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRp
b25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBp
biBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9j
dW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQg
d2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVk
LgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0v
KioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5zIGVu
dGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29y
ZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0cmdl
dHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFjcm9u
eW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0gICAg
ICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2RlOwot
ICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFscGhh
UmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7Ci0g
ICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVzID0g
dGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5nZXRO
YW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlw
ZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0
cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJh
bHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVv
ZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2Vy
dFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0J
CWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIp
OwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICByZXR2
YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAgICAg
dmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZhbHVl
MSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzcwYzdjM2RiMWRmZTc4ZDg3YTUx
YzRiYWQxMTZkMjk4MzhmMWMwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUw
My1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3Q6CWh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVl
MDMKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2
ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVs
MS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGI4MDQ2ZjEyZmI4OGIyZWI5Y2U2NmY5NjBmMmIyYmQxOWE0NzdhOWQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2
ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0g
ICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBp
cyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwu
anMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJoY19ub2RldmFsdWUwMy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2ph
dmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Njcmlw
dD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNj
b3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4K
LSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50
aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RB
VEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0g
IDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0g
IDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rv
cjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgot
ICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFs
aXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwv
YWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9kb20v
aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTYxNjcxYWE0YjM4YTY1YTFjZWQ0Zjk1OWE4YjE0NjM1ZjMxMjU4NS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEz
OCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIg
Q29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVy
b3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRp
Y3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlz
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRo
ZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53
My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQot
Ki8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVz
dC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rp
b24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzIjsKLSAgIH0KLQotdmFy
IGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAg
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQot
Ly8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5v
IGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1l
bnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAg
aXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAg
ICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVu
Y3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAg
dHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwg
bWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmln
dXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9h
ZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAg
ICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlh
bGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVk
IG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3Rh
cnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2Fk
ZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNo
YW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4
ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0vKioKLSogCi1BbiBlbnRpdHkgcmVmZXJlbmNlIGlzIGNyZWF0ZWQsIHNldE5vZGVWYWx1
ZSBpcyBjYWxsZWQgd2l0aCBhIG5vbi1udWxsIGFyZ3VtZW50LCBidXQgZ2V0Tm9kZVZhbHVlCi1z
aG91bGQgc3RpbGwgcmV0dXJuIG51bGwuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2Vl
IGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVs
LW9uZS1jb3JlI0lELUY2OEQwODAKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JF
Qy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0xMUM5ODQ5MAotKi8KLWZ1
bmN0aW9uIGhjX25vZGV2YWx1ZTAzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfbm9kZXZhbHVlMDMiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdOb2RlOwotICAgICAgdmFyIG5ld1ZhbHVlOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAot
CWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0J
Ci0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBuZXdOb2RlID0g
ZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJS
IixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJbmV3Tm9kZSA9IGRvYy5jcmVh
dGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIGFzc2VydE5vdE51bGwoImNyZWF0ZWRF
bnRSZWZOb3ROdWxsIixuZXdOb2RlKTsKLW5ld1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0K
LSAgICAgIGFzc2VydE51bGwoImluaXRpYWxseU51bGwiLG5ld1ZhbHVlKTsKLSAgICBuZXdOb2Rl
Lm5vZGVWYWx1ZSA9ICJUaGlzIHNob3VsZCBoYXZlIG5vIGVmZmVjdCI7Ci0KLSAgICAgIG5ld1Zh
bHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51bGwoIm51bGxBZnRlckF0
dGVtcHRlZENoYW5nZSIsbmV3VmFsdWUpOwotICAgIAotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19ub2RldmFsdWUwMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzhjZWMwYTg5ZDRhNWZhY2U2YjNj
YjI0MDM2OTg3ZDc5OGI2Zjg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9y
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLVhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSOiBT
dWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0
aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyBiL0xheW91dFRlc3RzL2Rv
bS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURf
RVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmUwMThjOGE2NjMwNTQ5Njc4
M2QxYjc1YWMwZTc0YmYyMjM3ZGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVh
dG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE5
ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBD
b25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJv
cGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGlj
cywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhl
IAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3Lncz
Lm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0q
LwotCi0KLS8vIGV4cG9zZSB0ZXN0IGZ1bmN0aW9uIG5hbWVzCi1mdW5jdGlvbiBleHBvc2VUZXN0
RnVuY3Rpb25OYW1lcygpCi17Ci1yZXR1cm4gWydYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1Rf
U1VQUE9SVEVEX0VSUiddOwotfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1
aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUg
dGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUu
Ci0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3lu
Y2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndp
c2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNl
cHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUg
Ym9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBh
Z2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0
ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0g
ICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9h
ZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAi
c3RhZmZOUyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qICAgICAgIAotICAgICAgVGVzdCBp
ZiBYUGF0aEV2YWx1YXRvci5ldmFsdWF0ZSBwcm9wZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9F
UlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBlIExlIEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9i
IENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1Y
UGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV2YWx1YXRvci1ldmFsdWF0ZQotKi8KLWZ1bmN0aW9u
IFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiWFBhdGhFdmFsdWF0
b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRvcjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAgICB2
YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwotCi0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7
Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAi
ZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVhdG9yID0gY3JlYXRlWFBhdGhFdmFsdWF0
b3IoZG9jKTsKLWNvbnRleHROb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50aXR5
bmFtZSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAg
ICAgICByZXN1bHQgPSB4cEV2YWx1YXRvci5ldmFsdWF0ZSgiLy9mb286YmFyIixjb250ZXh0Tm9k
ZSxudWxsTlNSZXNvbHZlciwwLG51bGxSZXN1bHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixz
dWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIFhQYXRo
RXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9O
T1RfU1VQUE9SVEVEX0VSUi5zdmcgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDc3YjhiZGMxYzZkNDA5NTk2ZTJhZTQ4NDIwZDdiZTdjZTkxODJl
OGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NV
UFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi08c3ZnIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6bmlzdD0iaHR0cDovL3d3dy5uaXN0
LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiLz4NCi08c2Ny
aXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9IlhQYXRoRXZhbHVh
dG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIi8+DQotPHNjcmlwdCB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJzdmd1bml0LmpzIi8+DQotPC9zdmc+DQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNz
aW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9S
VEVEX0VSUi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwYTdk
Y2M2YTY0MGY3ZjZmMDZjY2JmNGJlMDcwNjA1MjU1OTQ3ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBh
dGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9O
T1RfU1VQUE9SVEVEX0VSUjogU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2
Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJS
LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2
YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhY2Y2MTQ2NjEwOTNjY2ZjYzUxNzhiODY0YTZhMmMwYjI5ZGY4Njk1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2
ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAx
LTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZv
cm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBS
ZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3
YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdo
dC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0vLyBleHBvc2UgdGVzdCBmdW5jdGlvbiBuYW1l
cwotZnVuY3Rpb24gZXhwb3NlVGVzdEZ1bmN0aW9uTmFtZXMoKQotewotcmV0dXJuIFsnWFBhdGhF
eHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSJ107Ci19Ci0KLXZhciBkb2NzTG9h
ZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAg
cnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1
cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRp
bmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0
byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJh
aXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNl
dFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0g
ICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJv
dyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWls
ZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBw
cmVsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogICAgICAgCi0gICAgICBUZXN0IGlmIFhQYXRoRXhwcmVzc2lvbi5ldmFsdWF0ZSBwcm9wZXJs
eSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBlIExl
IEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV4cHJlc3Np
b24tZXZhbHVhdGUKLSovCi1mdW5jdGlvbiBYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NV
UFBPUlRFRF9FUlIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0
aW9uKGJ1aWxkZXIsICJYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIi
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRvcjsK
LSAgICAgIHZhciByZXN1bHQ7Ci0gICAgICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwotCi0g
ICAgICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsKLSAg
ICAgIHZhciB4cGF0aEV4cHJlc3Npb247Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJzdGFmZk5TIik7Ci0gICAgICB4cEV2YWx1YXRvciA9IGNyZWF0ZVhQYXRoRXZhbHVhdG9y
KGRvYyk7Ci14cGF0aEV4cHJlc3Npb24gPSB4cEV2YWx1YXRvci5jcmVhdGVFeHByZXNzaW9uKCIv
L2ZvbyIsbnVsbE5TUmVzb2x2ZXIpOwotICAgICAgY29udGV4dE5vZGUgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJlbnRpdHluYW1lIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxz
ZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHhwYXRoRXhwcmVzc2lvbi5ldmFsdWF0
ZShjb250ZXh0Tm9kZSwwLG51bGxSZXN1bHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0g
ICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2Rl
ID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNj
ZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIFhQYXRoRXhw
cmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05P
VF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQ
YXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFmODZkNzUwYTM5ZGFhZjQ2Y2IwNGQ5ZjEzYTI3MGNmMjU1Y2Nj
ZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9T
VVBQT1JURURfRVJSLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotPHN2ZyB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOm5pc3Q9Imh0dHA6Ly93d3cubmlz
dC5nb3YiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+DQotPHNj
cmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJYUGF0aEV4cHJl
c3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMiLz4NCi08c2NyaXB0IHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9InN2Z3VuaXQuanMiLz4NCi08L3N2Zz4N
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkMmQ2ZDE3NzBhMTI3ODk5YTIyYWFjZjM2ZmNmOTg2MTI2MDc3M2FmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlN2UxMjc4NDFlZjk4NmQ2MTY4Njlh
MjI0MTQ4MTYxYTM5MTcwMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0
MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIg
Q29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVy
b3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRp
Y3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlz
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRo
ZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53
My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQot
Ki8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVz
dC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rp
b24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hl
Y2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJjcmVhdGVFbnRpdHlSZWZlcmVuY2UodGFn
TmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFMSURfQ0hBUkFDVEVSX0VSUiBET01FeGNl
cHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFtZSBjb250YWlucyBhbiBpbnZhbGlkIGNo
YXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBhdXRob3IgTWFyeSBCcmFkeQotKiBAc2Vl
IGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVs
LW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2NvbnN0YW50W0BuYW1lPSdJTlZB
TElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JF
Qy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0zOTJCNzVBRQotKiBAc2Vl
IGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVs
LW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3JhaXNlcy9leGNlcHRpb25bQG5h
bWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJlZm9yZSguLCc6Jyk9J0lOVkFM
SURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGlj
L3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlvbiBkb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVj
a0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZh
ciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQv
aHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAg
ICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZvbyIpOwot
ICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2Rl
KSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRo
cm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2Ugewot
CQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRp
dHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJpbnZhbGlkXk5hbWUiKTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19J
TlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkODEwOTgzMzIxMDRmMTBhOWEwNzNhZDAxZTRlNGExM2I4YTFlMzhjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJz
aW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3Qu
ZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYj
OTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICIm
Izk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhh
ICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxl
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8
IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1l
bnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVU
Ri04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
PmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+
PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9u
Zz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9u
IHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNl
Y3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1h
OwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8
c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2Vy
PC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4
NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25n
PlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2Rl
PgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4K
LSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjNiYzk5ODViNWMyYjdmNjAxYTEwZjg0ZTM5
ZTY1MzY4MTM0Njg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5q
cyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiNGQxZWM5NzUzMjliMTdkNzIzY2UzYzBlOTc5ZTVkNWY5MGY0MGEyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDD
gsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRz
IEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAot
Zm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAot
UmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OC
wq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIv
Y29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0
cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50
aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICBy
ZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DcmVh
dGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1wdHkgbmFtZSBzaG91bGQgY2F1c2Ug
YW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0nSU5W
QUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9S
RUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0Bu
YW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJTlZB
TElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1Ymxp
Yy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAg
IHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRl
eHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZvbyIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2Ug
ewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRF
bnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCIiKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19JTlZBTElEX0NI
QVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmODNiYWI5ODRhZTdjYTJhZmViY2EwMjRlYzNkODBiODdkNDhmZTg0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYxLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51
bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZjEuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9k
eSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUx
PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0
aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0
YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1Mzwv
YWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55
IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8
c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9i
ZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0g
IDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwv
cD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMjA5YzNlNDM2NGVkYzQ1NWQ1NGQ0MTUyMDk0ZTJlNjZh
YWQ3NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMgotU3RhdHVz
CWZhaWx1cmUKLU1lc3NhZ2UJYXR0clZhbHVlMTogYXNzZXJ0RXF1YWxzIGZhaWxlZCwgYWN0dWFs
IFnOsSwgZXhwZWN0ZWQgzrFZzrEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5NGNjMmFlMzVlMjdiNDk0NDhkMDdkNjE2NGI0OWIwYTk4MzBjY2YxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQ2
ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBD
b25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJv
cGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGlj
cywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhl
IAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3Lncz
Lm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0q
LwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0
LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlv
biBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMiI7Ci0gICB9Ci0KLXZh
ciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAg
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUK
LS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBu
byBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3Vt
ZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAg
IGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8g
ICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1
bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAg
IHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIs
IG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZp
Z3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAg
ICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0K
LSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVy
LCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9m
IAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgot
Ly8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBs
ZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRo
ZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DaGVja3Mg
dGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5zIGVudGl0eSByZWZlcmVuY2Vz
LgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8x
OTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0yMjE2NjI0NzQK
LSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0cmdldHZhbHVlMiIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFjcm9ueW1MaXN0OwotICAgICAg
dmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0gICAgICB2YXIgdGl0bGVBdHRy
OwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIHJldHZh
bDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFscGhhUmVmOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGFjcm9ueW1MaXN0
ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7Ci0gICAgICB0ZXN0Tm9kZSA9
IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVzID0gdGVzdE5vZGUuYXR0cmli
dXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oImNsYXNz
Iik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1s
IikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAg
ICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
VF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJYWxw
aGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgZmlyc3RD
aGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICByZXR2YWwgPSB0aXRsZUF0dHIu
aW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAgICAgdmFsdWUgPSB0aXRsZUF0
dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZhbHVlMSIsIs6xWc6xIix2YWx1
ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
IGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDBhMmU0MDEzOGM1NTA4NDlkNzlkMTdhODRhOWU0MjdiMjg1ZWVmYjkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElE
QVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAi
JiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxv
biAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24y
IFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEg
Imx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iaGNfYXR0cmdldHZhbHVlMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0
Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFk
Pjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+
Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8
L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMg
OTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVy
ZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlv
biB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1t
YTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAg
PHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdl
cjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4
NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25n
PkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+
Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5
ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9u
Zz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29k
ZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDdiMWEyNjJmYTg4MTZlOTcxZWMzMDc5NmQ3NjU5OTRl
Zjk4ZTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMwotU3RhdHVzCWVy
cm9yCi1NZXNzYWdlCUVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNf
bm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9k
ZXZhbHVlMDMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MTY3MWFhNGIzOGE2
NWExY2VkNGY5NTlhOGIxNDYzNWYzMTI1ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25v
ZGV2YWx1ZTAzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHly
aWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0
aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4g
QWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2Fs
LzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAg
KiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJp
IGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0g
ICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwx
L2NvcmUvaGNfbm9kZXZhbHVlMDMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAg
ICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQot
ICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIs
IGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2Yg
Ci0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0v
LwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxl
dGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhl
Ci0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFuIGVudGl0
eSByZWZlcmVuY2UgaXMgY3JlYXRlZCwgc2V0Tm9kZVZhbHVlIGlzIGNhbGxlZCB3aXRoIGEgbm9u
LW51bGwgYXJndW1lbnQsIGJ1dCBnZXROb2RlVmFsdWUKLXNob3VsZCBzdGlsbCByZXR1cm4gbnVs
bC4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtRjY4RDA4MAot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAx
L2xldmVsLW9uZS1jb3JlI0lELTExQzk4NDkwCi0qLwotZnVuY3Rpb24gaGNfbm9kZXZhbHVlMDMo
KSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIs
ICJoY19ub2RldmFsdWUwMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIG5ld05vZGU7Ci0gICAgICB2YXIgbmV3VmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRv
Y1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29u
dGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxz
ZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIG5ld05vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCJlbnQxIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAo
dHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJ
YXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0K
LQkKLQkJZWxzZSB7Ci0JCQluZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50
MSIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgiY3JlYXRlZEVudFJlZk5vdE51bGwiLG5ld05vZGUp
OwotbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgiaW5p
dGlhbGx5TnVsbCIsbmV3VmFsdWUpOwotICAgIG5ld05vZGUubm9kZVZhbHVlID0gIlRoaXMgc2hv
dWxkIGhhdmUgbm8gZWZmZWN0IjsKLQotICAgICAgbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1
ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgibnVsbEFmdGVyQXR0ZW1wdGVkQ2hhbmdlIixuZXdWYWx1
ZSk7Ci0gICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhj
X25vZGV2YWx1ZTAzKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDEyNzY1MWVjODlmYTg4MGJiNTI0Y2EyNGJhZjllMWM1MjgxZmQyZTQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4K
LTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImhjX25v
ZGV2YWx1ZTAzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2Fk
PSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAg
ICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5
bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAy
ICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29k
ZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9h
Y3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2Vy
Ci0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8
c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgy
MSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2Jv
ZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMzc5M2UwNGNiNjRkOWJlOGFmNWYwNmI3ZTUzODZjZjI0NmFi
YzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYKLVN0
YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4MDRiOTQ4MTUyOGZlMjA4MWZiM2E0ZGMzZDQ5ZDI1ZDA1NWE4ZjIzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTc1
ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBD
b25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJv
cGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGlj
cywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhl
IAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3Lncz
Lm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0q
LwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0
LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlv
biBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNiI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
c0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAK
LSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaElu
aXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNh
bGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2Fk
IHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMg
bG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBp
cyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBi
ZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSBhZG9wdE5vZGUgb24gYSBuZXcgZG9jdW1lbnQgdG8g
YWRvcHQgdGhlIGEgbmV3IEF0dHJpYnV0ZSBub2RlIGhhdmluZyBhIFRleHQgYW5kIGFuIEVudGl0
eVJlZmVyZW5jZSAKLQljaGlsZC4gIENoZWNrIGlmIHRoaXMgYXR0cmlidXRlIGhhcyBiZWVuIGFk
b3B0ZWQgc3VjY2Vzc2Z1bGx5IGJ5IHZlcmlmeWluZyB0aGUgbm9kZU5hbWUsIG5hbWVzcGFjZVVS
SSwgcHJlZml4LCAKLQlzcGVjaWZpZWQgYW5kIG93bmVyRWxlbWVudCBhdHRyaWJ1dGVzIG9mIHRo
ZSBhZG9wdGVkIG5vZGUuICBBbHNvIHZlcmlmeSB0aGUgb3duZXJEb2N1bWVudCBhdHRyaWJ1dGUK
LQlvZiB0aGUgYWRvcHRlZCBub2RlIGFuZCB0aGUgYWRvcHRlZCBjaGlsZHJlbiBvZiB0aGUgYXR0
cmlidXRlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNEb2N1bWVudDMtYWRvcHROb2RlCi0qLwotZnVuY3Rpb24gZG9jdW1lbnRhZG9wdG5v
ZGUwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgImRvY3VtZW50YWRvcHRub2RlMDYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRv
YzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIHZhciBuZXdB
dHRyOwotICAgICAgdmFyIG5ld1RleHQ7Ci0gICAgICB2YXIgbmV3RW50UmVmOwotICAgICAgdmFy
IGFkb3B0ZWRBdHRyOwotICAgICAgdmFyIGFkb3B0VGV4dDsKLSAgICAgIHZhciBhZG9wdEVudFJl
ZjsKLSAgICAgIHZhciBub2RlTGlzdDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZhciBu
b2RlTmFtZXNwYWNlVVJJOwotICAgICAgdmFyIG5vZGVQcmVmaXg7Ci0gICAgICB2YXIgYXR0ck93
bmVyRWxlbTsKLSAgICAgIHZhciBpc1NwZWNpZmllZDsKLSAgICAgIHZhciBhZG9wdGVkVGV4dE5v
ZGVWYWx1ZTsKLSAgICAgIHZhciBhZG9wdGVkRW50UmVmTm9kZVZhbHVlOwotICAgICAgdmFyIG51
bGxEb2NUeXBlID0gbnVsbDsKLQotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIg
ZG9jRWxlbTsKLSAgICAgIHZhciByb290TlM7Ci0gICAgICB2YXIgcm9vdE5hbWU7Ci0gICAgICB2
YXIgeG1sTlMgPSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIjsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NFbGVt
ID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5hbWUgPSBkb2NFbGVtLnRhZ05h
bWU7Ci0KLSAgICAgIHJvb3ROUyA9IGRvY0VsZW0ubmFtZXNwYWNlVVJJOwotCi0gICAgICBkb21J
bXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9tSW1wbC5jcmVhdGVEb2N1bWVu
dChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAgbmV3QXR0ciA9IGRvYy5jcmVh
dGVBdHRyaWJ1dGVOUyh4bWxOUywieG1sOmxhbmciKTsKLSAgICAgIG5ld1RleHQgPSBkb2MuY3Jl
YXRlVGV4dE5vZGUoIlRleHQgTm9kZSIpOwotICAgICAgbmV3RW50UmVmID0gZG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBuZXdBdHRyLmFw
cGVuZENoaWxkKG5ld1RleHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IG5ld0F0dHIuYXBwZW5k
Q2hpbGQobmV3RW50UmVmKTsKLSAgICAgIGFkb3B0ZWRBdHRyID0gbmV3RG9jLmFkb3B0Tm9kZShu
ZXdBdHRyKTsKLSAgICAgIAotCWlmKAotCQotCShhZG9wdGVkQXR0ciAhPSBudWxsKQotCi0JKSB7
Ci0Jbm9kZU5hbWUgPSBhZG9wdGVkQXR0ci5ub2RlTmFtZTsKLQotICAgICAgbm9kZU5hbWVzcGFj
ZVVSSSA9IGFkb3B0ZWRBdHRyLm5hbWVzcGFjZVVSSTsKLQotICAgICAgbm9kZVByZWZpeCA9IGFk
b3B0ZWRBdHRyLnByZWZpeDsKLQotICAgICAgYXR0ck93bmVyRWxlbSA9IGFkb3B0ZWRBdHRyLm93
bmVyRWxlbWVudDsKLQotICAgICAgaXNTcGVjaWZpZWQgPSBhZG9wdGVkQXR0ci5zcGVjaWZpZWQ7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9ub2RlTmFtZSIsInht
bDpsYW5nIixub2RlTmFtZSk7Ci0gICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9k
ZTA2X25hbWVzcGFjZVVSSSIseG1sTlMsbm9kZU5hbWVzcGFjZVVSSSk7Ci0gICAgICAgYXNzZXJ0
RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X3ByZWZpeCIsInhtbCIsbm9kZVByZWZpeCk7Ci0g
ICAgICAgYXNzZXJ0TnVsbCgiZG9jdW1lbnRhZG9wdG5vZGUwNl9vd25lckRvYyIsYXR0ck93bmVy
RWxlbSk7Ci0gICAgYXNzZXJ0VHJ1ZSgiZG9jdW1lbnRhZG9wdG5vZGUwNl9zcGVjaWZpZWQiLGlz
U3BlY2lmaWVkKTsKLW5vZGVMaXN0ID0gYWRvcHRlZEF0dHIuY2hpbGROb2RlczsKLQotICAgICAg
YWRvcHRUZXh0ID0gbm9kZUxpc3QuaXRlbSgwKTsKLSAgICAgIGFkb3B0RW50UmVmID0gbm9kZUxp
c3QuaXRlbSgxKTsKLSAgICAgIGFkb3B0ZWRUZXh0Tm9kZVZhbHVlID0gYWRvcHRUZXh0Lm5vZGVW
YWx1ZTsKLQotICAgICAgYWRvcHRlZEVudFJlZk5vZGVWYWx1ZSA9IGFkb3B0RW50UmVmLm5vZGVO
YW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfVGV4dE5vZGVW
YWx1ZSIsIlRleHQgTm9kZSIsYWRvcHRlZFRleHROb2RlVmFsdWUpOwotICAgICAgIGFzc2VydEVx
dWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9FbnRSZWZOb2RlVmFsdWUiLCJhbHBoYSIsYWRvcHRl
ZEVudFJlZk5vZGVWYWx1ZSk7Ci0gICAgICAgCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUwNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi54
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjkyZDg5MGRhZGI1YTg3MzU5ZjQ5
ZmVkNDE5OTQ3MzU4NGQyMTcyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9w
dG5vZGUwNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNp
b249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5k
dGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5
NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYj
OTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwh
QVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAg
ICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVu
dDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRh
dGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBD
REFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxo
dG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4
c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYu
eHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJV
VEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMDYuanMi
Lz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
eyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0
ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2Nv
dW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4K
LSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0
YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywg
JmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgot
IEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1
cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3Qu
Z292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25n
PgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3Vw
PgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIEly
dmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2Rl
MTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3Vt
ZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyOGFiMTg4NjFmYmU4YTUwZjU5YzgxMmFlYmQwNTMzOWVhNTdjZjVkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5v
ZGUxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0
bm9kZTE2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmQ2ZTJmZGMzNDdhMzQx
MTA1NWJkYTJlZGU5YTIyMjliZTllZmU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVu
dGFkb3B0bm9kZTE2LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
Q3JlYXRlIGEgZG9jdW1lbnQgZnJhZ21lbnQgd2l0aCBhbiBlbnRpdHkgcmVmZXJlbmNlLCBhZG9w
dCB0aGUgbm9kZSBhbmQgY2hlY2sKLXRoYXQgdGhlIGVudGl0eSByZWZlcmVuY2UgdmFsdWUgY29t
ZXMgZnJvbSB0aGUgYWRvcHRpbmcgZG9jdW1lbnRzIERURC4KLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0RvY3VtZW50My1hZG9wdE5vZGUKLSovCi1m
dW5jdGlvbiBkb2N1bWVudGFkb3B0bm9kZTE2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRhZG9wdG5vZGUxNiIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWdtZW50OwotICAgICAg
dmFyIGNoaWxkTGlzdDsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgY2hpbGQ7Ci0gICAg
ICB2YXIgY2hpbGRzQXR0cjsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dE5vZGU7
Ci0gICAgICB2YXIgYWRvcHRlZDsKLSAgICAgIHZhciBwYXJlbnRJbXA7Ci0gICAgICB2YXIgY2hp
bGRJbXA7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAgICAgIHZhciBjaGlsZEF0dHJJbXA7Ci0g
ICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIg
YXR0ck5vZGU7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsKLSAgICAgIHZhciBmaXJzdENoaWxkVHlw
ZTsKLSAgICAgIHZhciBmaXJzdENoaWxkTmFtZTsKLSAgICAgIHZhciBmaXJzdENoaWxkVmFsdWU7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ZG9jRnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgcGFyZW50
ID0gZG9jLmNyZWF0ZUVsZW1lbnQoInBhcmVudCIpOwotICAgICAgY2hpbGQgPSBkb2MuY3JlYXRl
RWxlbWVudCgiY2hpbGQiKTsKLSAgICAgIGNoaWxkc0F0dHIgPSBkb2MuY3JlYXRlQXR0cmlidXRl
KCJzdGF0ZSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZ2Ft
bWEiKTsKLSAgICAgIHRleHROb2RlID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXN0Iik7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gY2hpbGRzQXR0ci5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAg
YXR0ck5vZGUgPSBjaGlsZC5zZXRBdHRyaWJ1dGVOb2RlKGNoaWxkc0F0dHIpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGNoaWxkLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGRvY0ZyYWdtZW50LmFwcGVuZENoaWxkKHBhcmVudCk7Ci0gICAgICBhZG9wdGVkID0gZG9jLmFk
b3B0Tm9kZShkb2NGcmFnbWVudCk7Ci0gICAgICAKLQlpZigKLQkKLQkoYWRvcHRlZCAhPSBudWxs
KQotCi0JKSB7Ci0JcGFyZW50SW1wID0gYWRvcHRlZC5maXJzdENoaWxkOwotCi0gICAgICBjaGls
ZEltcCA9IHBhcmVudEltcC5maXJzdENoaWxkOwotCi0gICAgICBhdHRyaWJ1dGVzID0gY2hpbGRJ
bXAuYXR0cmlidXRlczsKLQotICAgICAgY2hpbGRBdHRySW1wID0gYXR0cmlidXRlcy5nZXROYW1l
ZEl0ZW0oInN0YXRlIik7Ci0gICAgICBmaXJzdENoaWxkID0gY2hpbGRBdHRySW1wLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImZpcnN0Q2hpbGROb3ROdWxsIixmaXJzdENoaWxk
KTsKLWZpcnN0Q2hpbGROYW1lID0gZmlyc3RDaGlsZC5ub2RlTmFtZTsKLQotICAgICAgZmlyc3RD
aGlsZFZhbHVlID0gZmlyc3RDaGlsZC5ub2RlVmFsdWU7Ci0KLSAgICAgIGZpcnN0Q2hpbGRUeXBl
ID0gZmlyc3RDaGlsZC5ub2RlVHlwZTsKLQotICAgICAgCi0JaWYoCi0JKDUgPT0gZmlyc3RDaGls
ZFR5cGUpCi0JKSB7Ci0JYXNzZXJ0RXF1YWxzKCJmaXJzdENoaWxkRW50M1JlZiIsImdhbW1hIixm
aXJzdENoaWxkTmFtZSk7Ci0gICAgICAgCi0JfQotCQotCQllbHNlIHsKLQkJCWFzc2VydEVxdWFs
cygiZG9jdW1lbnRhZG9wdG5vZGUxNiIsIlRleGFzIixmaXJzdENoaWxkVmFsdWUpOwotICAgICAg
IAotCQl9Ci0JCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9j
dW1lbnRhZG9wdG5vZGUxNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjZiYjlkZTFmYjkzOGIwNzk3NTMwZjExMzBjODcxODZlNzYzN2Qx
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAg
IGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdl
dCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMTYuanMiLz48c2NyaXB0IHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwv
c2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25n
Pk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8
c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4g
RGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEg
UmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZl
cmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENE
QVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0g
IDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+
Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0g
IDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0g
IDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9
Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IEly
dmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8v
d3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBP
Y29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1
cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAw
MDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRl
ciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwv
YWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNzM0NDFkNDMwMjE0
OTJmOTQzN2RmYjY2MGRjMGU0ZmEzNjM4MmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3Vt
ZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L2RvY3VtZW50cmVuYW1lbm9kZTI3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19OT1Rf
U1VQUE9SVEVEX0VSUl8xOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjczY2FjYmM2ODk2YzY2Y2EyMzMwMmY2YTIxYWI2
OWNlM2Q4NGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3Vt
ZW50cmVuYW1lbm9kZTI3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZh
ciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
dGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1
aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywg
YXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3Ro
ZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUg
ZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcg
dGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0
VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBj
cmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAv
LwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9j
c0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYg
KHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhp
cy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9j
IiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9
IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQot
Ly8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8g
ICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8v
ICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwK
LS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8g
ICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHRoZSBy
ZW5hbWVOb2RlIG1ldGhvZCB0byBhdHRlbXB0IHRvIHJlbmFtZSBuZXcgVGV4dCwgQ29tbWVudCwg
Q0RhdGFTZWN0aW9uLAotCVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgRW50aXR5UmVmZXJlbmNl
IG5vZGVzIG9mIGEgbmV3IERvY3VtZW50LgotCUNoZWNrIGlmIGEgTk9UX1NVUFBPUlRFRF9FUlIg
aXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3
L2NvcmUjRG9jdW1lbnQzLXJlbmFtZU5vZGUKLSovCi1mdW5jdGlvbiBkb2N1bWVudHJlbmFtZW5v
ZGUyNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgImRvY3VtZW50cmVuYW1lbm9kZTI3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBk
b2M7Ci0gICAgICB2YXIgbmV3RG9jOwotICAgICAgdmFyIGRvbUltcGw7Ci0gICAgICB2YXIgdGV4
dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBpOwot
ICAgICAgdmFyIGVudHJlZjsKLSAgICAgIHZhciByZW5hbWVkVHh0OwotICAgICAgdmFyIHJlbmFt
ZWRDb21tZW50OwotICAgICAgdmFyIHJlbmFtZWRDZGF0YTsKLSAgICAgIHZhciByZW5hbWVkUGk7
Ci0gICAgICB2YXIgcmVuYW1lZEVudFJlZjsKLSAgICAgIHZhciBudWxsRG9jVHlwZSA9IG51bGw7
Ci0KLSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIHJvb3ROUzsKLSAgICAgIHZhciByb290
TmFtZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5TID0gZG9j
RWxlbS5uYW1lc3BhY2VVUkk7Ci0KLSAgICAgIHJvb3ROYW1lID0gZG9jRWxlbS50YWdOYW1lOwot
Ci0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9tSW1wbC5j
cmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAgdGV4dCA9
IG5ld0RvYy5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOwotICAgICAgY29tbWVudCA9IG5ld0RvYy5j
cmVhdGVDb21tZW50KCJjb21tZW50Iik7Ci0gICAgICBjZGF0YSA9IG5ld0RvYy5jcmVhdGVDREFU
QVNlY3Rpb24oImNkYXRhIik7Ci0gICAgICBwaSA9IG5ld0RvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oInBpdCIsInBpZCIpOwotICAgICAgZW50cmVmID0gbmV3RG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0
cnkgewotICAgICAgICAgICAgcmVuYW1lZFR4dCA9IG5ld0RvYy5yZW5hbWVOb2RlKHRleHQsImh0
dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwidGV4dCIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJS
XzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAg
ICAgICAgICAgcmVuYW1lZENvbW1lbnQgPSBuZXdEb2MucmVuYW1lTm9kZShjb21tZW50LCJodHRw
Oi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNvbW1lbnQiKTsKLSAgICAgICAgfQotCQljYXRjaChl
eCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYg
ZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VS
Ul8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIHJlbmFtZWRDZGF0YSA9IG5ld0RvYy5yZW5hbWVOb2RlKGNkYXRhLCJodHRwOi8v
d3d3LnczLm9yZy9ET00vVGVzdCIsImNkYXRhIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsK
LSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNv
ZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJfMyIs
c3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAg
ICAgICByZW5hbWVkUGkgPSBuZXdEb2MucmVuYW1lTm9kZShwaSwiaHR0cDovL3d3dy53My5vcmcv
RE9NL1Rlc3QiLCJwaSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNz
ID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9
Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSXzQiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZEVu
dFJlZiA9IG5ld0RvYy5yZW5hbWVOb2RlKGVudHJlZiwiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rl
c3QiLCJlbnRyZWYiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9
ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQot
CQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl81IixzdWNjZXNzKTsKLQl9Ci0K
LX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50cmVuYW1lbm9kZTI3
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9j
dW1lbnRyZW5hbWVub2RlMjcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGRlNzgxMWI0MmRlMmM0NjdlNWEyYTYwZTE4MjkxZDJkMTA4ZjgzYzkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LnhodG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+
Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0
Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1
OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3
OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYj
OTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNU
RU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdy
dGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5t
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElF
RAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4K
LSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4K
LSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBp
cyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxT
Y2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhj
X3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0
bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iZG9jdW1lbnRyZW5hbWVub2RlMjcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLnhodG1sIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzhlNGU2NjQ2NmZiZGMxNDA3Njc1
NTM4N2E5YTM1ZjBmMWVhOTZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yMC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjIwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDI0MzczOGY2MGEwODg0
NjRkYWQ4NDgyN2VhNmMxNGViMDEzZjcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNgotU3RhdHVzCWZhaWx1cmUKLU1l
c3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
M2U4YjNmYWU4ODc5YTBhMzRkZjAxYjY0NWRjMzc2MGFiZTAyNzMxYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIGNvbXBhcmVEb2N1bWVu
dFBvc2l0aW9uIGNoZWNrIGlmIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBjb250YWlucyBhbmQg
cHJlY2VkZXMgaXQncyBmaXJzdAotCWNoaWxkRWxlbWVudCwgYW5kIHRoYXQgdGhlIGNoaWxkRWxl
bWVudCBpcyBjb250YWluZWQgYW5kIGZvbGxvd3MgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53
My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNv
bXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9u
KGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNiIpICE9IG51bGwpIHJldHVy
bjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxlbTsK
LSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFyIGVu
dFJlZlBvc2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0aW9uOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCShn
ZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIpID09IGZh
bHNlKQotCSkgewotCXZhckxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInZhciIpOwot
ICAgICAgdmFyRWxlbSA9IHZhckxpc3QuaXRlbSgyKTsKLSAgICAgIGFzc2VydE5vdE51bGwoInZh
ckVsZW1Ob3ROdWxsIix2YXJFbGVtKTsKLWVudFJlZiA9IHZhckVsZW0uZmlyc3RDaGlsZDsKLQot
ICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmTm90TnVsbCIsZW50UmVmKTsKLQotCX0KLQkKLQkJ
ZWxzZSB7Ci0JCQllbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0g
ICAgICAKLQkJfQotCWVudFJlZkNoaWxkMSA9IGVudFJlZi5maXJzdENoaWxkOwotCi0gICAgICBh
c3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50UmVm
UG9zaXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQxKTsK
LSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uSXNDb250YWlu
ZWRGb2xsb3dpbmcyNiIsMjAsZW50UmVmUG9zaXRpb24pOwotICAgICAgIGVudFJlZkNoaWxkMVBv
c2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZik7Ci0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbkNvbnRhaW5zUFJF
Q0VESU5HMjYiLDEwLGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAgICAKLX0KLQotCi0KLQot
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2KCk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGM3MzNlMGQwNjU4YmJmYmY0ZmE1MDgzZTBhMjM5NzMyYTQ0YzFl
OTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MjliNGNkODA1OGEzYzc1Y2E4MTJiNDI1Mjc1YjM2
ZjhlNDI5ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvbjI3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbnRSZWZDaGls
ZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LmpzIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWUxOWI3NjcwMmIzNGE5
ODVlODI0ZjgxZWFjYWFmM2VlNGJlMGY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IjsKLSAgIH0K
LQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8K
LS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJl
Zm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUg
YXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAg
ZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAg
ICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5
Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0v
LwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcn
OwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVp
bGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRl
Q29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAg
IAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNo
SW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxv
YWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91
cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVz
IGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRv
IGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gdG8gY2hl
Y2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGNvbnRhaW5zIGFuZCBwcmVjZWRlcyBpdCdz
IGxhc3QKLQljaGlsZEVsZW1lbnQsIGFuZCB0aGF0IHRoaXMgY2hpbGRFbGVtZW50IGlzIGNvbnRh
aW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUuCi0KLSogQGF1dGhvciBJ
Qk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0
L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtY29tcGFyZURvY3VtZW50
UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNygpIHsK
LSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBk
b2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZhciB2YXJFbGVtOwotICAgICAgdmFyIGVu
dFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0gICAgICB2YXIgZW50UmVmUG9zaXRpb247
Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRv
Y1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JKGdldEltcGxlbWVudGF0
aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIikgPT0gZmFsc2UpCi0JKSB7Ci0J
dmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidmFyIik7Ci0gICAgICB2YXJFbGVt
ID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgidmFyRWxlbU5vdE51bGwi
LHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxlbS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnRO
b3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRSZWYpOwotCi0JfQotCQotCQllbHNlIHsKLQkJCWVu
dFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIAotCQl9Ci0J
ZW50UmVmQ2hpbGQxID0gZW50UmVmLmxhc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgi
ZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQxKTsKLWVudFJlZlBvc2l0aW9uID0gZW50
UmVmLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZkNoaWxkMSk7Ci0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbklzQ29udGFpbmVkRm9sbG93aW5nMjci
LDIwLGVudFJlZlBvc2l0aW9uKTsKLSAgICAgICBlbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJl
ZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWYpOwotICAgICAgYXNzZXJ0RXF1
YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Db250YWluc1BSRUNFRElORyIsMTAsZW50
UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcoKTsKLX0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzFhYmUwMWJmOWJkODlkMWExZWFmNmVjYmMwMWIwOTNlNmViZmIxMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIg
Q0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRB
ICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElk
YXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEt
LSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48
dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvbjI4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzNkMzI0OWQ4NGJiM2MyNjE2NzVlM2U0ZThjYWQzNjI5OGEzZjg1YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjgKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFzc2Vy
dE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMmIyOGU4M2MzMDU0NGRhYWE4NDFmMTdmZDE1ZDdi
OGRiYzUyZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjI4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgiOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQlVc2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiBjaGVjayB0aGUgZG9jdW1lbnQgcG9z
aXRpb24gb2YgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGVudDQncwotCWZpcnN0IGNoaWxkIGFu
ZCBsYXN0IGNoaWxkLiAgSW52b2tlIGNvbXBhcmVEb2N1bWVudFBvc2l0b24gb24gZmlyc3QgY2hp
bGQgd2l0aCBsYXN0IGNoaWxkIGFzIGEgcGFyYW1ldGVyCi0Jc2hvdWxkIHJldHVybiBGT0xMT1dJ
TkcsIGFuZCBzaG91bGQgcmV0dXJuIFBSRUNFRElORyB2aWNlIHZlcnNhLgotCi0qIEBhdXRob3Ig
SUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1bWVu
dFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgoKSB7
Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJu
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIg
ZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxlbTsKLSAgICAgIHZhciBl
bnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFyIGVudFJlZkNoaWxkMjsK
LSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDJQ
b3NpdGlvbjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICAKLQlpZigKLQkoZ2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0
eVJlZmVyZW5jZXMiKSA9PSBmYWxzZSkKLQkpIHsKLQl2YXJMaXN0ID0gZG9jLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJ2YXIiKTsKLSAgICAgIHZhckVsZW0gPSB2YXJMaXN0Lml0ZW0oMik7Ci0gICAg
ICBhc3NlcnROb3ROdWxsKCJ2YXJFbGVtTm90TnVsbCIsdmFyRWxlbSk7Ci1lbnRSZWYgPSB2YXJF
bGVtLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZk5vdE51bGwiLGVu
dFJlZik7Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiZW50NCIpOwotICAgICAgCi0JCX0KLQllbnRSZWZDaGlsZDEgPSBlbnRSZWYuZmly
c3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50
UmVmQ2hpbGQxKTsKLWVudFJlZkNoaWxkMiA9IGVudFJlZi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFz
c2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7Ci1lbnRSZWZD
aGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRS
ZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b25Gb2xsb3dpbmcyOCIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgZW50UmVmQ2hp
bGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVm
Q2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
UFJFQ0VESU5HMjgiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgo
KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTI1MDgyOWYxMmMyOTZiNjE5NTZiODFmYzY2NjU4MmUzNjMy
MjllYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBb
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+
Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsi
PgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1
MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJ
U1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAg
ICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8
c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9z
cGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEg
I0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
OC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxl
dGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENv
bXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2Rl
PkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8
L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRB
U2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRB
W1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0
YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFs
bGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJv
Z2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgot
ICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0
PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVs
IERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywg
VGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cu
bmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9z
dHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAw
PC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9h
ZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJjYTc4MTdjODE0ODVlZWIxZmQ0YmU0Zjg1YmQx
ZWUyMTdmNDk2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjkKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJlZkNo
aWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkuanMg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkOWZkNDVmYTkxNWM0
ZjUyYTBjMDg3N2ExNmI5NWVhN2EyZDg5MTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkiOwotICAg
fQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0v
LwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsg
YmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVy
ZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAg
ICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8v
ICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRl
bHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4K
LS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmlu
Zyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBi
dWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVh
dGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAot
ICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAn
dW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAg
IGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
ICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0
Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBp
cyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMg
bG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9u
b3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0
dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3Qg
dG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLS8qKgotKiAKLQlDcmVhdGUgdHdvIGVudGl0eSByZWZlcmVuY2Ugbm9kZXMu
IFVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHRvIGNoZWNrIGlmIHRoZSBjaGlsZCBvZiB0
aGUgZmlyc3QgRW50aXR5IAotCVJlZiBub2RlIHByZWNlZGVzIHRoZSBjaGlsZCBvZiB0aGUgc2Vj
b25kIEVudGl0eSBSZWYgbm9kZSwgYW5kIHRoYXQgdGhlIGNoaWxkIG9mIHRoZSBzZWNvbmQgRW50
aXR5IFJlZiBub2RlCi0JZm9sbG93cyB0aGUgY2hpbGQgb2YgdGhlIGZpcnN0IEVudGl0eSBSZWYg
bm9kZS4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0
cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3Jl
I05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjkoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRp
YWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOSIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0VsZW07Ci0gICAgICB2YXIg
ZW50UmVmMTsKLSAgICAgIHZhciBlbnRSZWYyOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsKLSAg
ICAgIHZhciBlbnRSZWZDaGlsZDI7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0g
ICAgICB2YXIgZW50UmVmQ2hpbGQyUG9zaXRpb247Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBl
bnRSZWYxID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgZW50UmVm
MiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIGRvY0VsZW0gPSBk
b2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRWxlbS5hcHBl
bmRDaGlsZChlbnRSZWYxKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NFbGVtLmFwcGVuZENo
aWxkKGVudFJlZjIpOwotICAgICAgZW50UmVmQ2hpbGQxID0gZW50UmVmMS5maXJzdENoaWxkOwot
Ci0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEp
OwotZW50UmVmQ2hpbGQyID0gZW50UmVmMi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51
bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7Ci1lbnRSZWZDaGlsZDFQb3Np
dGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWZDaGlsZDIp
OwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Gb2xsb3dp
bmcyOSIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgZW50UmVmQ2hpbGQyUG9zaXRp
b24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQxKTsK
LSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uUFJFQ0VESU5H
MjkiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlv
biBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yOS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWEzZDJhOWI3MjExZDRkZjYzNWM0NjViYjU5NmQwNWJhOTEyYmIwYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkueGh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RF
U1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFRE
IFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVO
VElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFF
TlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJ
T04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAg
ICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6
eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0
YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+
Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1
cmUwNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3YTk1YTFm
NjJjZTE0NzQ4ZjM0NjA0MjA0YzczMjhiNzY5NDRiZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZWdldGZlYXR1cmUwNAotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxpbmUgMTAxOiBUeXBl
RXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0ZmVhdHVyZTA0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXRmZWF0dXJlMDQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ZjVkMjBmNzdi
ZmI5ZGNhMGExMGU4MGUxZGY1NWViZmIyM2M0ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXRmZWF0dXJlMDQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDIgKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAt
MTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5n
IHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24g
ZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBz
dGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBs
ZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdo
ZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdl
KCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8K
LSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2Vw
dGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAg
ICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVp
bGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlv
biBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0
cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBj
b21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93
cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotQ2hl
Y2sgaW1wbGVtZW50YXRpb24gb2YgTm9kZS5nZXRGZWF0dXJlIG9uIEVudGl0eVJlZmVyZW5jZS4K
LQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWdldEZlYXR1cmUKLSov
Ci1mdW5jdGlvbiBub2RlZ2V0ZmVhdHVyZTA0KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWdldGZlYXR1cmUwNCIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5vZGU7Ci0gICAgICB2YXIgbnVsbFZl
cnNpb24gPSBudWxsOwotCi0gICAgICB2YXIgZmVhdHVyZUltcGw7Ci0gICAgICB2YXIgaXNTdXBw
b3J0ZWQ7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAi
ZG9jIiwgImJhcmZvbyIpOwotICAgICAgZG9tSW1wbCA9IGRvYy5pbXBsZW1lbnRhdGlvbjsKLW5v
ZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBmZWF0dXJlSW1w
bCA9IG5vZGUuZ2V0RmVhdHVyZSgiQ29yZSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0U2Ft
ZSgiY29yZVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1mZWF0dXJlSW1w
bCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0U2Ft
ZSgiY09yRVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1mZWF0dXJlSW1w
bCA9IG5vZGUuZ2V0RmVhdHVyZSgiK2NPckUiLG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2VydFNh
bWUoIlBsdXNDb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJbXBsKTsKLWZlYXR1
cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJvcmcudzNjLmRvbXRzLmJvZ3VzLmZlYXR1cmUiLG51
bGxWZXJzaW9uKTsKLSAgICAgIGFzc2VydE51bGwoInVucmVjb2duaXplZEZlYXR1cmUiLGZlYXR1
cmVJbXBsKTsKLSAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsIjIuMCIp
OwotICAgICAgYXNzZXJ0U2FtZSgiQ29yZTIwIixub2RlLGZlYXR1cmVJbXBsKTsKLWZlYXR1cmVJ
bXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIiwiMy4wIik7Ci0gICAgICBhc3NlcnRTYW1lKCJD
b3JlMzAiLG5vZGUsZmVhdHVyZUltcGwpOwotaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVk
KCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJl
KCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0J
YXNzZXJ0U2FtZSgiWE1MVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlz
U3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiU1ZHIixudWxsVmVyc2lvbik7Ci0gICAgICBm
ZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZHIixudWxsVmVyc2lvbik7Ci0gICAgICAK
LQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIlNWR1Vuc3BlY2lmaWVkIixu
b2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQo
IkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJl
KCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewot
CWFzc2VydFNhbWUoIkhUTUxVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0J
aXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJFdmVudHMiLG51bGxWZXJzaW9uKTsKLSAg
ICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJFdmVudHMiLG51bGxWZXJzaW9uKTsK
LSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiRXZlbnRzVW5z
cGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5p
c1N1cHBvcnRlZCgiTFMiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5n
ZXRGZWF0dXJlKCJMUyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQK
LQkpIHsKLQlhc3NlcnRTYW1lKCJMU1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQot
CX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkxTLUFzeW5jIixudWxsVmVyc2lv
bik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiTFMtQXN5bmMiLG51bGxW
ZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgi
TFNBc3luY1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRl
ZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIlhQYXRoIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiWFBhdGgiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlm
KAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiWFBhdGhVbnNwZWNpZmllZCIsbm9k
ZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCIr
SFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUo
IkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0J
YXNzZXJ0Tm90TnVsbCgiUGx1c0hUTUxVbnNwZWNpZmllZCIsZmVhdHVyZUltcGwpOwotCi0JfQot
CWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiK1NWRyIsbnVsbFZlcnNpb24pOwotICAg
ICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIlNWRyIsbnVsbFZlcnNpb24pOwotICAg
ICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnROb3ROdWxsKCJQbHVzU1ZHVW5z
cGVjaWZpZWQiLGZlYXR1cmVJbXBsKTsKLQotCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgIG5vZGVnZXRmZWF0dXJlMDQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZDg1YzUzYzM4MjNiYjgxMWIxZTc0OTMzOWE1NTcz
YjI1NzA0NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBbCi08IUVOVElU
WSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50MiAnZm9vPGJyLz4nPgotPCFFTEVNRU5UIGh0bWwg
KGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0bWwgeG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci08IUVM
RU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+Ci08IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRBKT4K
LTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNyYyBDREFUQSAjSU1QTElFRAotICAgICB0eXBlIENE
QVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgdGl0
bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJvZHkgKHApPgotPCFBVFRMSVNUIGJvZHkgb25sb2Fk
IENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHAgKCNQQ0RBVEF8YnIpKj4KLTwhRUxFTUVOVCBi
ciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hvbGVUZXh0IHNhbXBsZTwvdGl0bGU+Ci08c2NyaXB0
IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdzZWxmeGh0bWwuanMnPjwvc2NyaXB0PjxzY3Jp
cHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdub2RlZ2V0ZmVh
dHVyZTA0LmpzJz48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD4KLTxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotPHA+YmFyPC9wPgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDljNWMyOWNkZDk5N2JhZTkxYmMwYzVhYjc5NDA1YjgwMTI2ODMzY2IuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1Ci1TdGF0dXMJZXJy
b3IKLU1lc3NhZ2UJTGluZSAxMjE6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LmpzIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTQ2N2EzYmM0MTYyMGQzOTBlYzdkNGQ1ZDkyMjhiODg0
MGM5MGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAx
LTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZv
cm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBS
ZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3
YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdo
dC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRo
YXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9m
IHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBs
ZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBzZXRJ
bXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUpOwot
Ci0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
ICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1
aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRp
b24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVz
dHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMg
Y29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxv
d3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlU
aGUgbWV0aG9kIGdldFRleHRDb250ZW50IHJldHVybnMgdGhlIHRleHQgY29udGVudCBvZiB0aGlz
IG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJbnZva2UgdGhlIG1ldGhvZCBnZXRUZXh0
Q29udGVudCBvbiBhIG5ldyBFbGVtZW50IG5vZGUgd2l0aCBuZXcgVGV4dCwgRW50aXR5UmVmZXJl
bmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29tbWVudCBub2RlcyBhbmQgY2hlY2sgaWYg
dGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAotCWNvbmNhdGVuYXRlZCBTdHJpbmcgd2l0
aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEK
LSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIw
MDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4dGNv
bnRlbnQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZh
ciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgY29tbWVu
dDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcGk7Ci0g
ICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAot
ICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAn
dW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAg
IGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9j
LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0i
KTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1l
bnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEgPSBkb2MuY3Jl
YXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNv
bW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsK
LSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIHRleHRDb250ZW50ID0g
ZWxlbS50ZXh0Q29udGVudDsKLQotICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0gICAg
ICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVudDE1IiwiVGV4dCDOskNEYXRhIix0ZXh0
Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBu
b2RlZ2V0dGV4dGNvbnRlbnQxNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LnhodG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmQzNmNiYTNjM2RhMDkwY2JhZDc3NDdkMGU4OTFjNWYy
NGI2OTQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS54aHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/
VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9E
VEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwh
RU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwh
RU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8
IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0g
ICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxu
czp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9Q
SXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElF
RD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVnZXR0ZXh0Y29udGVudDE1LmpzIi8+PHNjcmlwdCB0
eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0
KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAg
PHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29k
ZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0
aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+
TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50
aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGph
Y2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ry
b25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5
ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVy
by5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ry
b25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwv
c3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
Tm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJv
eCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0i
aHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25n
PkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+
Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxl
bT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+
Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5t
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMg
OTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjQxNDRk
MDVmZjA4ZDcyZThlOTg0YWExMTMxNTQ4NjRiODExYTRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNgotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxpbmUg
MTIzOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTQxZjdjODQxOWU4ZDExNTY0MjA4ODQ5NTg4NjhmYWFkNjE1NWQ5YS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwxMzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUg
V2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ks
IEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhl
bWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29y
ayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBp
biB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93
d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEy
MzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhl
IHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1
bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNiI7Ci0g
ICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0K
LS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29y
ayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRo
ZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAg
ICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwot
Ly8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlh
dGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0
LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5u
aW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50
IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNy
ZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1
dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRy
aWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBnZXRUZXh0
Q29udGVudCByZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhpcyBub2RlIGFuZCBpdHMgZGVz
Y2VuZGFudHMuCi0JCi0JSW52b2tlIHRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgb24gYSBuZXcg
RG9jdW1lbnRGcmFnbWVudCBub2RlIHdpdGggbmV3IFRleHQsIEVudGl0eVJlZmVyZW5jZXMgIAot
CUNEQVRBU2VjdGlvbiwgUEkgYW5kIENvbW1lbnQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZSB2YWx1
ZSByZXR1cm5lZCBpcyBhIHNpbmdsZSAKLQljb25jYXRlbmF0ZWQgU3RyaW5nIHdpdGggaXRzIGNv
bnRlbnQuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9kZWdldHRleHRjb250ZW50MTYo
KSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIs
ICJub2RlZ2V0dGV4dGNvbnRlbnQxNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwot
ICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7
Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVmOwot
ICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50Owot
ICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdt
ZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5v
cmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9k
ZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAi
KTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAg
ICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIp
OwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVs
ZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVu
ZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRh
KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVsZW0pOwotICAg
ICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0gICAgICB0ZXh0Q29udGVudCA9IGRvY0ZyYWcu
dGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50MTYi
LCJUZXh0IM6yQ0RhdGEiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE2KCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmZWZjMTVlYjRlZjAx
ZmIzZmVkMWNiZDg1ODY0ZTQ1NTkxZDFjZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAot
ICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEt
c3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBi
ZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBk
ZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRp
b24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUi
PgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5z
OmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAg
ICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jv
bnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFF
TlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVs
ZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFu
IHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAx
Li0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAg
IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0g
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBo
Y19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNo
YXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRjb250
ZW50MTYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBD
REFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtD
REFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRv
IGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7
IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1Q
MDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNv
bm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8v
d3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDM2YmViMzI3ZDgwZGVmMmM5NzllYjQ5MTFmYjM3NzcxMDMzMzIyY2EuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3Ci1TdGF0dXMJ
ZmFpbHVyZQotTWVzc2FnZQlub2RlZ2V0dGV4dGNvbnRlbnQxNzogYXNzZXJ0RXF1YWxzIGZhaWxl
ZCwgYWN0dWFsICwgZXhwZWN0ZWQgzrIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAyNGJhNjAxYTkxZmU1MTU4YThiMTMyN2M4MzMyMzhjZmI5YTU4NjEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBX
b3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBU
ZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNz
IGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVk
LiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGlj
ZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsx
XSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3
YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVu
dGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAot
ICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0g
MDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgp
IHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2gg
YXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2
ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0
aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkg
b2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0g
ICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZva2UgdGhlIG1ldGhvZCBnZXRU
ZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhbmQgY2hlY2sgaWYgdGhl
IAotCXZhbHVlIHJldHVybmVkIGlzIHRoZSBFbnRpdHlSZWZlcmVuY2UncyBjb250ZW50LgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4
dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4dGNvbnRlbnQxNygpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0
Y29udGVudDE3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZWxl
bTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIg
YXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50UmVm
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRDaGls
ZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIHRleHRDb250ZW50ID0gZW50UmVm
LnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVudDE3
IiwizrIiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcueGh0bWwgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3OWMyMmM0ZDFlNTg0ZGEwZGFmOWU4
MzZkYzQ1YzFhNjM0Mzk0ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElD
ICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0
ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0
NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5
NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFB
VFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENE
QVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAg
ICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50
NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0
YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENE
QVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0
bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhz
aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54
c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVU
Ri04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRjb250ZW50MTcuanMi
Lz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
eyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0
ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2Nv
dW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4K
LSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0
YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywg
JmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgot
IEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1
cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3Qu
Z292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25n
PgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3Vw
PgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIEly
dmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUx
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWlu
c2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Mzk3ZmE4MzEwZDM3ZGVlMDEwYmU1YzQ5MTc5MDY2NTE3ZThiMzFlMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEu
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTEx
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGE4YjllYzJjMjA0MGRiMTgyZDEx
YjZjMWRjODlkZmQ4MjQ1NDQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVm
b3JlMTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0
IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0
dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0g
Ci1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwg
Ci1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzND
w4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
Mi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBH
ZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRl
bnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAg
IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29y
ZS9ub2RlaW5zZXJ0YmVmb3JlMTEiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAg
ICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQot
ICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIs
IGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2Yg
Ci0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0v
LwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxl
dGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhl
Ci0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0KLQlV
c2luZyBpbnNlcnRCZWZvcmUgb24gYSBEb2N1bWVudEZyYWdtZW50IG5vZGUgYXR0ZW1wdCB0byBp
bnNlcnQgYSBjaGlsZCBub2RlcyBiZWZvcmUKLQlvdGhlciBwZXJtaXNzaWJsZSBub2RlcyBhbmQg
dmVyaWZ5IHRoZSBjb250ZW50cy9uYW1lIG9mIGVhY2ggaW5zZXJ0ZWQgbm9kZS4KLQotKiBAYXV0
aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcyNwot
Ki8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUxMSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAg
IGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxMSIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2
YXIgZWxlbTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIHR4
dDsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIGluc2VydGVk
OwotICAgICAgdmFyIGluc2VydGVkVmFsOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJh
ZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0
ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImJvZHkiKTsKLSAgICAg
IHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUYXJnZXQiLCJQSURhdGEi
KTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAg
dHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVh
dGVDREFUQVNlY3Rpb24oIkNEQVRBIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENo
aWxkKGVsZW0pOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQocGkp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZVJlZik7Ci0gICAgICBpbnNlcnRlZCA9IGRvY0Zy
YWcuaW5zZXJ0QmVmb3JlKGNvbW1lbnQscGkpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRl
ZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9Db21tZW50
IiwiQ29tbWVudCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNl
cnRCZWZvcmUodHh0LGNvbW1lbnQpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5kYXRh
OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9UZXh0IiwiVGV4dCIs
aW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUoY2Rh
dGEsdHh0KTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5zZXJ0ZWQuZGF0YTsKLQotICAgICAgYXNz
ZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfQ0RBVEEiLCJDREFUQSIsaW5zZXJ0ZWRWYWwp
OwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUoZVJlZixjZGF0YSk7Ci0g
ICAgICBpbnNlcnRlZFZhbCA9IGluc2VydGVkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVh
bHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9FbnQxIiwiYWxwaGEiLGluc2VydGVkVmFsKTsKLSAgICAg
ICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVpbnNlcnRiZWZvcmUx
MSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVpbnNlcnRiZWZvcmUxMS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDFhNGFhNjgzNzM4NWUwMDAzMzNkNmJjNWM0ODExODY3OTQ2YWQ1ZGQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcz
ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFE
T0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4i
Ci0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgot
ICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgot
ICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsi
PgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQ
VUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJu
b3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwot
ICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8
IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29t
bWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1h
LWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFm
ZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpz
Ii8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5v
ZGVpbnNlcnRiZWZvcmUxMS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVz
YS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUx
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFb
VGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50
MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9j
b2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2Vt
PgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBN
YW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1Mzwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+
Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAg
PGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsi
IGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRo
IFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVt
cDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4x
ODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwv
Ym9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWluc2VydGJlZm9yZTE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3MTQyZjNlNjM1NDc1MDdlZTVkYTJkZjM2ZWVkMTViNGNjMmZk
NTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1Ci1TdGF0
dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVpbnNlcnRiZWZvcmUxNS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdm
MzcxNmVhMTlkNGFmNzE3ZGI2NGExYjA2MzVlNDU5NTkwNWUzZTQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCww
IEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29y
dGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4g
UmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtl
aW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQot
Ci0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAg
ICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0
VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNSI7Ci0gICB9Ci0KLXZhciBk
b2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8v
ICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBj
b25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50
IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlz
IHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAg
ICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0
aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRy
eSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1h
eSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3Vy
ZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRl
ZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAg
ICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxp
emF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBv
biB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0
ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVk
IGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFu
Z2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVj
dXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotLyoqCi0qIAotCUEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHJhaXNlZCBpZiB0
aGUgbm9kZSBpcyByZWFkLW9ubHkuCi0JCi0JVXNpbmcgaW5zZXJ0QmVmb3JlIG9uIGEgbmV3IEVu
dGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gaW5zZXJ0IEVsZW1lbnQsIFRleHQsCi0JQ29t
bWVudCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZCBDREFUQVNlY3Rpb24gbm9kZXMgYmVmb3Jl
IGFuIGVsZW1lbnQgY2hpbGQKLQlhbmQgdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9X
RURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1h
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0y
MDA0MDQwNy9jb3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUx
NSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRl
ciwgIm5vZGVpbnNlcnRiZWZvcmUxNSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwot
ICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0Owot
ICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBwaTsKLSAgICAg
IHZhciBjZGF0YTsKLSAgICAgIHZhciBpbnNlcnRlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZWxlbUNoaWxkID0gZW50UmVmLmZpcnN0Q2hpbGQ7
Ci0KLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7
Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGlu
c2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjZGF0YSxlbGVtQ2hpbGQpOwotICAgICAgICB9
Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5k
ZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci1waSA9IGRvYy5jcmVhdGVQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIAotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5z
ZXJ0QmVmb3JlKHBpLGVsZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAg
IHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0g
Nyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJS
XzIiLHN1Y2Nlc3MpOwotCX0KLWNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIp
OwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBp
bnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoY29tbWVudCxlbGVtQ2hpbGQpOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci10eHQgPSBkb2MuY3Jl
YXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0
cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKHR4dCxlbGVt
Q2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVv
ZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2Vy
dFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl80IixzdWNjZXNzKTsKLQl9
Ci1lbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCIsImJvZHkiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAg
ICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKGVsZW0sZWxlbUNoaWxkKTsK
LSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29k
ZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0
aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0K
LQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlaW5zZXJ0YmVmb3JlMTUoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0
YmVmb3JlMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWlu
c2VydGJlZm9yZTE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjBkMDBi
OWNhMTYzNzFlZmMwMmY4ZTQwMWViNDVkODU3ZjQxZGMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBA
Ci08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBo
dG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInho
dG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5U
SVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5U
SVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwh
RU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJu
b3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24y
RmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAg
eG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1s
Ci0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAg
ICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNU
IHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVt
YmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAg
ICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5j
ZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxl
PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3Jp
cHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlaW5zZXJ0
YmVmb3JlMTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9
ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMg
YSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08
IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNl
IHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAg
PHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0
cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwv
Y29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4
NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBE
YWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRw
Oi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3Jk
aWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDFjMGUxNzU0ZjdhOTJjZmVlODk0MTkyOGI0ZWY2YjE3YjlhNzdmMWYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyCi1TdGF0dXMJU3VjY2Vzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTE4YTIyNzFlOGFjOWU4
NjliYzFmOWFmNWQxNzExNjM3ODk4Yjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVt
b3ZlY2hpbGQxMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1Db3B5
cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2Fj
aHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29y
dGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSku
IEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUg
aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdh
bC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAg
ICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVy
aSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewot
ICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
My9jb3JlL25vZGVyZW1vdmVjaGlsZDEyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAg
ICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0J
VGhlIG1ldGhvZCByZW1vdmVDaGlsZCByZW1vdmVzIHRoZSBjaGlsZCBub2RlIGluZGljYXRlZCBi
eSBvbGRDaGlsZCBmcm9tIHRoZSBsaXN0IAotCW9mIGNoaWxkcmVuLCBhbmQgcmV0dXJucyBpdC4g
Ci0KLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBEb2N1bWVudEZyYWdtZW50IG5vZGUgYXR0
ZW1wdCB0byByZW1vdmUgYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUuCi0gICAgICAgIEFsc28g
YXR0ZW1wdCB0byByZW1vdmUgdGhlIGRvY3VtZW50IGZyYWdtZW50IG5vZGUgZnJvbSB0aGUgRW50
aXR5UmVmZXJlbmNlLiAgVmVyaWZ5IHRoYXQgYSAKLSAgICAgICAgTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSIChFbnRpdHlSZWZlcmVuY2Ugbm9kZSBpcyByZWFkLW9ubHkpIG9yIGEgTk9UX0ZP
VU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGlt
YQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUt
MjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxk
MTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJub2RlcmVtb3ZlY2hpbGQxMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwot
ICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciByZW1vdmVkRVJl
ZjsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlbW92ZWRDaGlsZDsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NG
cmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVSZWYgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJh
Zy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92ZWRDaGlsZCA9IGRvY0ZyYWcucmVtb3Zl
Q2hpbGQoZVJlZik7Ci0gICAgICByZW1vdmVkRVJlZiA9IGRvY0ZyYWcuZmlyc3RDaGlsZDsKLQot
ICAgICAgYXNzZXJ0TnVsbCgibm9kZXJlbW92ZWNoaWxkMTIiLHJlbW92ZWRFUmVmKTsKLSAgICAK
LSAgICAgIHRyeSB7Ci0gICAgICByZW1vdmVkQ2hpbGQgPSBlUmVmLnJlbW92ZUNoaWxkKGRvY0Zy
YWcpOwotICAgICAgCi0gICAgICB9IGNhdGNoIChleCkgewotCQkgIGlmICh0eXBlb2YoZXguY29k
ZSkgIT0gJ3VuZGVmaW5lZCcpIHsgICAgICAKLSAgICAgICBzd2l0Y2goZXguY29kZSkgewotICAg
ICAgIGNhc2UgLyogTk9UX0ZPVU5EX0VSUiAqLyA4IDoKLSAgICAgICBicmVhazsKLSAgICAgIGNh
c2UgLyogTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSICovIDcgOgotICAgICAgIGJyZWFrOwot
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgdGhyb3cgZXg7Ci0gICAgICAgICAgfQotICAg
ICAgIH0gZWxzZSB7IAotICAgICAgIHRocm93IGV4OwotICAgICAgICB9Ci0gICAgICAgICB9Ci0g
ICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlbW92ZWNo
aWxkMTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzM2ZWQ5MmYwM2JhNTRhZWM4MjdkYjc4NGY2MDU2ZDkyMzQ5NDk0Zi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwh
RE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VO
IgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4K
LSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4K
LSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7
Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEg
UFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAi
bm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcK
LSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0g
ICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAg
PCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNv
bW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt
YS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3Rh
ZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5q
cyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJu
b2RlcmVtb3ZlY2hpbGQxMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVz
YS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUx
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFb
VGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50
MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9j
b2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2Vt
PgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBN
YW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1Mzwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+
Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAg
PGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsi
IGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRo
IFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVt
cDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4x
ODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwv
Ym9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTZlNTZhNmM2YTA2MzIwMDg2NTE1MGZkZTg4YzgzZjk0ZjUyYTRh
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMKLVN0YXR1cwlm
YWlsdXJlCi1NZXNzYWdlCXR4dE5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMu
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjODBmZmI0YTY1MmQ5MDJkYTJkMmRm
ZjUxNzY4NjdmZTk2MmYzZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDEzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDD
gsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRz
IEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAot
Zm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAot
UmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OC
wq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIv
Y29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0
cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50
aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICBy
ZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBk
b2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAg
IH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4
KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
Ci0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0v
LyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwot
Ly8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVk
LAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0v
LyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZW1v
dmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSB0
aGUgZmlyc3QgY2hpbGQgCi0Jb2YgdGhpcyBub2RlIGFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3Ig
TmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2
ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5vZGVy
ZW1vdmVjaGlsZDEzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTMiKSAhPSBudWxsKSByZXR1cm47Ci0gICAg
dmFyIGRvYzsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciByZW1v
dmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgdHh0
ID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJ0eHROb3ROdWxsIix0
eHQpOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW1v
dmVkID0gZVJlZi5yZW1vdmVDaGlsZCh0eHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0g
ICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2Rl
ID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBub2RlcmVtb3ZlY2hpbGQxMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3MTMxN2E0NjNlMTllOTZkOWMxMjU0Njc5ZmI1NzVlN2I5ZmMwNTVk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy54aHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlM
RSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFs
cGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdh
bW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBl
cHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRp
ciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQ
SWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIv
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2ph
dmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Njcmlw
dD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJn
YXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41
NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxh
cywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5v
bGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNl
IG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNl
Y3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29k
ZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1
NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcs
IHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5h
bHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5v
cjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9l
bT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3Bl
Y2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9u
eW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjM1YmY0ZGZkYjAwZTI1ZTA4MThiMTZk
MGQwY2FhNTg5NWY3OTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQx
NC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxNAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcGlOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZh
aWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZW1vdmVjaGlsZDE0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZW1vdmVjaGlsZDE0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2Q1YTE5MzNl
ZTk3NjVhMjljNTc1YmNiNWYwZjU5ZGQxYWZlZWExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVtb3ZlY2hpbGQxNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0KLS8q
Ci1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0o
TWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2gg
Q29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVy
c2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
Ci10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1
bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8q
KgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0
dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJ
KCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJv
cihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21w
bGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRV
cFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQg
aGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2gg
YWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSog
Ci0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1w
dCB0byByZW1vdmUgaXRzIGxhc3QgUHJvY2Vzc2luZ0luc3RydWN0aW9uIAotCWNoaWxkIG5vZGUg
YW5kIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24uCi0K
LSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0
ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxkMTQoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQx
NCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHJlbW92ZWQ7Ci0g
ICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBlbnROYW1lOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYgPSBk
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICBwaSA9IGVSZWYubGFzdENo
aWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJwaU5vdE51bGwiLHBpKTsKLQotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVtb3ZlZCA9IGVSZWYucmVtb3Zl
Q2hpbGQocGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0J
fQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hpbGQx
NCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE0LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDg0ZjdkNzQ1ZWZkMjdjNDZlZDg1NzVmNjc3ZDgyZjA4NzY0MzZlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICsw
LDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NU
WVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0g
ICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAg
PCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAg
PCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJM
SUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3Rh
dGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAg
ICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAj
SU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFU
VExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFU
VExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVu
dCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
JwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWlu
c3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwv
dGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+
PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVy
ZW1vdmVjaGlsZDE0LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlz
IGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11d
PgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVy
ZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+
Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0g
IDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFn
ZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9
Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9h
ZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0i
aHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2Jl
cnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAg
PHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEg
Tm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4MDJlMGMyYmE4YmY4ZWNhNjFhODUyZjk1NmYwYzgxZDViYjhjOTIwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNQotU3RhdHVzCWZhaWx1
cmUKLU1lc3NhZ2UJZWxlbU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUuanMg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzYjNmN2NjOGUwODExYmI4MGIzZTdiNGNh
OTkwNDlkZDA5NWM3ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKp
IDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIElu
c3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9y
IEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmln
aHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4g
U29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29w
eXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBV
UkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZp
ZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1
cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZXJlbW92ZWNoaWxkMTUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFy
IGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0
aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3Vp
dGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBh
c3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhl
cndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBl
eGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0
aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRV
cFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNy
ZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8v
Ci0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2Nz
TG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0g
Y2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsK
LSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0v
LwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAg
ICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8g
ICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAot
Ly8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAg
ICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxl
dGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZW1vdmVD
aGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBhbiBF
bGVtZW50IGNoaWxkIAotCWFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9F
UlIgaXMgdGhyb3duLiAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlvbiBub2RlcmVtb3ZlY2hpbGQxNSgp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVyZW1vdmVjaGlsZDE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAg
ICB2YXIgZVJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudE5hbWU7Ci0gICAgICB2
YXIgcmVtb3ZlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAg
ICAgZWxlbSA9IGVSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZWxlbU5v
dE51bGwiLGVsZW0pOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAg
ICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZChlbGVtKTsKLSAgICAgICAgfQotCQljYXRj
aChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcg
JiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTUoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS54aHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE0ODYyN2E1YzExYmUyNjdlMGRjYTM0ZDA1OGI4
NGRiOTA1MmM1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxNS5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDlmODQxODhkZjFh
MDFkOTRlMDNiYzUyNDc2NzUxYjMyOTEyMTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDE4Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTguanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMGI2NzJiYzQ4ZDlhN2M1NjA5YzY2ZjY4ZmI5YzBjMWE5
MjI0OGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQxOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBv
biBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYSBDREFUQVNlY3Rp
b24gbm9kZSB3aXRoIAotCWEgRW50aXR5UmVmZXJlbmNlIGFuZCB2aWNlIHZlcnNhIHZlcmlmeSB0
aGUgZGF0YSBvZiB0aGUgcmVwbGFjZWQgbm9kZXMuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhv
ciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1M
ZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2Rl
cmVwbGFjZWNoaWxkMTgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxp
emF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMTgiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAg
IHZhciBjZGF0YTsKLSAgICAgIHZhciByZXBsYWNlZENEYXRhOwotICAgICAgdmFyIHJlcGxhY2Vk
RXJlZjsKLSAgICAgIHZhciBjZGF0YU5hbWU7Ci0gICAgICB2YXIgZXJlZk5hbWU7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsK
LSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7Ci0g
ICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIHJlcGxhY2VkQ0Rh
dGEgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChlbnRSZWYsY2RhdGEpOwotICAgICAgY2RhdGFOYW1l
ID0gcmVwbGFjZWRDRGF0YS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJl
cGxhY2VjaGlsZDE4XzEiLCJDREFUQVNlY3Rpb24iLGNkYXRhTmFtZSk7Ci0gICAgICAgcmVwbGFj
ZWRFcmVmID0gZG9jRnJhZy5yZXBsYWNlQ2hpbGQoY2RhdGEsZW50UmVmKTsKLSAgICAgIGVyZWZO
YW1lID0gcmVwbGFjZWRFcmVmLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVy
ZXBsYWNlY2hpbGQxOF8yIiwiYWxwaGEiLGVyZWZOYW1lKTsKLSAgICAgICAKLX0KLQotCi0KLQot
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQxOCgpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQx
OC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMTgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkNzY3YjllYWY4NGUy
YWNlZDMxY2E1OWNmYTM5MTQzNmQzYzJlM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQxOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAg
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0
cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0
YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVs
dGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9u
MUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4K
LSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpk
bXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAg
ICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255
bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5U
SVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVt
ZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4
bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4t
LT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4
bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNf
c3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFy
c2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQx
OC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxl
dGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENv
bXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2Rl
PkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8
L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRB
U2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRB
W1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0
YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFs
bGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJv
Z2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgot
ICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0
PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVs
IERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywg
VGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cu
bmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9z
dHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAw
PC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9h
ZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDE5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhOGEyZDM2MWU5MTA2ZDRkMWQ4MGU1MTJiY2RlYzU4MGIzYjBlNzQ4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5Ci1TdGF0dXMJU3VjY2VzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQxOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMTkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiOWExN2RmOTdmNDNkMDM1
MmYzYmQ4YWQxYzVjOTM0MDhmMzViMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQxOS5qcworKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0KLS8qCi1Db3B5
cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2Fj
aHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29y
dGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSku
IEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUg
aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdh
bC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAg
ICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVy
aSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewot
ICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEw
MDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMg
Y2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0
aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4
Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3Rh
cnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0
ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVu
IGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgp
IHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0g
ICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRp
b24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0K
LSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRv
Y1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAg
ICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVp
bGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlv
biBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0
cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBj
b21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93
cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVz
aW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRvIHJl
cGxhY2UgYW4gRWxlbWVudCBub2RlIHdpdGggCi0JaXRzIEVudGl0eVJlZmVyZW5jZSBjaGlsZCB2
ZXJpZnkgdGhlIG5vZGVOYW1lIG9mIHRoZSByZXBsYWNlZCBub2RlLgotCi0qIEBhdXRob3IgSUJN
Ci0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0
L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVu
Y3Rpb24gbm9kZXJlcGxhY2VjaGlsZDE5KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDE5IikgIT0gbnVsbCkg
cmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBlbnRS
ZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBub2Rl
TmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVh
dGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5h
cHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5k
Q2hpbGQoZWxlbSk7Ci0gICAgICByZXBsYWNlZCA9IGRvY0ZyYWcucmVwbGFjZUNoaWxkKGVudFJl
ZixlbGVtKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFz
c2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE5IiwiZG9tMzpwIixub2RlTmFtZSk7Ci0gICAg
ICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxk
MTkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMTkueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzMjViMmNiM2IzYmU3MGVkNzk0YmUxZjAyMDMwYjM2ZDE5MzQ3M2U3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwh
RE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VO
IgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4K
LSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4K
LSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7
Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEg
UFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAi
bm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcK
LSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0g
ICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAg
PCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNv
bW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt
YS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3Rh
ZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5q
cyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJu
b2RlcmVwbGFjZWNoaWxkMTkuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9k
eSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51
c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwv
c3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1
MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+
Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRB
W1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVu
dDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEg
cmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwv
Y29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9l
bT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQg
TWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20i
PgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0g
IDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7
IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0
aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpl
bXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25n
PlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2Rl
PgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08
L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxZGFmMmZlZjM1ZWRiMzczOTVmNDQ5NzNjODgxNTUyMjZi
YjdiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMgotU3Rh
dHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
ZDNmNDIzZjczNWYzZjFiMjVjYTVlNGNiMzYwODI1NjMwM2E3NDVhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAs
MCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNv
cnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFu
IFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBL
ZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0
cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1o
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3Jn
L0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0K
LQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0g
ICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdl
dFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIiOwotICAgfQotCi12YXIg
ZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0v
LyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8g
Y29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVu
dCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBp
cyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAg
ICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5j
dGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0
cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBt
YXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1
cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2Fk
ZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAg
ICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFs
aXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQg
b24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFy
dGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRl
ZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hh
bmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhl
Y3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNl
IG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGFuIEVudGl0eVJlZmVyZW5jZSBub2RlIHdpdGggCi0J
aXRzIEVsZW1lbnQgcGFyZW50LCB3aXRoIGl0c2VsZiBhbmQgdmljZSB2ZXJzYSB2ZXJpZnkgaWYg
YSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJN
Ci0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0
L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVu
Y3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDIyIikgIT0gbnVsbCkg
cmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmTWFpbjsKLSAgICAgIHZhciBl
bnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAg
dmFyIHJlcGxhY2VkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZk1haW4gPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5k
Q2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVwbGFjZWRDaGlsZCA9IGVudFJlZk1haW4ucmVwbGFjZUNoaWxkKGVsZW0s
ZW50UmVmKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBl
b2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3Nl
cnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMSIsc3VjY2Vzcyk7Ci0J
fQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNl
ZENoaWxkID0gZW50UmVmTWFpbi5yZXBsYWNlQ2hpbGQoZW50UmVmLGVsZW0pOwotICAgICAgICB9
Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5k
ZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3Mg
PSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkQ2hpbGQgPSBlbnRSZWZNYWlu
LnJlcGxhY2VDaGlsZChlbnRSZWZNYWluLGVudFJlZik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgp
IHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4
LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDIyKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi54aHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YzMjU0ZTJjYWJhMzJiYjQwNTNkNzQ2NDljYzlm
YTgzMDFhZWQwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLnho
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+
PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0Mv
L0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAg
PCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAg
PCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAg
IDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAK
LSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBM
SUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIg
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHht
bG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4g
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48
P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBM
SUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDov
L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFk
PjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFy
c2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDIyLmpzIi8+PHNjcmlwdCB0
eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0
KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAg
PHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29k
ZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0
aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+
TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50
aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGph
Y2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ry
b25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5
ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVy
by5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ry
b25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwv
c3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
Tm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJv
eCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0i
aHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25n
PkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+
Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxl
bT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+
Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5t
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMg
OTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQy
My1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxOGI3N2IzOGUz
YmMxYzM3YWJhZjY2ZGNhZWFjMGQ5NGFlYjQ5ZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAg
QEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMjMKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMzMWFmYzlkYzdlNTQwM2E4NWNmNDc1NGQ4NmJmYzRl
ZDJlNmExOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEt
MjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0
ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9y
bWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJl
c2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdh
cmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
Ci0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0
LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhh
dCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2Yg
dGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDIzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWls
ZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRl
c3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgot
Ly8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNo
cm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNl
LCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0
aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJv
ZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdl
U3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVz
IHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAg
ICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxk
IG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhbiBFbGVt
ZW50LCBUZXh0LAotCUNvbW1lbnQsIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgQ0RBVEFTZWN0
aW9uIG5vZGVzIHdpdGggZWFjaCBvdGhlciBhbmQgaW4gZWFjaCBjYXNlCi0JdmVyaWZ5IGlmIGEg
Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0
aW9uIG5vZGVyZXBsYWNlY2hpbGQyMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQyMyIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0eHQ7Ci0g
ICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIHBpOwotICAgICAg
dmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
LCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRl
bHRhIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIGNv
bW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAgY2RhdGEgPSBkb2Mu
Y3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0
ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBl
bGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRD
aGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBp
KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAg
IAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQg
PSBlbnRSZWYucmVwbGFjZUNoaWxkKGNkYXRhLGVsZW0pOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJ
dHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChwaSxjZGF0
YSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4
LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1
ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0KLQot
CXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQgPSBl
bnRSZWYucmVwbGFjZUNoaWxkKGNvbW1lbnQscGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZCh0eHQsY29tbWVu
dCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4
LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1
ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzQiLHN1Y2Nlc3MpOwotCX0KLQot
CXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQgPSBl
bnRSZWYucmVwbGFjZUNoaWxkKGVsZW0sdHh0KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewot
ICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29k
ZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICBub2RlcmVwbGFjZWNoaWxkMjMoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0bWwgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLnhodG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNThhMWQyNTE2M2ZkNWEzZmJhYzdkMTAxNDkzZDRhNTcx
YWViMTdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RF
U1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFRE
IFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVO
VElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFF
TlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJ
T04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAg
ICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6
eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0
YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+
Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMjMuanMiLz48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ry
b25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgot
ICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2
ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0
aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlS
ZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50
IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNv
bSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+
Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+
Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIg
aWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3
IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRw
Oi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVu
eSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAg
PHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVN
UDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21w
dXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDlmODNlNzRiOTI2NzMz
MWMxNzAzYmQyOGQxNmVmYzIxZjQ2ZmIwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAot
VGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzNzM1OGY5MzQ3MjYzYjgyN2E4ZTg4ODEzZTdhZTM3YzBiNzYz
MmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0
IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRp
Y3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2
ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBM
aWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29m
dHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlk
ZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0
Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzAiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0g
MDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgp
IHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2gg
YXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2
ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0
aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkg
b2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0g
ICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0KLQlVc2luZyByZXBsYWNlQ2hp
bGQgb24gYW4gRWxlbWVudCBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhIG5ldyBFbGVtZW50IGNo
aWxkIG5vZGUgd2l0aCAKLQluZXcgY2hpbGQgbm9kZXMgYW5kIHZpY2UgdmVyc2EgYW5kIGluIGVh
Y2ggY2FzZSB2ZXJpZnkgdGhlIG5hbWUgb2YgdGhlIHJlcGxhY2VkIG5vZGUuCi0KLSogQGF1dGhv
ciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RS
LzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSov
Ci1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzAoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBp
ZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzAiKSAhPSBu
dWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIg
b2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3RWxlbWVudDsKLSAgICAgIHZhciBuZXdUZXh0OwotICAg
ICAgdmFyIG5ld0NvbW1lbnQ7Ci0gICAgICB2YXIgbmV3UEk7Ci0gICAgICB2YXIgbmV3Q2RhdGE7
Ci0gICAgICB2YXIgbmV3RVJlZjsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBub2Rl
TmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVFbGVtZW50
TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpodG1sIik7Ci0gICAgICBv
bGRDaGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiLCJ4aHRtbDpoZWFkIik7Ci0gICAgICBuZXdFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnRO
UygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1sOmJvZHkiKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdFbGVtZW50KTsKLSAgICAgIG5ld1RleHQg
PSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJl
bnQuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBuZXdDb21tZW50ID0gZG9jLmNyZWF0ZUNv
bW1lbnQoIkNvbW1lbnQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hp
bGQobmV3Q29tbWVudCk7Ci0gICAgICBuZXdQSSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBw
ZW5kQ2hpbGQobmV3UEkpOwotICAgICAgbmV3Q2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9u
KCJDZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdD
ZGF0YSk7Ci0gICAgICBuZXdFUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEi
KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3RVJlZik7Ci0g
ICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3RWxlbWVudCxvbGRDaGlsZCk7
Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVh
bHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8xIiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAgICAg
IHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdFbGVtZW50KTsKLSAg
ICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygi
bm9kZXJlcGxhY2VjaGlsZDMwXzIiLCJ4aHRtbDpib2R5Iixub2RlTmFtZSk7Ci0gICAgICAgcmVw
bGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld1RleHQsb2xkQ2hpbGQpOwotICAgICAgbm9k
ZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVw
bGFjZWNoaWxkMzBfMyIsInhodG1sOmhlYWQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9
IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3VGV4dCk7Ci0gICAgICBub2RlTmFtZSA9
IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hp
bGQzMF80IiwiI3RleHQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBs
YWNlQ2hpbGQobmV3Q29tbWVudCxvbGRDaGlsZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2Vk
Lm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF81Iiwi
eGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VD
aGlsZChvbGRDaGlsZCxuZXdDb21tZW50KTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9k
ZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzYiLCIjY29t
bWVudCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChv
bGRDaGlsZCxuZXdQSSk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF83IiwidGFyZ2V0Iixub2RlTmFt
ZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5ld0Nk
YXRhKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2Vy
dEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzgiLCIjY2RhdGEtc2VjdGlvbiIsbm9kZU5hbWUp
OwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdFUmVm
KTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVx
dWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzkiLCJkZWx0YSIsbm9kZU5hbWUpOwotICAgICAgIAot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDMwKCk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDMwLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzMC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Ri
NWNiYjEzM2ZhYWYyZWI0ZjEwNDNkMjFmYzQzNTA4YjdkYzdlMy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZ
UEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAg
ICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8
IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8
IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJ
QyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0
aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAg
ICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
aHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAg
ICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRU
TElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
Ci0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5z
dGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJl
cGxhY2VjaGlsZDMwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlz
IGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11d
PgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVy
ZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+
Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0g
IDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFn
ZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9
Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9h
ZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0i
aHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2Jl
cnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAg
PHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEg
Tm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDIzM2Y5MjkzMzU4MmE3MDU0MjYxNWQxMjUwYTQ5MTBhNzQ5M2QwYTQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMKLVN0YXR1cwlT
dWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDMzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc0YmU0
NGQ0YjBhNzcxY2I3OTIwNDM2YzdhM2MyZDhhNjIxNjRiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAgQEAK
LQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVt
LCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNl
YXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBV
bml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25z
b3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQot
ICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICog
IEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJn
ZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzIjsKLSAgIH0KLQotdmFyIGRvY3NM
b2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAg
ICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZp
Z3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9h
ZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0
IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAg
cmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24g
c2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsK
LSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRo
cm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1
aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9
IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlm
IChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRp
b25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBp
biBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9j
dW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQg
d2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVk
LgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0v
KioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgZGVmYXVsdCBBdHRyIG5vZGUgdG8gcmVw
bGFjZSBpdHMgVGV4dCBDaGlsZCB3aXRoIGEgCi0JbmV3IEVudGl0eVJlZmVyZW5jZSBOb2RlIGFu
ZCB2ZXJpZnkgdGhlIHZhbHVlIG9mIHRoZSByZXBsYWNlZCBjaGlsZC4KLQotKiBAYXV0aG9yIElC
TQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1
bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzMyIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZhciBl
bGVtOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBu
ZXdDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgbmV3Q2hp
bGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY2hpbGRMaXN0
ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7Ci0gICAgICBlbGVtID0gY2hpbGRMaXN0
Lml0ZW0oMyk7Ci0gICAgICBwYXJlbnQgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoImRpciIpOwot
ICAgICAgb2xkQ2hpbGQgPSBwYXJlbnQubGFzdENoaWxkOwotCi0gICAgICByZXBsYWNlZCA9IHBh
cmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVlID0g
cmVwbGFjZWQubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hp
bGQzMyIsInJ0bCIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMueGh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3OTkwYzE1ODA2NTU1ZWRlY2QxNWYzMjEw
MWE4Y2ZhMjQ2M2E2N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
My54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEu
MCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8v
VzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsK
LSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4K
LSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+
Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUw
OyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElT
VCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAj
SU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpl
bXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAg
ICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxz
cGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3Nw
YW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAj
SU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48
aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg
Y2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzMy5qcyIvPjxzY3Jp
cHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0
VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+
Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8
L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAg
Tm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ry
b25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRo
IEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4g
YWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7
Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5l
dHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8
L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCww
MDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5Q
TyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0
cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9j
b2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgot
ICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxj
b2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2
YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzVlZTRk
NTg2Y2YwMDk4NmM5MDFlZWQ0ZjE0Yzk0NzNiYzczZWJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiAr
MCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC5qcyBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNGEzNWEwMWVhNGUzZThmYmE5YzA5MzIxYTJm
ODA0ODgyZTViZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzNCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIg
YnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRo
ZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0
ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFz
eW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVy
d2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4
Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRo
ZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVw
UGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3Jl
YXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8K
LSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NM
b2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBj
YXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8v
Ci0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAg
ICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAg
IFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0v
LyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAg
ICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VD
aGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcmVuY2Ug
Q2hpbGQgd2l0aCBhIAotCW5ldyBUZXh0IE5vZGUgYW5kIHZlcmlmeSB0aGUgdmFsdWUgb2YgdGhl
IG5ldyBjaGlsZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQw
Ny9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNCgpIHsK
LSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5v
ZGVyZXBsYWNlY2hpbGQzNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsKLSAg
ICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIHZhciBy
ZXBsYWNlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3Jn
L1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFy
ZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRl
eHROb2RlKCJUZXh0Iik7Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3
Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVlID0gcGFyZW50LnZhbHVlOwotCi0gICAg
ICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzNCIsIlRleHQiLG5vZGVWYWx1ZSk7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNo
aWxkMzQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzMDY5YmIwMzgwZDE1ZGNlMzVhY2E4NTBhNTgzNjJiNGQxYjZjMmI5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVwbGFjZWNoaWxkMzQuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUxYzk4OGY2NGZjOTgzMjM1ODcyOGMxMDM3NWE3Mjk2
YTA3NzZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNQot
U3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxYmFlODY3YTVlZjJiYjdkY2E5MWViNzI3ZjJkYzU1YzYwODExOWIzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgQXR0ciBub2RlLCBy
ZXBsYWNlIGl0cyBuZXcgRW50aXR5UmVmZXJuZWNlIENoaWxkIHdpdGggYSAKLQluZXcgQXR0ciBO
b2RlIGFuZCB2ZXJpZnkgaWYgYSBISUVSQVJDSFlfUkVRVUVTVF9FUlIgaXMgdGhyb3duLgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3
MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDM1KCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDM1
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgcGFyZW50OwotICAg
ICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVWYWx1
ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9
IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNw
YWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQo
b2xkQ2hpbGQpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6
Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICAKLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gcGFy
ZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gMyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfSElFUkFSQ0hZX1JFUVVF
U1RfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIG5vZGVyZXBsYWNlY2hpbGQzNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRtbCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNjcyMWNkOTRmMTVlMjZjZmU1YWNmODM1NDIzZmZkNmQ2
OTg4YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNS5qcyIvPjxzY3JpcHQgdHlwZT0n
dGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9
PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJv
bmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0g
IDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZl
LiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRo
YSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJl
ZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4K
LSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29t
Ij4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4K
LSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4K
LSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBp
ZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcg
SXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6
Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55
IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8
c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4
PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTk5ZTAxNjExOWJjYjkw
NDEyNDkzYzcyZjEwZWFmMTg3M2M0NzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1U
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDM2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcyBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGZlYTIyNWJlZWYyZmEzOGVlYzk1ZTAwOGUxMmI2Nzk1NzZjMGE0
YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcworKysgL2Rl
di9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQg
V29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2Yg
VGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGlj
cyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZl
ZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExp
Y2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1b
MV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0
d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRl
bnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QK
LSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAw
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkg
ewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRo
aXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBh
c3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZl
cnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRo
ZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBv
ZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAg
ICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBh
IG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcm5lY2Ugbm9kZSB3aXRo
IGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5IGlmIGEgTk9UX0ZPVU5EX0VSUiBpcyB0aHJv
d24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJ
RC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzYoKSB7Ci0gICB2YXIg
c3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFj
ZWNoaWxkMzYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBwYXJl
bnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0gICAgICB2YXIg
bm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1
dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciKTsK
LSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAg
ICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICAKLQl7Ci0J
CXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gcGFyZW50
LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgp
IHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4
LmNvZGUgPT0gOCk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX0ZPVU5EX0VSUiIsc3Vj
Y2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVw
bGFjZWNoaWxkMzYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjYWE4ODBiMDcyYTM1Nzg0MDFmYjFiZWVmZDdhMjRhNmFjMTg4MGM0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElE
QVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAi
JiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxv
biAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24y
IFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RB
VEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1s
bnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4K
LSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJ
TVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRh
Pz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBU
aGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0
bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNl
bGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0
IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBU
ZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMK
LTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVt
YmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlv
biB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNl
Y3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5F
TVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRl
cGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVu
dDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4
YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2
aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9z
dHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgot
ICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFs
aXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4K
LSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjMWFhNWJmODg5ZDI1NjZhYTM1M2IwOWM0
NDFhYTc3YTBiZjZhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhyb3dfV1JPTkdfRE9DVU1FTlRfRVJSOiBh
c3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRmZDAyNjQ0MTNkYjc2NmJiNGFmZjIwNjM0YTk4N2MzOTIxNzQ0ODkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEz
OCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIg
Q29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVy
b3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRp
Y3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlz
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRo
ZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53
My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQot
Ki8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVz
dC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rp
b24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNyI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
c0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAK
LSAgICAgIHZhciBkb2MyUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MyKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2MyUmVmID0gdGhpcy5kb2MyOwotICAgICAgfQot
ICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvYzJSZWYsICJkb2MyIiwgImhjX3N0YWZmIik7
Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDIpIHsKLSAgICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0g
ICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBt
ZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNo
cm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBz
eW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBh
Z2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRo
ZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlm
ICgrK2RvY3NMb2FkZWQgPT0gMikgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3
IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IFRleHQgbm9kZSB3aXRoIGEgCi0JbmV3IEVudGl0
eVJlZmVyZW5jZSBOb2RlIGNyZWF0ZWQgYnkgYW5vdGhlciBkb2N1bWVudCBhbmQgdmVyaWZ5IGlm
IGEgCi0JV1JPTkdfRE9DVU1FTlRfRVJSIGlzIHJhaXNlZC4KLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9u
IG5vZGVyZXBsYWNlY2hpbGQzNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5p
dGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzNyIpICE9IG51bGwpIHJldHVy
bjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvYzI7Ci0gICAgICB2YXIgcGFyZW50OwotICAg
ICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVWYWx1
ZTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotICAgICAg
dmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYzIpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlzLmRvYzI7Ci0gICAgICB9Ci0gICAgICBk
b2MyID0gbG9hZChkb2MyUmVmLCAiZG9jMiIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50ID0g
ZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3Bh
Y2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRl
eHQiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jMi5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRh
Iik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsK
LSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVw
bGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAgICAg
fQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3Vu
ZGVmaW5lZCcgJiYgZXguY29kZSA9PSA0KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19XUk9O
R19ET0NVTUVOVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlkZGJkMjMzMTk5N2UzMzM4NWZhYTBmZjI3
MzI5NDliZWZiYWY2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM3LmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRj
b250ZW50MTAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzYw
OTM0ZmVjNGQ5NDc4NmFlMWJmNThmNWQ0NWE1OWIxYTkyYzU2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQx
MC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRl
bnQxMC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU3MWFlNzczOGEwYjI4M2Jj
OTJjODdhZmQzYWM1MTM2MjliMzE1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRl
eHRjb250ZW50MTAuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotCi0vKgotQ29w
eXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3Nh
Y2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNv
cnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkp
LiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0
aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhl
IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVn
YWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAg
ICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1
cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsK
LSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1
ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVy
ZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9h
ZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAg
ICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlh
bGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVk
IG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3Rh
cnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2Fk
ZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNo
YW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4
ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBzZXRUZXh0Q29udGVudCBoYXMgbm8gZWZmZWN0IHdo
ZW4gdGhlIG5vZGUgaXMgZGVmaW5lZCB0byBiZSBudWxsLgotCQotCVVzaW5nIHNldFRleHRDb250
ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSwgYXR0ZW1wdCB0byBzZXQgaXRzIGNvbnRlbnQgdG8g
RUxFTUVOVC4KLQlSZXRyZWl2ZSB0aGUgdGV4dENvbnRlbnQgYW5kIHZlcmlmeSBpZiBpdCBpcyB3
YXMgc2V0IHRvIEVMRU1FTlQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGlt
YQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUt
MjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0ZXh0
Y29udGVudDEwKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlv
bihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTAiKSAhPSBudWxsKSByZXR1cm47Ci0gICAg
dmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjb21t
ZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBwaTsK
LSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0gPSBk
b2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImRvbTM6ZWxl
bSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0ICIpOwotICAgICAgY29t
bWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwotICAgICAgZW50UmVmID0gZG9j
LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJv
Y2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRvYy5j
cmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5h
cHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQo
Y29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgZWxlbS50ZXh0Q29u
dGVudCA9ICJFTEVNRU5UIjsKLQotICAgICAgdGV4dENvbnRlbnQgPSBlbGVtLnRleHRDb250ZW50
OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVzZXR0ZXh0Y29udGVudDEwIiwiRUxFTUVOVCIs
dGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewot
ICAgbm9kZXNldHRleHRjb250ZW50MTAoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC54aHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkZTc2MGYwZjBhMmI3NThlNmYyZWU4MGUzMGM1
YzlmNGE1NzQ1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcyIvPjxzY3Jp
cHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0
VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+
Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8
L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAg
Tm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ry
b25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRo
IEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4g
YWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7
Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5l
dHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8
L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCww
MDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5Q
TyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0
cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9j
b2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgot
ICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxj
b2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2
YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0
Y29udGVudDExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJj
MTQ3MDg4NmJmMDRlNGIwOTUyNjdmNjUzNDVlMDRiM2VhMzM2Yy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50
MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250
ZW50MTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NDMxZjc5MjMxZjAwYjI0
YzU0ODA4YTk2OGMzOTM5ZTYzMWUyZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDExLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9
IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5p
bmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlv
biBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlz
IHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29t
cGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQg
d2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBh
Z2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAv
LwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhj
ZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LQotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IERvY3VtZW50RnJhZ21lbnQgbm9k
ZSBFbGVtZW50IGNoaWxkLCBhdHRlbXB0IHRvIHNldCBpdHMgY29udGVudCB0byAKLQlET0NVTUVO
VEZSQUdNRU5ULiAgUmV0cmVpdmUgdGhlIHRleHRDb250ZW50IGFuZCB2ZXJpZnkgaWYgaXQgaXMg
d2FzIHNldCB0byBET0NVTUVOVEZSQUdNRU5UCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBO
ZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZl
bC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5v
ZGVzZXR0ZXh0Y29udGVudDExKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0
aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTEiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVsZW07Ci0g
ICAgICB2YXIgZWxlbUNoaWxkOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjb21tZW50Owot
ICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBwaTsKLSAgICAg
IHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
ID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2Mu
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50
TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpwIik7Ci0gICAgICB0eHQg
PSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNyZWF0
ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJhbHBoYSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0
aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rp
b24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVs
ZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBw
ZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBlbGVtLnRleHRDb250ZW50ID0gIkRPQ1VNRU5URlJBR01F
TlQiOwotCi0gICAgICBlbGVtQ2hpbGQgPSBkb2NGcmFnLmxhc3RDaGlsZDsKLQotICAgICAgdGV4
dENvbnRlbnQgPSBlbGVtQ2hpbGQudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygi
bm9kZWdldHRleHRjb250ZW50MTEiLCJET0NVTUVOVEZSQUdNRU5UIix0ZXh0Q29udGVudCk7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dGV4dGNv
bnRlbnQxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0MmNiZDA0YWM5MWZkOThmNDAyMTM5NzQzMTk4NWRkZTFiODEzZmZkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS54aHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQ
SURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhh
ICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1h
ICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNp
bG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBD
REFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRh
dGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29udGVudDExLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2ph
dmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Njcmlw
dD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJn
YXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41
NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxh
cywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5v
bGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNl
IG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNl
Y3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29k
ZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1
NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcs
IHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5h
bHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5v
cjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9l
bT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3Bl
Y2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9u
eW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTItZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTBmYmY0MmIyZTk2NzUwODNm
MjE3YzE1ZmFkNzgyZGQ3ZmRkNDRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4
dGNvbnRlbnQxMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRl
c3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
c2V0dGV4dGNvbnRlbnQxMgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZjMzZmZTZiMTFlY2JlODFjNTYzNmRhYWVhODBiNDU5
YjcwYTg3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAw
MS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0
dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5m
b3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMg
UmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0
d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmln
aHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0
aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBv
ZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAi
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIg
YnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRo
ZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0
ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFz
eW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVy
d2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4
Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRo
ZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVw
UGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3Jl
YXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8K
LSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NM
b2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBj
YXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8v
Ci0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAg
ICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAg
IFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0v
LyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAg
ICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCi0JCi0JVXNpbmcgc2V0
VGV4dENvbnRlbnQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUsIGF0dGVtcHQgdG8gc2V0
IGl0cyB2YWx1ZS4KLQlTaW5jZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIFJlYWRPbmx5LCBj
aGVjayBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiAgCi0JaXMgcmFpc2VkLgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4
dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rlc2V0dGV4dGNvbnRlbnQxMigpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR0ZXh0
Y29udGVudDEyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZWxl
bTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIg
YXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50UmVm
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRDaGls
ZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZh
bHNlOwotCQl0cnkgewotICAgICAgICAgICAgZW50UmVmLnRleHRDb250ZW50ID0gIk5BIjsKLQot
ICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2Rl
KSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoIm5v
ZGVzZXR0ZXh0Y29udGVudDEyIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR0ZXh0Y29udGVudDEyKCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIueGh0
bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50
MTIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0YmY5Njg3YTBlYjRkODcz
OTQyNzMzNTVmMDczNDNkMWYxYmM5MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDEyLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwg
dmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAg
UFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3Ry
aWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRh
ICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0
YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24x
RmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgot
ICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRt
c3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAg
ICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAg
ICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jvbnlt
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJ
VFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1l
bnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHht
bG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHht
bG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19z
dGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJz
ZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXNldHRleHRjb250ZW50
MTIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2Vy
ZGF0YTA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDY4ZDdhZjJmZjk4M2UxNzMxZTA2ZGFkYjUzZjQ4MDJmZGRlMmY2ZWEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJ
TGluZSAxMTM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5YjZmNTg2M2JmNDY3OGFlNTBhZTk1ZDg4NmQ2NmUwYzhlMzU0ZGQ4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEz
NCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIg
Q29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVy
b3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRp
Y3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlz
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRo
ZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53
My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQot
Ki8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVz
dC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rp
b24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4IjsKLSAgIH0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi0JSW52b2tlIHNldFVzZXJEYXRhIG9uIGEgQ0RBVEFTZWN0aW9uIGFu
ZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZSB0byBzZXQgdGhlaXIgCi0JVXNlckRhdGEgdG8gdGhpcyBE
b2N1bWVudCBhbmQgRG9jdW1lbnRFbGVtZW50IG5vZGUuICBWZXJpZnkgaWYgdGhlIFVzZXJEYXRh
IAotCW9iamVjdCB0aGF0IHdhcyBzZXQgZm9yIGJvdGggbm9kZXMgaXMgZGlmZmVyZW50LgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtc2V0
VXNlckRhdGEKLSovCi1mdW5jdGlvbiBub2Rlc2V0dXNlcmRhdGEwOCgpIHsKLSAgIHZhciBzdWNj
ZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR1c2VyZGF0
YTA4IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRWxlbTsK
LSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY0RhdGE7Ci0gICAgICB2YXIgZWxlbUxpc3Q7
Ci0gICAgICB2YXIgZWxlbU5hbWU7Ci0gICAgICB2YXIgdXNlckRhdGE7Ci0gICAgICB2YXIgcmV0
dXJuZWQxOwotICAgICAgdmFyIHJldHVybmVkMjsKLSAgICAgIHZhciBzdWNjZXNzOwotICAgICAg
dmFyIHJldFVzZXJEYXRhOwotICAgICAgdmFyIG51bGxIYW5kbGVyID0gbnVsbDsKLQotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0VsZW0g
PSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY0RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9u
KCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIGlmIChudWxsID09IG51bGxIYW5kbGVyKSB7Ci0gICAg
ICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51bGwpOwotICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51bGxIYW5kbGVy
LmhhbmRsZSk7Ci0gICAgICB9Ci0gICAgICAgaWYgKG51bGwgPT0gbnVsbEhhbmRsZXIpIHsKLSAg
ICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxlbSwgbnVsbCk7Ci0gICAgICB9
IGVsc2UgewotICAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxlbSwgbnVs
bEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAgICByZXR1cm5lZDEgPSBlbnRSZWYuZ2V0
VXNlckRhdGEoIktleTEiKTsKLSAgICAgIHJldHVybmVkMiA9IGNEYXRhLmdldFVzZXJEYXRhKCJL
ZXkyIik7Ci0gICAgICBzdWNjZXNzID0gcmV0dXJuZWQxLmlzRXF1YWxOb2RlKHJldHVybmVkMik7
Ci0gICAgICBhc3NlcnRGYWxzZSgibm9kZXNldHVzZXJkYXRhMDgiLHN1Y2Nlc3MpOwotCi19Ci0K
LQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dXNlcmRhdGEwOCgpOwotfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2Vy
ZGF0YTA4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1
c2VyZGF0YTA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjQ2NDA2OTZl
NmY5MjQzYTYwODFmNzkyMjE3OGRjMWViNmFhZmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dXNlcmRhdGEwOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR1c2VyZGF0
YTA4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2Fk
Q29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNv
ZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RB
VEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RB
VEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBh
IHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+
MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBE
YWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+
Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+
Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAw
MDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25u
ZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFz
LCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3
dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8
L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCww
MDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBS
b2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFj
ZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTI1YTM4MDlkNzkwMWZhMDQ0NmM3Nzc3YjRlYWFjYmQ0ZjRlZTExYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2Ci1T
dGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNGQxOGYyNzYxMjQzNTE0YWJhMTZmYmY0MzJmY2VjOGFmZDM3Y2QwMC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcworKysgL2Rldi9udWxs
CkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQg
V2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5v
bG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQg
TWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhp
cyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2Ug
WzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0
cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0y
MDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmll
cyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAq
LwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0
MDYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBu
dWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBm
cmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8g
ICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMK
LS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBz
dGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMg
aW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0
aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMg
PSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBk
b2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxk
ZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9u
QXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUpOwotICAgICAgIHNldEltcGxlbWVudGF0
aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIiwgdHJ1ZSk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRob2Qg
cmVwbGFjZVdob2xlVGV4dCBzdWJzdGl0dXRlcyB0aGUgYSBzcGVjaWZpZWQgdGV4dCBmb3IgdGhl
IHRleHQgb2YgCi0JdGhlIGN1cnJlbnQgbm9kZSBhbmQgYWxsIGxvZ2ljYWxseS1hZGphY2VudCB0
ZXh0IG5vZGVzLiAgVGhpcyBtZXRob2QgcmFpc2VzCi0JYSBOT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlIgaWYgb25lIG9mIHRoZSBUZXh0IG5vZGVzIGJlaW5nIHJlcGxhY2VkIGlzIHJlYWRvbmx5
LgotCQotCUludm9rZSByZXBsYWNlV2hvbGVUZXh0IG9uIGFuIGV4aXN0aW5nIHRleHQgbm9kZSB3
aXRoIG5ld2x5IGNyZWF0ZWQgdGV4dCBhbmQgRW50aXR5cmVmZXJlbmNlCi0Jbm9kZXMgKHdob3Nl
IHJlcGxhY2VtZW50IHRleHQgaXMgYSBjaGFyYWN0ZXIgZW50aXR5IHJlZmVyZW5jZSkgYXBwZW5k
ZWQgYXMgY2hpbGRyZW4gb2YgaXRzIHBhcmVudCBlbGVtZW50IG5vZGUuICAKLQlXaGVyZSB0aGUg
bm9kZXMgdG8gYmUgcmVtb3ZlZCBhcmUgcmVhZC1vbmx5IGRlc2NlbmRhbnRzIG9mIGFuIEVudGl0
eVJlZmVyZW5jZSwgdGhlIEVudGl0eVJlZmVyZW5jZSAKLSAgICAgICAgbXVzdCBiZSByZW1vdmVk
IGluc3RlYWQgb2YgdGhlIHJlYWQtb25seSBub2Rlcy4gT25seSBpZiBhbnkgRW50aXR5UmVmZXJl
bmNlIHRvIGJlIHJlbW92ZWQgaGFzIAotICAgICAgICBkZXNjZW5kYW50cyB0aGF0IGFyZSBub3Qg
RW50aXR5UmVmZXJlbmNlLCBUZXh0LCBvciBDREFUQVNlY3Rpb24gbm9kZXMsIHRoZSByZXBsYWNl
V2hvbGVUZXh0IAotICAgICAgICBtZXRob2QgbXVzdCBmYWlsLCByYWlzaW5nIGEgTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSLiBWZXJpZnkgdGhhdCB0aGUgbWV0aG9kIGRvZXMgbm90IHJhaXNl
Ci0gICAgICAgIGFuIGV4Y2VwdGlvbiBhbmQgdmVyaWZ5IHRoZSBjb250ZW50IG9mIHRoZSByZXR1
cm5lZCB0ZXh0IG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAw
NDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qLwotZnVuY3Rpb24gdGV4dHJlcGxh
Y2V3aG9sZXRleHQwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6
YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDYiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAgICAgIHZhciBlbGVtZW50U3Ry
b25nOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIGVyZWZOb2RlOwotICAgICAgdmFy
IHJlcGxhY2VkVGV4dDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIG5vZGVW
YWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3Ryb25nIik7Ci0gICAg
ICBlbGVtZW50U3Ryb25nID0gaXRlbUxpc3QuaXRlbSgwKTsKLSAgICAgIHRleHROb2RlID0gZG9j
LmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAgICAgZXJlZk5vZGUgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVudFN0
cm9uZy5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVu
dFN0cm9uZy5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICB0ZXh0Tm9kZSA9IGVsZW1lbnRT
dHJvbmcuZmlyc3RDaGlsZDsKLQotICAgICAgcmVwbGFjZWRUZXh0ID0gdGV4dE5vZGUucmVwbGFj
ZVdob2xlVGV4dCgiTmV3IFRleHQgYW5kIENkYXRhIik7Ci0gICAgICBub2RlVmFsdWUgPSB0ZXh0
Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygidGV4dHJlcGxhY2V3aG9sZXRl
eHQwNiIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIHRleHRyZXBsYWNld2hvbGV0ZXh0MDYoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFj
ZXdob2xldGV4dDA2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3Rl
eHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDc5NzBiNjBiMTA5MDhhMGM3OWZkNTdjODEzOWJkOTE4YzM3MWVjMmIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hl
YWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBN
YXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4
YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVz
YS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08
IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJl
ciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24g
d2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNy
ZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1Q
MDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBh
cnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0
OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFz
IDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlz
dGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ry
b25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
JmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAg
PHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlz
dDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0g
PC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA3NWVjYmQwOGU2ODZmNjlmYWZl
NGE2MzdhYzk2NTYyMGEyZjQ5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3
aG9sZXRleHQwNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRl
c3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0
cmVwbGFjZXdob2xldGV4dDA3Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcuanMgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU2NGQzMmRkMzEzMjlkNjdhOTkxYTc5MTQy
MTAwZjAwMWYzZWIwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRl
eHQwNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQg
w4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0
cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAK
LWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAK
LVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PD
gsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGll
ZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAy
L2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdl
dHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVu
dGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAg
cmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAg
ICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUpOwot
Ci0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
ICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1
aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRp
b24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVz
dHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMg
Y29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxv
d3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFw
cGVuZCBhbiBlbnRpdHkgcmVmZXJlbmNlIGFuZCBhIHRleHQgbm9kZSBhZnRlciB0byB0aGUgY29u
dGVudCBvZiB0aGUKLWZpcnN0IHN0cm9uZyBlbGVtZW50LiAgVGhlbiBjYWxsIHJlcGxhY2VXaG9s
ZVRleHQgb24gaW5pdGlhbCBjb250ZW50Ci1vZiB0aGF0IGVsZW1lbnQuICBTaW5jZSB0aGUgZW50
aXR5IHJlZmVyZW5jZSBkb2VzIG5vdCBjb250YWluIGFueSAKLWxvZ2ljYWxseS1hZGphY2VudCB0
ZXh0IGNvbnRlbnQsIG9ubHkgdGhlIGluaXRpYWwgdGV4dCBlbGVtZW50IHNob3VsZAotYmUgcmVw
bGFjZWQuIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQGF1dGhv
ciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1M
ZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTQyNQotKi8KLWZ1
bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBp
ZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0ZXh0cmVwbGFjZXdob2xldGV4dDA3Iikg
IT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgaXRlbUxpc3Q7Ci0gICAg
ICB2YXIgZWxlbWVudE5hbWU7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgZXJlZk5v
ZGU7Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0g
ICAgICB2YXIgbm9kZTsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgbm9kZVR5cGU7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
aXRlbUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0cm9uZyIpOwotICAgICAgZWxl
bWVudE5hbWUgPSBpdGVtTGlzdC5pdGVtKDApOwotICAgICAgZXJlZk5vZGUgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICB0ZXh0Tm9kZSA9IGRvYy5jcmVhdGVUZXh0
Tm9kZSgiTmV3IFRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtZW50TmFtZS5hcHBl
bmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVudE5hbWUuYXBw
ZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgdGV4dE5vZGUgPSBlbGVtZW50TmFtZS5maXJzdENo
aWxkOwotCi0gICAgICByZXBsYWNlZFRleHQgPSB0ZXh0Tm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJO
ZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAgIHRleHROb2RlID0gZWxlbWVudE5hbWUuZmlyc3RD
aGlsZDsKLQotICAgICAgYXNzZXJ0U2FtZSgicmV0dmFsX3NhbWUiLHRleHROb2RlLHJlcGxhY2Vk
VGV4dCk7Ci1ub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVx
dWFscygibm9kZVZhbHVlU2FtZSIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsKLSAg
ICAgICBub2RlID0gdGV4dE5vZGUubmV4dFNpYmxpbmc7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwo
InNlY29uZENoaWxkTm90TnVsbCIsbm9kZSk7Ci1ub2RlVHlwZSA9IG5vZGUubm9kZVR5cGU7Ci0K
LSAgICAgIGFzc2VydEVxdWFscygic2Vjb25kQ2hpbGRJc0VudFJlZiIsNSxub2RlVHlwZSk7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICB0ZXh0cmVwbGFjZXdo
b2xldGV4dDA3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyZDI5NzdiYTE4OGFhMWIxMzg4NjZlZGFiMzU1NWI3OTdjMjQxNzgz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNU
LVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBY
SFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJ
VFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5U
SVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAg
ICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhz
aSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFy
Z2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgot
XT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53
My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
bj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVU
Ri04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0idGV4dHJlcGxhY2V3aG9sZXRleHQwNy5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9s
ZXRleHQwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0NTFh
NDY2YjY0MzFhMjRkNmI3YTQ5MzJhNmRjZDMxNDQ1ZTY0MmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOAotU3RhdHVzCWZhaWx1cmUKLU1lc3Nh
Z2UJdGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBhc3NlcnRUcnVlIGZhaWxlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNl
d2hvbGV0ZXh0MDguanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJl
cGxhY2V3aG9sZXRleHQwOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA4NTRi
MzBmMmZmYTc0ZDczYTcxNGFmZjdkYzdiZDMwYTA1ODljMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCww
IEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29y
dGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4g
UmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtl
aW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQot
Ci0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAg
ICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0
VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICAgIAotICAg
ICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlh
bGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVk
IG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3Rh
cnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2Fk
ZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNo
YW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4
ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0vKioKLSogCi1BcHBlbmRzIGFuIGVudGl0eSByZWZlcmVuY2UgY29udGFpbmluZyB0ZXh0
IGFuZCBhbiBlbGVtZW50IHRvIGFuIGV4aXN0aW5nCi10ZXh0IG5vZGUsIHRoZW4gY2FsbHMgVGV4
dC5yZXBsYWNlV2hvbGVUZXh0IG9uIHRoZSBleGlzdGluZyB0ZXh0IG5vZGUuCi1BIE5PX01PRElG
SUNBVElPTl9BTExPV0VEX0VSUiBzaG91bGQgYmUgdGhyb3duLgotCi0qIEBhdXRob3IgQ3VydCBB
cm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1D
b3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdob2xlVGV4dAotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD00MjUKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTQwCi0qLwotZnVuY3Rpb24g
dGV4dHJlcGxhY2V3aG9sZXRleHQwOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDgiKSAhPSBudWxs
KSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAgICAgIHZhciBw
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBub2RlOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9h
ZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgicCIpOwotICAgICAgcCA9IGl0ZW1MaXN0Lml0ZW0oMCk7Ci0gICAgICBl
bnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQyIik7Ci0gICAgICBub2RlID0g
cC5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgbm9kZSA9IHAuZmlyc3RDaGlsZDsKLQotICAg
ICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBub2RlID0g
bm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJ5byIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0g
ICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2Rl
ID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LnhodG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmFlOTk2OWFmOGM2ZDEwMjM0ZmEwMDM2
MmQ3ODUzZTY5N2QwZDFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xl
dGV4dDA4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWwgWwotPCFFTlRJVFkgZW50MSAnZm9vJz4KLTwhRU5USVRZIGVudDIgJ2Zvbzxici8+Jz4KLTwh
RUxFTUVOVCBodG1sIChoZWFkLCBib2R5KT4KLTwhQVRUTElTVCBodG1sIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotPCFFTEVNRU5UIGhlYWQgKHRpdGxlLHNjcmlwdCopPgotPCFFTEVNRU5UIHNjcmlw
dCAoI1BDREFUQSk+Ci08IUFUVExJU1Qgc2NyaXB0IAotICAgICBzcmMgQ0RBVEEgI0lNUExJRUQK
LSAgICAgdHlwZSBDREFUQSAjSU1QTElFRAotICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVEPgot
PCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KLTwhRUxFTUVOVCBib2R5IChwKT4KLTwhQVRUTElT
VCBib2R5IG9ubG9hZCBDREFUQSAjSU1QTElFRD4KLTwhRUxFTUVOVCBwICgjUENEQVRBfGJyKSo+
Ci08IUVMRU1FTlQgYnIgRU1QVFk+Ci1dPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnPgotPGhlYWQ+Ci08dGl0bGU+cmVwbGFjZVdob2xlVGV4dCBzYW1wbGU8L3Rp
dGxlPgotPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nc2VsZnhodG1sLmpzJz48
L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9J1VURi04JyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNy
Yz0ndGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyc+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLTxwPmJhcjwvcD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0
eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFjM2Q5Y2JkZjcwMGU2OTZiNmEwNzQ4
NTBjNjI2YzQzODYzNjc5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhj
ZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UZXN0
IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIGFsd2F5cyB0cmVhdGVkIHJl
YWRvbmx5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHhtbERvYzIuYWRv
cHROb2RlKGVudGl0eVJlZmVyZW5jZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uu
b3duZXJEb2N1bWVudCBpcyB4bWxEb2MKLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSA9
ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6
IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSBpcyBudWxs
Ci1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyB0aHJldyBleGNlcHRpb24gRXJy
b3I6IE5hbWVzcGFjZUVycm9yOiBET00gRXhjZXB0aW9uIDE0LgotUEFTUyBlbnRpdHlSZWZlcmVu
Y2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLnRleHRDb250ZW50ID0gJ2Zv
bycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9N
IEV4Y2VwdGlvbiA3LgotRkFJTCBlbnRpdHlSZWZlcmVuY2UudGV4dENvbnRlbnQgc2hvdWxkIGJl
ID4uIFdhcyAuCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBiZSAxLiBX
YXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4K
LVBBU1MgZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIGlzIGNoaWxkcmVuQmVmb3Jl
RmFpbGVkQXBwZW5kCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBiZSAx
LiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmluc2VydEJlZm9yZSh0ZXh0LCBlbnRpdHlS
ZWZlcmVuY2UuZmlyc3RDaGlsZCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuY2hp
bGROb2Rlcy5sZW5ndGggaXMgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlv
bnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZiMTY0MWJlZDQ0NzMwNzBm
YmMyZTlmMzQ5YzE5Y2I4MWQzZThmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9u
bHktZXhjZXB0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4
Y2VwdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1QTEFU
RS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0
cy9URU1QTEFURS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmVlZDkzYTVl
MDZkODg0MTI4ZGYzYjM0ZGI1NDJkODUwNzFlMzVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5j
ZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAg
QEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9IllPVVJfSlNfRklMRV9I
RVJFIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhjZXB0
aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVz
dHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWYyNDY1N2Q4MmRiM2U4YTdmYmJlNDg3N2QzZDNkNjNiMTA5ZDQ3Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRp
dHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwzMSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdCB0byBtYWtlIHN1cmUgRW50
aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBhbHdheXMgdHJlYXRlZCByZWFkb25seSIpCi0KLXZhciB4
bWxEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7Ci12YXIgeG1sRG9jMiA9IGRvY3Vt
ZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZhciBlbnRpdHlSZWZlcmVuY2UgPSB4bWxEb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotCi1zaG91bGRUaHJvdygieG1sRG9jMi5hZG9wdE5v
ZGUoZW50aXR5UmVmZXJlbmNlKSIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5vd25lckRv
Y3VtZW50IiwgInhtbERvYyIpCi0KLS8vIG5vZGVWYWx1ZSBpcyBkZWZpbmVkIHRvIGJlIG51bGwg
Zm9yIEVudGl0eSBSZWZlcmVuY2Ugbm9kZXMsIGFuZCB0aHVzIHNob3VsZCBzaWxlbnRseSBmYWls
IHRvIG1vZGlmeQotLy8gU3BlYyBpcyBhbWJpZ2lvdXMgYXMgdG8gaWYgd2Ugc2hvdWxkIHRocm93
IGhlcmUgb3Igbm90LiAgSSd2ZSByZXF1ZXN0ZWQgY2xhcmlmaWNhdGlvbjoKLS8vIGh0dHA6Ly9s
aXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAwOEphbk1hci8wMDA5Lmh0bWwK
LXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlID0gJ2ZvbyciKTsKLXNob3Vs
ZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQotc2hvdWxkVGhyb3co
ImVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVy
ZW5jZS5wcmVmaXgiLCAibnVsbCIpOwotCi1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLnRl
eHRDb250ZW50ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UudGV4dENvbnRl
bnQiLCAiJz4nIik7Ci0KLXZhciBjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCA9IGVudGl0eVJl
ZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3VsZEJlKCJjaGlsZHJlbkJlZm9yZUZhaWxl
ZEFwcGVuZCIsICIxIik7Ci12YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJGQUlM
Iik7Ci1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIik7Ci1z
aG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIiwgImNoaWxkcmVuQmVm
b3JlRmFpbGVkQXBwZW5kIik7Ci0KLWNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kID0gZW50aXR5
UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hvdWxkQmUoImNoaWxkcmVuQmVmb3JlRmFp
bGVkQXBwZW5kIiwgIjEiKTsKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2UuaW5zZXJ0QmVm
b3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENoaWxkKSIpOwotc2hvdWxkQmUoImVudGl0
eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCIsICJjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVu
ZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFsLXZhbHVl
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVz
LWV4cGVjdGVkLnR4dAppbmRleCAyNmYwZWMyYTNkZWJmZTdhN2VkZWIwOGUyZDEwMWE3NDE1ZGNk
ZmI1Li4xYzk4MWZiM2I1ZDg5MjdkNWE4NDMzOGYzNzEyNDUzYTYwY2U4MWYxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4
dApAQCAtMTEzLDEyICsxMTMsNiBAQCBQQVNTIGVsZW1lbnQubmFtZXNwYWNlVVJJIGlzICdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwogUEFTUyBlbGVtZW50LnByZWZpeCBpcyAnaHRtbCcK
IFBBU1MgZWxlbWVudC5ub2RlVmFsdWUgaXMgbnVsbAogUEFTUyBlbGVtZW50LmF0dHJpYnV0ZXMu
dG9TdHJpbmcoKSBpcyAnW29iamVjdCBOYW1lZE5vZGVNYXBdJwotUEFTUyBkb2N1bWVudC5jcmVh
dGVFbnRpdHlSZWZlcmVuY2UoJ2d0JykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0
ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZU5hbWUg
aXMgJ2d0JwotUEFTUyBlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIGlzIG51bGwKLVBBU1MgZW50
aXR5UmVmZXJlbmNlLm5hbWVzcGFjZVVSSSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5w
cmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIGlzIG51bGwKIFBB
U1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5vZGVOYW1lIGlzICd4bWwtc3R5bGVzaGVldCcKIFBB
U1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLmxvY2FsTmFtZSBpcyBudWxsCiBQQVNTIHByb2Nlc3Np
bmdJbnN0cnVjdGlvbi5uYW1lc3BhY2VVUkkgaXMgbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1ZXMuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwppbmRleCA3
MzFhODA2MzkwODY5OGI0Njk1YjI4YzM2Yjc3M2E3ZGQxYTMwMzU0Li45YjEyYTk3OTAxYzAzOTQz
MjMzMmQzM2RmY2FkYzk4MjdmYjZhYWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcworKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwpAQCAtMTU2LDE2ICsx
NTYsNiBAQCBzaG91bGRCZSgiZWxlbWVudC5wcmVmaXgiLCAiJ2h0bWwnIik7CiBzaG91bGRCZSgi
ZWxlbWVudC5ub2RlVmFsdWUiLCAibnVsbCIpOwogc2hvdWxkQmUoImVsZW1lbnQuYXR0cmlidXRl
cy50b1N0cmluZygpIiwgIidbb2JqZWN0IE5hbWVkTm9kZU1hcF0nIik7CiAKLS8vIE5vdCBwb3Nz
aWJsZSB0byBjcmVhdGUgRW50aXR5IG5vZGVzIHZpYSB0aGUgRE9NLCBXZWJLaXQgZG9lc24ndCBj
cmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKLQotc2hvdWxkVGhyb3coImRvY3VtZW50LmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgnZ3QnKSIpOwotdmFyIGVudGl0eVJlZmVyZW5jZSA9IHhtbERvYy5jcmVh
dGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5vZGVO
YW1lIiwgIidndCciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIiwgIm51
bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubmFtZXNwYWNlVVJJIiwgIm51bGwiKTsK
LXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UucHJlZml4IiwgIm51bGwiKTsKLXNob3VsZEJlKCJl
bnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQogLy8gTm90IHBvc3NpYmxlIHRv
IGNyZWF0ZSBOb3RhdGlvbiBub2RlcyB2aWEgdGhlIERPTSwgV2ViS2l0IGRvZXNuJ3QgY3JlYXRl
IHRoZW0gZnJvbSBwYXJzaW5nCiAKIHZhciBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSBkb2N1bWVu
dC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3htbC1zdHlsZXNoZWV0JywgJ3R5cGU9XCJ0
ZXh0L3hzbFwiIGhyZWY9XCJtaXNzaW5nLnhzbFwiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDc3MTNmYzljZjQ4N2Y2OTc5ODE4NzQyMmUxMjcxYWE4NjJiZTYyNTcuLjc0N2NkN2U2MjU5
Y2RkY2EwYmUyNWNlZTRiNWNjMmEwMWY3MGNmMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBA
IC0zMyw4ICszMyw2IEBAIFBBU1M6IGNhbkdldCgnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJlICd0
cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0RvY3VtZW50VHlwZScpIHNob3VsZCBiZSAndHJ1
ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFbGVtZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQg
aXMuCiBQQVNTOiBjYW5TZXQoJ0VsZW1lbnQnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KLVBB
U1M6IGNhbkdldCgnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCi1Q
QVNTOiBjYW5TZXQoJ0VudGl0eVJlZmVyZW5jZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgog
UEFTUzogY2FuR2V0KCdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6
IGNhblNldCgnRXZhbEVycm9yJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5H
ZXQoJ0V2ZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggZmZmNWM0YWQw
ODE0YWI5YzFjYzA0NmFmZWJiMThjOWQ3OGJjNjc0MC4uNDQzMTZhYzc4ZjEzODc4MDQ5MGU0ZTU2
MTJhYjJhZDhmYjdlMDllYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L2dldC1zZXQtcHJvcGVydGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbApAQCAtODQsNyArODQsNiBAQCB2YXIgd2luZG93UmVh
ZFdyaXRlUHJvcGVydGllcyA9IFsKICAgICAiRG9jdW1lbnRGcmFnbWVudCIsIAogICAgICJEb2N1
bWVudFR5cGUiLCAKICAgICAiRWxlbWVudCIsIAotICAgICJFbnRpdHlSZWZlcmVuY2UiLCAKICAg
ICAiRXZhbEVycm9yIiwgCiAgICAgIkV2ZW50IiwgCiAgICAgIkhUTUxBbmNob3JFbGVtZW50Iiwg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRv
dy1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy93
aW5kb3ctcHJvcGVydGllcy5qcwppbmRleCBmOWM3MDkyOTI5Mjk4Yzc2Zjc5Y2U1ZjZhNmFlNTJm
YzljZWMwZGY1Li45ZDQzMGVjZWIyZWFjN2E1NzE4YjM3ZmQ2M2RlN2NlMjRhYmExYjNlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9w
ZXJ0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvd2lu
ZG93LXByb3BlcnRpZXMuanMKQEAgLTU2LDcgKzU2LDYgQEAgdmFyIHByb3BlcnR5SW5mbyA9IFsK
ICAgICBbIkRvY3VtZW50RnJhZ21lbnQiLCAib2JqZWN0Il0sCiAgICAgWyJEb2N1bWVudFR5cGUi
LCAib2JqZWN0Il0sCiAgICAgWyJFbGVtZW50IiwgIm9iamVjdCJdLAotICAgIFsiRW50aXR5UmVm
ZXJlbmNlIiwgIm9iamVjdCJdLAogICAgIFsiRXZlbnQiLCAib2JqZWN0Il0sCiAgICAgWyJFdmVu
dEV4Y2VwdGlvbiIsICJvYmplY3QiXSwKICAgICBbIkhUTUxBbmNob3JFbGVtZW50IiwgIm9iamVj
dCJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29r
dXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCA2N2QzMDJjZWVkNTIw
NTYzZGZlMWRiZjdmNzkwMGQyMGZkODQ4OGIwLi4xMTIyMTRhNzdiZjUzZjBjMTJmZjNhYmEzZTcw
N2VmMTMwN2U2YWI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0
LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVu
dFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAn
W29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVt
ZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5b
J0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNT
IHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3Ry
dWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3Qg
RW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9
PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10g
PT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudEV4
Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5
LXNoYWRvd2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKaW5kZXggMzAyYTA5Yjg2YTViZjJl
Nzk5ZDI0YzhlNjllMTMwN2UxYTRkMjZkMS4uYWJmNjdhZDJlOWFmNjE4Y2FmODU3NzcwYmEwOTEx
NDRhMTcyNDRhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dApAQCAtOTYs
OCArOTYsNiBAQCBQQVNTOiBDb21tZW50IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogQ0RB
VEFTZWN0aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nl
c3NmdWxseSBzaGFkb3dlZAogUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1Q
QVNTOiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1QQVNTOiBFbnRpdHlSZWZlcmVuY2Ug
c3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gc3VjY2Vz
c2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRG9jdW1lbnQgc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
CiBQQVNTOiBIVE1MRWxlbWVudCBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy5o
dG1sCmluZGV4IDliNDZlYWNlMDEzNzBjNTUyNjJkMGVmNjRkNjgxYWU1NmVhYmMwMmMuLmNiNzRm
YjA0YTA3MjUyZjEwYjVkYzYzZjljNjA0YjE1MTkwYzVkOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcuaHRt
bApAQCAtMjE1LDEwICsyMTUsNiBAQAogICAgICAgICBsb2coRG9jdW1lbnRUeXBlID09IDEgPyAi
UEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRG9jdW1l
bnRUeXBlIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIE5vdGF0aW9uID0gMTsKICAg
ICAgICAgbG9nKE5vdGF0aW9uID09IDEgPyAiUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5IHNo
YWRvd2VkIiA6ICJGQUlMOiBOb3RhdGlvbiB3YXMgbm90IHNoYWRvd2VkIik7Ci0gICAgICAgIHZh
ciBFbnRpdHkgPSAxOwotICAgICAgICBsb2coRW50aXR5ID09IDEgPyAiUEFTUzogRW50aXR5IHN1
Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRW50aXR5IHdhcyBub3Qgc2hhZG93ZWQiKTsK
LSAgICAgICAgdmFyIEVudGl0eVJlZmVyZW5jZSA9IDE7Ci0gICAgICAgIGxvZyhFbnRpdHlSZWZl
cmVuY2UgPT0gMSA/ICJQQVNTOiBFbnRpdHlSZWZlcmVuY2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
IiA6ICJGQUlMOiBFbnRpdHlSZWZlcmVuY2Ugd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAgICB2
YXIgUHJvY2Vzc2luZ0luc3RydWN0aW9uID0gMTsKICAgICAgICAgbG9nKFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiA9PSAxID8gIlBBU1M6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBzdWNjZXNzZnVsbHkg
c2hhZG93ZWQiIDogIkZBSUw6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiB3YXMgbm90IHNoYWRvd2Vk
Iik7CiAgICAgICAgIHZhciBIVE1MRG9jdW1lbnQgPSAxOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRleCA0YTE4YWRmN2JhZjY2
OWM3NjFkNTE5N2IxMzRkYTBiZmVlODcyZTg2Li4zN2MzNTQxOTM4ZjExMDdkNjZjYzkzMTUwYzFi
MTQzNjVmNWVhOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3Ry
dWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3Ry
dWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDYgQEAgUEFTUyBUcnlBbGxvY2F0ZSgnQ2hh
cmFjdGVyRGF0YScpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdDREFUQVNlY3Rp
b24nKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRG9jdW1lbnRUeXBlJykgaXMg
J2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0VsZW1lbnQnKSBpcyAnZXhjZXB0aW9uJwot
UEFTUyBUcnlBbGxvY2F0ZSgnRW50aXR5UmVmZXJlbmNlJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1Mg
VHJ5QWxsb2NhdGUoJ0V2ZW50VGFyZ2V0JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2Nh
dGUoJ0hUTUxEb2N1bWVudCcpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdOb2Rl
JykgaXMgJ2V4Y2VwdGlvbicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1j
b25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMu
aHRtbAppbmRleCBmMjQ5OWRjMDQ2NTM3NzM3NmZhODg2YjJjYmIzYmQwYTlkODZlNDIxLi43OTUz
YjYxYTI1ZDIxMDczN2JiY2Y2YTQwODE2ZTFhZmM1MGNkYmUwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCkBAIC0xOCw3ICsxOCw2IEBAIHZhciBvYmplY3Rz
X2V4Y2VwdGlvbiA9IFsKICAgICAnQ0RBVEFTZWN0aW9uJywKICAgICAnRG9jdW1lbnRUeXBlJywK
ICAgICAnRWxlbWVudCcsCi0gICAgJ0VudGl0eVJlZmVyZW5jZScsCiAgICAgJ0V2ZW50VGFyZ2V0
JywKICAgICAnSFRNTERvY3VtZW50JywKICAgICAnTm9kZScsCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAppbmRleCA3ODhjYWJlNWQwM2I1
MWZmYmM0MGZmMzYzY2FkNmNhMDZhYjg1ZDQ5Li42OTJiYTcwNWZlZDgzYjI5NWEyNzA4ZDVlNzM2
MDZiMGU2YTAxYTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNs
YXNzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xh
c3Nlcy1leHBlY3RlZC50eHQKQEAgLTQ3LDkgKzQ3LDYgQEAgUEFTUyBqc1dyYXBwZXJDbGFzcyh4
bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKS5jb25zdHJ1Y3RvcikgaXMgJ0NEQVRBU2Vj
dGkKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4Jywg
J3gnLCAneCcpKSBpcyAnRWxlbWVudCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLl9fcHJvdG9fXykgaXMgJ0VsZW1lbnRQcm90
b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygn
eCcsICd4JywgJ3gnKS5jb25zdHJ1Y3RvcikgaXMgJ0VsZW1lbnRDb25zdHJ1Y3RvcicKLVBBU1Mg
anNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkpIGlzICdF
bnRpdHlSZWZlcmVuY2UnCi1QQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgpLl9fcHJvdG9fXykgaXMgJ0VudGl0eVJlZmVyZW5jZVByb3RvdHlwZScK
LVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCku
Y29uc3RydWN0b3IpIGlzICdFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3RvcicKIFBBU1MganNXcmFw
cGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpIGlzICdQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24nCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLl9fcHJvdG9fXykgaXMgJ1Byb2Nlc3NpbmdJbnN0
cnVjdGlvblByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRl
UHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuY29uc3RydWN0b3IpIGlzICdQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb25Db25zdHJ1Y3RvcicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBw
ZXItY2xhc3Nlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0
bWwKaW5kZXggOGJlOGZlM2JmMGMyM2MwMzRhMDc3ODIzNTUwZDY3M2RmZTEwZWRjNy4uZmY4MWQ4
ZjkwNTA0NDBkYzFlMzFkMzA4MzM1NWM2NjMxMjljOTYzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vd3JhcHBlci1jbGFzc2VzLmh0bWwKQEAgLTkwLDcgKzkwLDYgQEAgZnVuY3Rpb24gcnVuVGVz
dCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9jdW1lbnQiKTsKICAgICB0ZXN0KCJ4bWxE
b2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJDREFUQVNlY3Rpb24iKTsKICAgICB0ZXN0
KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykiLCAiRWxlbWVudCIp
OwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpIiwgIkVudGl0
eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0
cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpOwogCiAgICAgZGVidWcoJycpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKaW5kZXggNjNlMjQyYTJmYmUzMmI5
ZDZiODNkNThjZWFkNTY0OWI0OTY3NDFiYi4uZDU5M2E1ZWFiYThhOGUwOGUwMWMwOWMyMjQzMThk
ZTkwODYwY2Q4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CkBAIC0x
ODcsNyArMTg3LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnIKIENPTlNPTEUgTUVTU0FHRTog
bGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3QgY2hlY2tzIGNyb3NzLWZyYW1lIGFjY2Vz
cyBzZWN1cml0eSAocmRhcjovL3Byb2JsZW0vNTI1MTMwOSkuCiAKIApAQCAtMjM1LDcgKzIzNCw2
IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkRvY3VtZW50RnJhZ21lbnQnKSBzaG91bGQg
YmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5Eb2N1bWVudFR5
cGUnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRv
dy5FbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJn
ZXRXaW5kb3cuRW50aXR5Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgotUEFTUzogY2FuR2V0
KCd0YXJnZXRXaW5kb3cuRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlz
LgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRXZhbEVycm9yJykgc2hvdWxkIGJlICdmYWxz
ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRXZlbnQnKSBzaG91bGQgYmUg
J2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5IVE1MQW5jaG9yRWxl
bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwKaW5k
ZXggMzgwMGEwYjVlODEyNGI5NDVkODEwMzkwYzNlOWI1ZjkwZTU3ODM4ZC4uY2NlNWY3YTNmMjM0
MWNhYjdmZjA5Y2JlNzViM2IyZTY5ZGVhNmNmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwKQEAg
LTIwLDcgKzIwLDYgQEAKICAgICAgICAgICAgICJEb2N1bWVudFR5cGUiLCAKICAgICAgICAgICAg
ICJFbGVtZW50IiwgCiAgICAgICAgICAgICAiRW50aXR5IiwgCi0gICAgICAgICAgICAiRW50aXR5
UmVmZXJlbmNlIiwgCiAgICAgICAgICAgICAiRXZhbEVycm9yIiwgCiAgICAgICAgICAgICAiRXZl
bnQiLCAKICAgICAgICAgICAgICJIVE1MQW5jaG9yRWxlbWVudCIsIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3Rl
ZC50eHQKaW5kZXggZTQ1ODVhYmQ1MTYwNWMxZTJkOWU4YjlmMmNkODhhYmNkNWNhZDJlMC4uMWVh
NWJkYzZkOTQ5NzQ2ZTFlOWMyNTM1NjY0NjVjNDBiMzliODVjOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0
ZWQudHh0CkBAIC03OCw3ICs3OCw2IEBAIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2lu
ZG93LCAnRG9jdW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXRE
ZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0RvY3VtZW50RnJhZ21lbnQnKSBzaG91bGQgYmUgJ2Zh
bHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0RvY3Vt
ZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0
b3IodGFyZ2V0V2luZG93LCAnRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KLVBB
U1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRW50aXR5UmVmZXJlbmNlJykgc2hv
dWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5k
b3csICdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXRE
ZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0V2ZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlz
LgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdIVE1MQW5jaG9yRWxlbWVu
dCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3Jp
cHRvci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKaW5kZXggZGVhMDE3ZDY3OGExNWZk
ZDEzYzc3YTkyYWU1MTVjNzA4ZTdiZDNhYy4uMzA2NmIzYTJhZmNiNWQ1ZDIzOTFmY2Y0OTlkMWUz
NDk0NjUxNTQxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yLmh0bWwKQEAgLTE5LDcgKzE5LDYgQEAKICAgICAgICAgICAgICJEb2N1
bWVudEZyYWdtZW50IiwgCiAgICAgICAgICAgICAiRG9jdW1lbnRUeXBlIiwgCiAgICAgICAgICAg
ICAiRWxlbWVudCIsIAotICAgICAgICAgICAgIkVudGl0eVJlZmVyZW5jZSIsIAogICAgICAgICAg
ICAgIkV2YWxFcnJvciIsIAogICAgICAgICAgICAgIkV2ZW50IiwgCiAgICAgICAgICAgICAiSFRN
TEFuY2hvckVsZW1lbnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDQ3ZmQ1NDM5ZDM3ZDc2ZDEwNjU0OWE3MTliYjVhYzkyMjkyM2NiZWMuLjg1YjBhYmExYjE1
YjQ2ZWFlYmEwNjBmYmQ1NWUyOTI5ZjQxMjUyZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTQ6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE1MjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBBTEVS
VDogUEFTUzogd2luZG93LkF0dHIgc2hvdWxkIGJlICdbb2JqZWN0IEF0dHJDb25zdHJ1Y3Rvcl0n
IGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQ0RBVEFTZWN0aW9uIHNob3VsZCBiZSAnW29i
amVjdCBDREFUQVNlY3Rpb25Db25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5k
b3cuQ2hhcmFjdGVyRGF0YSBzaG91bGQgYmUgJ1tvYmplY3QgQ2hhcmFjdGVyRGF0YUNvbnN0cnVj
dG9yXScgYW5kIGlzLgpAQCAtMTQsOCArMTQsNiBAQCBBTEVSVDogUEFTUzogd2luZG93LkRPTUV4
Y2VwdGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdJyBhbgog
QUxFUlQ6IFBBU1M6IHdpbmRvdy5ET01JbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgJ1tvYmplY3Qg
RE9NSW1wbGVtZW50YXRpb25Db25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5k
b3cuRE9NUGFyc2VyIHNob3VsZCBiZSAnW29iamVjdCBET01QYXJzZXJDb25zdHJ1Y3Rvcl0nIGFu
ZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRWxlbWVudCBzaG91bGQgYmUgJ1tvYmplY3QgRWxl
bWVudENvbnN0cnVjdG9yXScgYW5kIGlzLgotQUxFUlQ6IFBBU1M6IHdpbmRvdy5FbnRpdHkgc2hv
dWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KLUFMRVJUOiBQQVNTOiB3aW5kb3cuRW50aXR5UmVm
ZXJlbmNlIHNob3VsZCBiZSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGFu
ZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRXZhbEVycm9yIHNob3VsZCBiZSAnZnVuY3Rpb24g
RXZhbEVycm9yKCkgeyAgICBbbmF0aXZlIGNvZGVdfScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdp
bmRvdy5FdmVudCBzaG91bGQgYmUgJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4K
IEFMRVJUOiBQQVNTOiB3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQgc2hvdWxkIGJlICdbb2JqZWN0
IEhUTUxBbmNob3JFbGVtZW50Q29uc3RydWN0b3JdJyBhbmQgaXMuCkBAIC0yNzQsMTUgKzI3Miwx
NSBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIwOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyMTog
QmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20g
YWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFBy
b3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTIyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNP
TEUgTUVTU0FHRTogbGluZSAxMjM6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyNDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTMzOiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzU6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90
b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDEzMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTM0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzY6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0
cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzNzogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlu
cywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM4OiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9j
b2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMzk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE0MDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNDI6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0MzogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNz
aW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29s
cywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTQ0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIg
ZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
Ii4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVT
U0FHRTogbGluZSAxNDU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgog
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE0NjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCkBAIC0zMjEsNyArMzE5LDcgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3ODog
QmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYKIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxNzk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4MDogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTgxOiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxODI6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE4NDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTg1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODY6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NzogQmxvY2tlZCBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9t
YWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0zMzcsNyArMzM1LDcgQEAgQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE5NjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOTc6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5ODogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTk5OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAyMDA6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjAzOiBCbG9ja2VkIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5z
LCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMDQ6IEJsb2Nr
ZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vz
c2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2Nv
bHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDIwNTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
IGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0zNzAsNyAr
MzY4LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzMTogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGluZSAy
MzI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDIzMzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMjM0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMzU6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgogVGhpcyB0ZXN0IGNoZWNrcyBjcm9zcy1mcmFtZSBhY2Nlc3Mg
c2VjdXJpdHkgb2Ygd2luZG93IGF0dHJpYnV0ZSBzZXR0ZXJzIChyZGFyOi8vcHJvYmxlbS81MzI2
NzkxKS4KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCmluZGV4IGFjMDI0Zjg1NWFhODY2ZTY3MTdi
OTdmZmIxYjc0OTU2YjNjNWQ3M2MuLmEyYjZiODcwYTE4YzczOTI1NDhjMWVhOWQ4NTkyMjc4Mjlj
YjZlMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLXB1dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCkBAIC01MCw3ICs1MCw2IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRE9NSW1w
bGVtZW50YXRpb24iKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJE
T01QYXJzZXIiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJFbGVt
ZW50Iik7Ci0gICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRW50aXR5UmVm
ZXJlbmNlIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRXZhbEVy
cm9yIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRXZlbnQiKTsK
ICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJIVE1MQW5jaG9yRWxlbWVu
dCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVz
dC5odG1sCmluZGV4IDM2ZjgyNmJkOTA1ZjA1Nzc4MGI4YjYzODY5NmY3OTM3ZTVjNGM4OGYuLmI2
N2RmYzM5ZmIwMjNiMGM5NzdlZWM4M2M5NjY2MWI4YzE5OGUwZDUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1m
b3ItcHV0LXRlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwKQEAgLTU4LDggKzU4
LDYgQEAKICAgICAgICAgdmFyIERPTUltcGxlbWVudGF0aW9uT2xkID0gd2luZG93LkRPTUltcGxl
bWVudGF0aW9uOwogICAgICAgICB2YXIgRE9NUGFyc2VyT2xkID0gd2luZG93LkRPTVBhcnNlcjsK
ICAgICAgICAgdmFyIEVsZW1lbnRPbGQgPSB3aW5kb3cuRWxlbWVudDsKLSAgICAgICAgdmFyIEVu
dGl0eU9sZCA9IHdpbmRvdy5FbnRpdHk7Ci0gICAgICAgIHZhciBFbnRpdHlSZWZlcmVuY2VPbGQg
PSB3aW5kb3cuRW50aXR5UmVmZXJlbmNlOwogICAgICAgICB2YXIgRXZhbEVycm9yT2xkID0gd2lu
ZG93LkV2YWxFcnJvcjsKICAgICAgICAgdmFyIEV2ZW50T2xkID0gd2luZG93LkV2ZW50OwogICAg
ICAgICB2YXIgSFRNTEFuY2hvckVsZW1lbnRPbGQgPSB3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQ7
CkBAIC0yNjEsOCArMjU5LDYgQEAKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRE9NSW1w
bGVtZW50YXRpb24iLCAiRE9NSW1wbGVtZW50YXRpb25PbGQiKTsKICAgICAgICAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuRE9NUGFyc2VyIiwgIkRPTVBhcnNlck9sZCIpOwogICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5FbGVtZW50IiwgIkVsZW1lbnRPbGQiKTsKLSAgICAgICAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuRW50aXR5IiwgIkVudGl0eU9sZCIpOwotICAgICAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5FbnRpdHlSZWZlcmVuY2UiLCAiRW50aXR5UmVmZXJlbmNlT2xkIik7CiAgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93LkV2YWxFcnJvciIsICJFdmFsRXJyb3JPbGQiKTsKICAgICAg
ICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZlbnQiLCAiRXZlbnRPbGQiKTsKICAgICAgICAgICAg
IHNob3VsZEJlKCJ3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQiLCAiSFRNTEFuY2hvckVsZW1lbnRP
bGQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKaW5kZXgg
OWJlYTJhM2Q2NjY2ZDBkOTM2YzEwY2ZiMTE2OTFhMTk2YjRhZGI4My4uOWJhYzg3NmI0MDlhNDc4
ZGRlZmViYjA5NWY2NjQwZDQ0MmRjMDNiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9y
aWNhbC1leHBlY3RlZC50eHQKQEAgLTksNyArOSw3IEBAIFBBU1MgSGlzdG9yaWNhbCBET00gZmVh
dHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01Mb2NhdG9yCiBQQVNTIEhpc3RvcmljYWwgRE9NIGZl
YXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NT2JqZWN0IAogUEFTUyBIaXN0b3JpY2FsIERPTSBm
ZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTVVzZXJEYXRhIAogUEFTUyBIaXN0b3JpY2FsIERP
TSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eSAKLUZBSUwgSGlzdG9yaWNhbCBET00g
ZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlSZWZlcmVuY2UgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXSIKK1BBU1MgSGlzdG9yaWNhbCBET00g
ZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlSZWZlcmVuY2UgCiBGQUlMIEhpc3Rvcmlj
YWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRXZlbnRFeGNlcHRpb24gYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdIgogUEFTUyBIaXN0b3JpY2Fs
IERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5hbWVMaXN0IAogUEFTUyBIaXN0b3JpY2Fs
IERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5vdGF0aW9uIApAQCAtMTksOSArMTksNyBA
QCBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogUmFuZ2VFeGNl
cHRpb24KIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBjcmVh
dGVDREFUQVNlY3Rpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkIGJ1dCBnb3QgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gY3JlYXRlQ0RBVEFTZWN0
aW9uKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iCi1GQUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1
cmVzIG11c3QgYmUgcmVtb3ZlZDogY3JlYXRlRW50aXR5UmVmZXJlbmNlIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIGNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IgorUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IGNyZWF0
ZUVudGl0eVJlZmVyZW5jZSAKIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSBy
ZW1vdmVkOiB4bWxFbmNvZGluZyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1
bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBudWxsCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1
cmVzIG11c3QgYmUgcmVtb3ZlZDogeG1sU3RhbmRhbG9uZSBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoYm9vbGVhbikgZmFsc2UKIEZBSUwgSGlz
dG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxWZXJzaW9uIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChvYmplY3QpIG51
bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0
dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMmQ4ZGM4ZTE5ODU5NzQ1OGM5MzE0
ZGVkYmVlMjdjZjM2MWQ2ZTM4ZC4uNzk4OTU4MmFiM2ViOGFjMDUwYTNkOGE3NWRhZWM0MjY4YmRl
ZDdmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMxMywxMSArMzEzLDYgQEAg
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVu
dW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBF
bnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlz
IGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50
aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVu
dAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZl
bnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQKaW5kZXggYmFhYjQ5ODIwZjRkYTlmMzM5MzBiMmI3OTk0MmU5MzMxMDVlOGY3MC4u
NDU3ZTk5MDE0ZDQzODkzMmNhNDYzMjc4NGM5YjZjYTU3ODlkMmUyNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzEzLDExICszMTMs
NiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVu
dCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50
JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVl
IGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxz
ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJl
ZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFi
bGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJv
ckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJy
b3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0
eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCBlZGI3NTUwNzYyOWM3YzBkYzYyMDdiZjA0OTQ2MGE0
ZDU3ODk0YTgyLi44MmIwMjRhODY2YTQwZDMyOTFjNjVjNzNhZmNmOWJjMjQzYTk3NDVmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1s
b29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0
CkBAIC0xMTQsOCArMTE0LDYgQEAgUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0
IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0RvY3VtZW50VHlw
ZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3
aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQ
QVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlzIHRy
dWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVu
Y2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAn
W29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydF
dmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsn
RXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5b
J0V2ZW50RXhjZXB0aW9uJ10gPT0gJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0n
IGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dAppbmRleCBhMGM2ZmY0Zjg3OWM1OTljNjAwN2U2N2U2OTViMjFhNTYyZTI2OTlmLi5lNjgx
YTQ2YTRmOGU2ZWQ1ZTI0Yjc3YTE3OTMwYWM1MTVlOGU2NGQ1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMTgsMTEgKzMxOCw2IEBA
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50Jyku
aGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMg
RW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJl
bmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBp
cyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vu
dGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZl
bnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2
ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdz
ZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVy
aWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYzE1YjY2NWEwZmZhYjY3NmMwZmU4
ZDk3NWY4MzhiNzdkODk4OWJjOC4uZTE4NDI5NWMwZWMxM2M4MDNkM2JmNTk1MDQxNzhhY2Y1M2Nh
NmVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMwOCw2IEBAIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVy
dHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlz
IGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxl
bWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJl
bmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5j
ZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3du
UHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAwZmJjNGIwMjhkOTJlNmFkZmE2NjM3NmU4ZWUyYmY2N2Vj
NGZjZjMuLjk0ZDc4MTI2MjkwZDBiM2YwMzdhNDk2NWZhNWRmN2RhM2RjMjg3NWMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0
cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQKQEAgLTMwOCwxMSArMzA4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFz
T3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJh
YmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNP
d25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0Jykg
aXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxl
IGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
cnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0Jykg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
cnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJl
Y2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKaW5kZXggOTNkYWRj
MDMxZjYyZjM2NjNhODk2NjAzYTNkYWIxOGVlMjY0MzJhNC4uMTYyZjQ4ZmM1NmI5ODc5YjNhOWIx
MzZiOGI3MWIyZWY5YTg3YTJlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1
cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydE
b2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRy
dWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25z
dHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVu
dENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBF
bGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10g
PT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdp
blsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0
b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVj
dG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1
Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2
ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpj
LWV4cGVjdGVkLnR4dAppbmRleCBjMmNmZmUxNGJkM2UyMGNhZTUzM2ZjOTBjZDdhNzVkZGVmNTRh
YjE3Li43YzJiMTczMTE0NDVmM2M3ZDQzNzBlODRjMDc2ODFmZDM5MmYyY2YyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFw
cGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKQEAgLTIxLDcgKzIxLDYgQEAgWE1MCiBQQVNT
IG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQpIGlzICdET01Eb2N1bWVudCcKIFBBU1Mgb2Jq
Q1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSkgaXMgJ0RPTUNE
QVRBU2VjdGlvbicKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbGVt
ZW50TlMoJ3gnLCAneCcsICd4JykpIGlzICdET01FbGVtZW50JwotUEFTUyBvYmpDV3JhcHBlckNs
YXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpKSBpcyAnRE9NRW50aXR5UmVm
ZXJlbmNlJwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3Np
bmdJbnN0cnVjdGlvbigpKSBpcyAnRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uJwogCiBFdmVudHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNs
YXNzZXMtb2JqYy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBw
ZXItY2xhc3Nlcy1vYmpjLmh0bWwKaW5kZXggMGJiYjQ0NWFjZjc1YTgwOTkyNGJiYzIyODk2ODIy
ODQ2YzNhM2MxYi4uZjM1OWQ5NDNkMDhkMGMwMDljY2I2N2FiNzIyZTg2OGJkNjFiYWUzMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nl
cy1vYmpjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBw
ZXItY2xhc3Nlcy1vYmpjLmh0bWwKQEAgLTEwMyw3ICsxMDMsNiBAQCBmdW5jdGlvbiBydW5UZXN0
KCkKICAgICB0ZXN0KCJ4bWxEb2N1bWVudCIsICJEb2N1bWVudCIpOwogICAgIHRlc3QoInhtbERv
Y3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpIiwgIkNEQVRBU2VjdGlvbiIpOwogICAgIHRlc3Qo
InhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKSIsICJFbGVtZW50Iik7
Ci0gICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkiLCAiRW50aXR5
UmVmZXJlbmNlIik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKCkiLCAiUHJvY2Vzc2luZ0luc3RydWN0aW9uIik7CiAKICAgICBkZWJ1ZygnJyk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXgg
MDQ0ZjE0ZjBlNTI5NmU2NzVkOGI0M2M4YjQzZDgwMmQyNjk3NzExOC4uYzFhNDIyZjBhMTU1Nzcx
OGMxYTdlZDlmMTA0Zjg4Y2Q5NTBhNTYxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICszMDgsNiBAQCBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3Bl
cnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vs
ZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVy
ZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093
blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApp
bmRleCAwODNhMDcxZjZjZTZlYjVlZDIxY2QwNDYwMWEzYWJlNzYxOTMxZmJmLi42ZWJhYWFmNmNj
Y2EwMTBhOTJmZjcwN2YxOTI0MWRjODU1N2NlZjhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0yMzgsMTEgKzIzOCw2IEBAIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3du
UHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJh
YmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5
UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxz
ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJl
ZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50Jyku
aGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261534</attachid>
            <date>2015-09-18 15:53:56 -0700</date>
            <delta_ts>2015-09-18 18:23:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150918155342.patch</filename>
            <type>text/plain</type>
            <size>449648</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzUyZjQzYjM5MzIwNGUw
OWVjNDhhMTA1MTk4NTUyMmIzODVjOThkNi4uODVkNDZkYmMyMGUxNGY3YTNlM2I0OWY4ZWI0ZGQy
ZjM2Y2QxOGYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wOS0xOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKIDIwMTUtMDktMTggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE4OTUyNik6IE5pZ2h0bGllcyBkb24n
dCB3b3JrIG9uIE1hdmVyaWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDlmOWE1OGY3ZDlkYzc3YWExNDVmMGIy
NjZmZTc5MDI4MWFhNDhiMmYuLjk5YTI3MmQ0MzMyOWJiYjI2ZDAxYzhmMDExNjk3NTdlNmIzNjdh
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wOS0xOCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5IEVu
dGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEcm9wIGhhbmRsaW5nIEVudGl0eVJlZmVyZW5jZSBOb2Rlcy4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUludGVy
bmFscy5tbToKKyAgICAgICAgKFdlYktpdDo6V0tET01Ob2RlQ2xhc3MpOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6aXNBc3Npc3RhYmxlRWxlbWVudCk6CisKIDIwMTUtMDktMTggIEJldGggRGFraW4gIDxi
ZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNuYXBzaG90cyBicm9rZW4gb24gaU9TCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDNjMTQ3ZWY3MzcxNGVkMzcwNWVjODZhMGU1OGJhM2NiMjFmMzYx
OTcuLjRiMjU5NjAyYzI3OWQwNjgwYTkzM2ZkOTI2NzZkNzBjMDAzYTNlYTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0zOTEsNyArMzkxLDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklM
RVMKICAgICBkb20vRG9jdW1lbnRGcmFnbWVudC5pZGwKICAgICBkb20vRG9jdW1lbnRUeXBlLmlk
bAogICAgIGRvbS9FbGVtZW50LmlkbAotICAgIGRvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCiAgICAg
ZG9tL0Vycm9yRXZlbnQuaWRsCiAgICAgZG9tL0V2ZW50LmlkbAogICAgIGRvbS9FdmVudEV4Y2Vw
dGlvbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCBkM2ViNTE3MzFlMDYwMDJl
MTM0MzhkYWNiZjU3ZWE0N2FkZGM0MzFjLi4zNDNhODAxMjVmNDJmOGQ5ODI4NzBjMzdiNDUyNDE0
YmY4OGY1Yzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0xNDksNyArMTQ5LDYg
QEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5jcHAiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDU1Mu
Y3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudC5jcHAiCi0jaW5jbHVkZSAiSlNFbnRpdHlSZWZlcmVu
Y2UuY3BwIgogI2luY2x1ZGUgIkpTRXJyb3JFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudC5j
cHAiCiAjaW5jbHVkZSAiSlNFdmVudEV4Y2VwdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNt
YWtlCmluZGV4IGI5MjQxZGEzOTVkODIwZTE3YmMwZjE1NGRjNTc2OWQ2NWNmYTMxMmEuLjY5NDNi
NmQ5ZTE2Yjg2ZDFkNDlmMzdmOGE2ZmZhMmVkZDgzNWVjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RL
LmNtYWtlCkBAIC01ODMsNyArNTgzLDYgQEAgbGlzdChBUFBFTkQgR09iamVjdERPTUJpbmRpbmdz
U3RhYmxlX0lETF9GSUxFUwogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50LmlkbAogICAgIGRvbS9E
b2N1bWVudFR5cGUuaWRsCiAgICAgZG9tL0VsZW1lbnQuaWRsCi0gICAgZG9tL0VudGl0eVJlZmVy
ZW5jZS5pZGwKICAgICBkb20vRXZlbnQuaWRsCiAgICAgZG9tL0tleWJvYXJkRXZlbnQuaWRsCiAg
ICAgZG9tL01vdXNlRXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagppbmRleCAwOGM0NDk2NjhhYTI4ZDYwZTU1M2Y5NWUyNjIyZmYwMjA1
MWY2YjUwLi4wNzdkNzQ2MTI2NmY4OWM3ZDY0MTJiOTcxMDFhZDNhYTcyYmY0MzY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE4MzIs
MjAgKzE4MzIsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2lu
Q2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQo
UGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJy
b3JFdmVudC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgpAQCAtMTk4NTksNyArMTk4NDUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTRE9NVVJMLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01XaW5kb3cuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0
ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuaCIgLz4KLSAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJl
ZmVyZW5jZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRXJyb3JFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0V2ZW50RXhjZXB0aW9uLmgiIC8+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKaW5kZXggOTc4N2JjODA1YjNiMTkxYzA0OTE5MzJjZTQ3ZjY1N2RkOTAwOWIzNy4uOGJlZTJh
ZjkyMTg3YmI2NjQwYjc0MzAzNWFiMDFjYWU3OGUyNGRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNTI1
Nyw5ICs1MjU3LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0VsZW1lbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEZpbHRlcj5E
ZXJpdmVkU291cmNlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1
cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAiPgogICAg
ICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAt
MTI2NDYsOSArMTI2NDMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTRWxlbWVudC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIj4KLSAgICAgIDxGaWx0ZXI+
RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0
dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vycm9yRXZlbnQuaCI+CiAgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
Nzg0YjAzMjIzYTYyODJjNDMxZjQxNDUyYzk1ODM0OTdlZjJhOWEzZi4uNTZiNjk5OWJkZGRiODBj
ODMwNzE1MGY3NDViMTJhMTEyNTFjYmNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzU4Nyw4ICszNTg3LDYgQEAKIAkJOTNG
OUI2NTgwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNjU1MEJB
MEYzNUUwMDg1NDA2NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggKi87IH07CiAJ
CTkzRjlCNkUwMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2REUwQkEwRkI3MjAwODU0MDY0
IC8qIEpTQ29tbWVudC5jcHAgKi87IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2NCAvKiBK
U0NvbW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKLQkJOTNGOUI3
NzQwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzcyMEJBNUZEREMwMDg1NDA2
NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAgKi87IH07Ci0JCTkzRjlCNzc1MEJBNUZEREQwMDg1
NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVm
ZXJlbmNlLmggKi87IH07CiAJCTkzRjlCN0EwMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2Vj
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovOyB9OwogCQk5
M0Y5QjdBMTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2
NCAvKiBKU0NEQVRBU2VjdGlvbi5oICovOyB9OwogCQk5M0ZEQUZDQTBCMTEzMDc0MDBFMjc0NkYg
LyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTEwOTU5LDggKzEwOTU3LDYgQEAKIAkJOTNGOUI2NTUwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhU
TUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NSFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0Y5QjZERTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29tbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21tZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0
eVJlZmVyZW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Vu
dGl0eVJlZmVyZW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjlCNzcz
MEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0VudGl0eVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDREFUQVNlY3Rpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RjBCQTYwMzI2MDA4NTQwNjQg
LyogSlNDREFUQVNlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlND
REFUQVNlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREFGQzkwQjEx
MzA3NDAwRTI3NDZGIC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMDA0Nyw4ICsyMDA0Myw2IEBACiAJCQkJQkM2NDY0OTYxMUQ4MjM0OTAwNjQ1
NUIwIC8qIEpTRE9NU3RyaW5nTWFwLmggKi8sCiAJCQkJNjVERjMxRTUwOUQxQ0M2MDAwMEJFMzI1
IC8qIEpTRWxlbWVudC5jcHAgKi8sCiAJCQkJNjVERjMxRTYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpT
RWxlbWVudC5oICovLAotCQkJCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJl
ZmVyZW5jZS5jcHAgKi8sCi0JCQkJOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5
UmVmZXJlbmNlLmggKi8sCiAJCQkJRkU4MERBNUYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9j
YXRpb24uY3BwICovLAogCQkJCUZFODBEQTYwMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0
aW9uLmggKi8sCiAJCQkJRkU4MERBNjEwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24u
Y3BwICovLApAQCAtMjU1NzksNyArMjU1NzMsNiBAQAogCQkJCUZENzg2OEJBMTM2Qjk5OTIwMEQ0
MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1
REYzMUZBMDlEMUNDNjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUFERUM3OEY4MThFRTUzMDgwMDEzMTVDMiAvKiBKU0VsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJz
ICovLAotCQkJCTkzRjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkVDRjdBREQxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JF
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpT
RXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEU4Mzc4RTA5Rjg1RDRGMDBCODVB
RTQgLyogSlNFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTE0MCw3ICsyOTEzMyw2IEBACiAJ
CQkJRkQ3ODY4QjkxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGOTA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMkVENTU1MEM2QjlCRDMwMDkyMEJGRiAvKiBK
U0VsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGOUI3NzQwQkE1RkREQzAw
ODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFQ0Y3
QURDMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTE0RTgzNzg0MDlGODVEMUMwMEI4NUFFNCAvKiBKU0V2ZW50LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9X
ZWJLaXRET01Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2Vi
S2l0RE9NUHJpdmF0ZS5jcHAKaW5kZXggNTljZjY4YzEyOTBhN2FiMDI2ZTMxZTMyNjFiMDY4YTQz
ZDM2NjA5My4uZTNiOTcxNjYzYmNhYmY4N2M1NDU1ODM5NTM4MTI4ZTkwMGIzOGYwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUu
Y3BwCkBAIC05Myw4ICs5Myw2IEBAIFdlYktpdERPTU5vZGUqIHdyYXAoTm9kZSogbm9kZSkKICAg
ICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwVGV4dChkb3duY2FzdDxUZXh0Pihub2Rl
KSkpOwogICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICByZXR1cm4g
V0VCS0lUX0RPTV9OT0RFKHdyYXBDREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9u
Kj4obm9kZSkpKTsKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAg
ICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRW50aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0
PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lO
U1RSVUNUSU9OX05PREU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcFByb2Nl
c3NpbmdJbnN0cnVjdGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2Rl
KSkpOwogICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5kZXggYWVhYzA4N2Q5ZGNmYTUxMTA3OTNkMmZmMmM5
YWZjMjNlMTJiODE1Mi4uYjI3YTk4MWM3ZDA5ZmE1NWNiZTI5NjliYjczYjIxZDQxNDQ4ODQ0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0zMyw3
ICszMyw2IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50VHlwZS5oIgogI2luY2x1ZGUgIkVudGl0eS5oIgotI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5j
ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MQXVkaW9FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKQEAgLTUxLDcgKzUwLDYgQEAK
ICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudEZyYWdtZW50Lmgi
CiAjaW5jbHVkZSAiSlNEb2N1bWVudFR5cGUuaCIKLSNpbmNsdWRlICJKU0VudGl0eVJlZmVyZW5j
ZS5oIgogI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1l
bnQuaCIKICNpbmNsdWRlICJKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKQEAgLTIwOSw5
ICsyMDcsNiBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGNyZWF0ZVdyYXBwZXJJbmxp
bmUoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iagogI2VuZGlmCiAgICAgICAgICAgICAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIERvY3VtZW50RnJh
Z21lbnQsIG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5U
SVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JB
UFBFUihnbG9iYWxPYmplY3QsIEVudGl0eVJlZmVyZW5jZSwgbm9kZSk7Ci0gICAgICAgICAgICBi
cmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9N
X1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBOb2RlLCBub2RlKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NLm1tCmluZGV4IDhlMWZiZTFmY2Q3YzM3YzQ2ZTkwYzMzY2MwNDQyMzRhMWFl
NDg3ODIuLmU4Mzk2NWRiYzM0ZjIxYzNjZTMxMTYwZDQ3NWE2ZDI4MmNhM2ZiZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCkBAIC0zMTEsOCArMzExLDYgQEAgQ2xhc3Mga2l0Q2xh
c3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKICAgICAgICAgICAgIHJldHVybiBbRE9NVGV4dCBjbGFz
c107CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAg
ICAgICAgICAgcmV0dXJuIFtET01DREFUQVNlY3Rpb24gY2xhc3NdOwotICAgICAgICBjYXNlIFdl
YkNvcmU6Ok5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgICAgIHJldHVybiBb
RE9NRW50aXR5UmVmZXJlbmNlIGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQ
Uk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTVByb2Nl
c3NpbmdJbnN0cnVjdGlvbiBjbGFzc107CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q09N
TUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCmluZGV4IGFjN2I2NmY5OTcwNWQ4OTllZWNlM2MyODk0
Zjg5ZTFmODA5ZDE1ZjguLjk2ZDdlZWQzYjBmZjIxNTU5YWRjMzM1ZTIwYTRjNDU5ZGYyMWJkYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQXR0ci5jcHAKQEAgLTE0OCwxMyArMTQ4LDcgQEAgUmVmPE5vZGU+IEF0dHI6OmNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlv
bikKIC8vIERPTSBTZWN0aW9uIDEuMS4xCiBib29sIEF0dHI6OmNoaWxkVHlwZUFsbG93ZWQoTm9k
ZVR5cGUgdHlwZSkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBU
RVhUX05PREU6Ci0gICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQorICAgIHJldHVybiB0eXBlID09IFRFWFRfTk9ERTsKIH0KIAogdm9pZCBBdHRy
OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0F0dHIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKaW5kZXggMTI0
YzZkN2EyYWEyODY4MzBmY2JhMjk2Mjg4ODhiNzIwMjI5OTI4Ni4uZjZmMzYyMDc3MTdhMzVjMmIy
NDNmYWFhOTY1ZGMzYWI3MmYyNmJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0
dHIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzOwogCi0vLyBBdHRyIGNhbiBoYXZlIFRleHQgYW5kIEVudGl0eVJl
ZmVyZW5jZSBjaGlsZHJlbgorLy8gQXR0ciBjYW4gaGF2ZSBUZXh0IGNoaWxkcmVuCiAvLyB0aGVy
ZWZvcmUgaXQgaGFzIHRvIGJlIGEgZnVsbGJsb3duIE5vZGUuIFRoZSBwbGFuCiAvLyBpcyB0byBk
eW5hbWljYWxseSBhbGxvY2F0ZSBhIHRleHRjaGlsZCBhbmQgc3RvcmUgdGhlCiAvLyByZXN1bHRp
bmcgbm9kZXZhbHVlIGluIHRoZSBhdHRyaWJ1dGUgdXBvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwCmluZGV4IGM5NjM0YjBjZTEwMDM0ZTkyYjVjNTE2ZTEzMmQwYzQzNDMxN2E1MGQu
LjNmNGZlMGY4MDM3NGM4MzcwMDk5MGVkNGI0NWE0YTlkMjE5NDliYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTE4MCw3ICsxODAsNiBAQCBzdGF0aWMgaW5saW5lIEV4
Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5v
ZGUmIG5ldwogewogICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUu
CiAgICAgaWYgKChuZXdDaGlsZC5pc0VsZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQuaXNUZXh0Tm9k
ZSgpKSAmJiBuZXdQYXJlbnQuaXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3
UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOwogICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0Rv
Y3VtZW50VHlwZU5vZGUoKSk7CiAgICAgICAgIEFTU0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3
UGFyZW50LCBuZXdDaGlsZCkpOwogICAgICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RF
bGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKQEAgLTE5Myw4ICsxOTIsNiBAQCBzdGF0aWMg
aW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQ
YXJlbnQsIE5vZGUmIG5ldwogICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQu
aXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAgcmV0dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUjsKICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwg
bmV3UGFyZW50KSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIApAQCAt
MjA5LDcgKzIwNiw2IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENo
aWxkKENvbnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3CiAKIHN0YXRpYyBpbmxpbmUg
Ym9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBu
ZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NF
UlQoIW5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKICAgICBBU1NFUlQoIW5ld1BhcmVudC5p
c0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQ
YXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgaWYgKG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQp
KSB7CkBAIC01MjEsMTIgKzUxNyw2IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQo
Tm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMgPSAwOwogCi0gICAg
Ly8gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgdGhpcyBub2RlIGlzIHJl
YWRvbmx5LgotICAgIGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAg
ICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9m
IHRoaXMgbm9kZS4KICAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAg
ICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjE3
OTNjMjJmMDUzZmI3YjA2NTY4MTdjZmM3ZGFiMzE4NGFlOGJkNC4uNmNmMGVhZTQwNjQwZDBmMTFk
NjE0NDQ3OTEwNDE3NjU3NDhhZDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC05MDks
MTcgKzkwOSwxMCBAQCBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBEb2N1bWVudDo6Y3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKGNvbnN0IFN0cmluZwogICAgIHJldHVybiBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb246OmNyZWF0ZSgqdGhpcywgdGFyZ2V0LCBkYXRhKTsKIH0KIAotUmVmUHRy
PEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBT
dHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4g
RG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKLSAgICBpZiAoIWlzVmFsaWROYW1lKG5hbWUpKSB7Ci0gICAgICAgIGVjID0g
SU5WQUxJRF9DSEFSQUNURVJfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0g
ICAgaWYgKGlzSFRNTERvY3VtZW50KCkpIHsKLSAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VS
UjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBFbnRpdHlSZWZl
cmVuY2U6OmNyZWF0ZSgqdGhpcywgbmFtZSk7CisgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmPFRleHQ+IERvY3VtZW50OjpjcmVhdGVFZGl0
aW5nVGV4dE5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtOTQ0LDcgKzkzNyw2IEBAIFJlZlB0
cjxOb2RlPiBEb2N1bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wgZGVl
cCwgRXhjZXB0aW9uQ29kZSYKICAgICBjYXNlIEVMRU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRf
Tk9ERToKICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZF
UkVOQ0VfTk9ERToKICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBj
YXNlIENPTU1FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC05
NzQsMTEgKzk2Niw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQ
dHI8Tm9kZT4gc291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCi0gICAgaWYgKHNvdXJjZS0+aXNSZWFkT25seU5vZGUoKSkgewotICAgICAg
ICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgfQotCiAgICAgRXZlbnRRdWV1ZVNjb3BlIHNjb3BlOwogCiAgICAgc3dpdGNoIChz
b3VyY2UtPm5vZGVUeXBlKCkpIHsKQEAgLTE3MTAsNTIgKzE2OTcsNTIgQEAgUmVmPFJhbmdlPiBE
b2N1bWVudDo6Y3JlYXRlUmFuZ2UoKQogICAgIHJldHVybiBSYW5nZTo6Y3JlYXRlKCp0aGlzKTsK
IH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihO
b2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYm
IGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykK
K1JlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSog
cm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0
ZXIsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBjcmVhdGVOb2RlSXRl
cmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGVjKTsKK30KKworUmVm
UHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlw
ZUVycm9yOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIE5vZGVJ
dGVyYXRvcjo6Y3JlYXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICByZXR1cm4gTm9kZUl0ZXJhdG9yOjpjcmVhdGUocm9v
dCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJh
dG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2Rl
JiBlYykKK1JlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3Io
Tm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKLSAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6
bW92ZShmaWx0ZXIpLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Io
cm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9y
PiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1
bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewotICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0
ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIDB4RkZG
RkZGRkYsIG51bGxwdHIsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6
OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0
cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNp
Z25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290
LCAweEZGRkZGRkZGLCBudWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVl
V2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBlYyk7CiB9CiAKLVJl
ZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9v
bCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVl
V2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0
ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJl
bmNlcyk7Ci19Ci0KLVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtl
cihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVy
PiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVX
YWxrZXIocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGZhbHNlLCBlYyk7Cisg
ICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUo
ZmlsdGVyKSk7CiB9CiAKIFJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdh
bGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIG51
bGxwdHIsIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hh
dFRvU2hvdywgbnVsbHB0ciwgZWMpOwogfQogCiBSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6
OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAg
cmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZmFsc2Us
IGVjKTsKKyAgICByZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCAweEZGRkZGRkZGLCBudWxs
cHRyLCBlYyk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMo
KQpAQCAtMzM0OCw3ICszMzM1LDYgQEAgYm9vbCBEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChO
b2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNh
c2UgRE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX05PREU6Ci0gICAg
Y2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2Fz
ZSBYUEFUSF9OQU1FU1BBQ0VfTk9ERToKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzM3Niw3
ICszMzYyLDYgQEAgYm9vbCBEb2N1bWVudDo6Y2FuQWNjZXB0Q2hpbGQoY29uc3QgTm9kZSYgbmV3
Q2hpbGQsIGNvbnN0IE5vZGUqIHJlZkNoaWxkLCBBY2NlcHQKICAgICBjYXNlIEFUVFJJQlVURV9O
T0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfTk9E
RToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToK
ICAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDc0Y2VhYTk2YmM5MmY0NzgxN2NlYmI1ZjNjZjkzOTBhMTlh
NzdkNjkuLjJjYWE4YjAwY2IyNGQ5MjVkMTE5ODgxNjk5ZDY4MDc4N2M5OTZhMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC01MzUsMTIgKzUzNSwxMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBSZWY8UmFuZ2U+IGNyZWF0ZVJhbmdlKCk7CiAKLSAgICBSZWZQdHI8Tm9kZUl0ZXJh
dG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBF
eGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJh
dG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0
ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAg
UmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9v
dCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRy
PE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAotICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wg
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxUcmVl
V2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRv
U2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9y
IE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIo
Tm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4m
JiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYp
OwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIEV4
Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDgxYjEwYWU2MDk5NTJl
ZjQwNjU4NGQwNzc2NTY2NGU2NzAxMWQ1MTQuLmJhOWVjMzM2MDAyNWZhMWIwNzIyZDNmY2VkZDZm
OWM1MmYxYTRlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMzksNyArMzksMTAgQEAK
ICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBOZXdPYmplY3QsIFJhaXNlc0V4Y2Vw
dGlvbl0gUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihb
RGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB0YXJnZXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBkYXRh
KTsKICAgICBbTmV3T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEF0dHIgY3JlYXRlQXR0cmlidXRl
KFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIFtOZXdP
YmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVy
ZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKworI2lm
IGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisg
ICAgW1JhaXNlc0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5j
ZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyNlbmRpZgog
CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZF
X0MKICAgICBbSW1wbGVtZW50ZWRBcz1nZXRFbGVtZW50c0J5VGFnTmFtZUZvck9iakNdIE5vZGVM
aXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9N
U3RyaW5nIHRhZ25hbWUpOwpAQCAtOTIsMTQgKzk1LDIzIEBACiAKICAgICAvLyBET00gTGV2ZWwg
MiBUcmFudmVyc2FsIGFuZCBSYW5nZSAoRG9jdW1lbnRUcmF2ZXJzYWwgaW50ZXJmYWNlKQogCi0g
ICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmpl
Y3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAorI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgW09i
akNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSBOb2RlSXRlcmF0b3Ig
Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9vdCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRl
cj8gZmlsdGVyLAogICAgICAgICBvcHRpb25hbCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5j
ZXMpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbiwg
TmV3T2JqZWN0XSBUcmVlV2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSByb290LAorICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gVHJlZVdhbGtlciBj
cmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8g
ZmlsdGVyLAogICAgICAgICBvcHRpb25hbCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMp
OworI2Vsc2UKKyAgICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVyYXRvciBj
cmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3cgPSAweEZGRkZGRkZGLAorICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVy
PyBmaWx0ZXIpOworICAgIFtSYWlzZXNFeGNlcHRpb24sIE5ld09iamVjdF0gVHJlZVdhbGtlciBj
cmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKKyAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8g
ZmlsdGVyKTsKKyNlbmRpZgogCiAgICAgLy8gRE9NIExldmVsIDIgQWJzdHJhY3QgVmlld3MgKERv
Y3VtZW50VmlldyBpbnRlcmZhY2UpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudEZyYWdtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50
LmNwcAppbmRleCBmOWIzOGEwYmQyOGU4ZTNjNjA5MzRhZmYxYTYwMDU5MjcwOTAzZmVjLi5hNjcw
MDJjNGJmOTg3NDRhMjk1M2Y0OWUyNmU2MWJhMGNhZDM3MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC02MCw3ICs2MCw2IEBAIGJvb2wgRG9jdW1lbnRGcmFn
bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgICAgICBjYXNl
IENPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBURVhUX05PREU6CiAgICAgICAgIGNhc2UgQ0RB
VEFfU0VDVElPTl9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDlmNDE2YTZkZDhhNDdjZTVhNTVm
N2ViYTE0ODNkMDQ2OGQyZDY0NzUuLjI5ZGJmYjU1NmJjM2FjMzkxMmUxMDc3Yzc2MTIzN2IzYTcy
ZTc1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE3NjQsNyArMTc2NCw2IEBAIGJvb2wg
RWxlbWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2Ug
Q09NTUVOVF9OT0RFOgogICAgIGNhc2UgUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAg
IGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RF
OgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKaW5kZXggN2U5MWE0NjJkYTgyMDlkOTIy
YzQ1ZGM4NGM0MWEwODU1YWQ2YmUxYS4uZTU4MjRmMTA4YmI2ZjU0M2I1YTA3NjdhZmUxZmE4NGEy
ZDQ4MWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKQEAgLTI1LDMw
ICsyNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIEVudGl0eVJlZmVyZW5j
ZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBlbnRp
dHlOYW1lKQoraW5saW5lIEVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJikKICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQp
Ci0gICAgLCBtX2VudGl0eU5hbWUoZW50aXR5TmFtZSkKIHsKIH0KIAotUmVmPEVudGl0eVJlZmVy
ZW5jZT4gRW50aXR5UmVmZXJlbmNlOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIGVudGl0eU5hbWUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW50aXR5UmVm
ZXJlbmNlKGRvY3VtZW50LCBlbnRpdHlOYW1lKSk7Ci19Ci0KLVN0cmluZyBFbnRpdHlSZWZlcmVu
Y2U6Om5vZGVOYW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbnRpdHlOYW1lOwotfQotCi1O
b2RlOjpOb2RlVHlwZSBFbnRpdHlSZWZlcmVuY2U6Om5vZGVUeXBlKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gRU5USVRZX1JFRkVSRU5DRV9OT0RFOwotfQotCi1SZWY8Tm9kZT4gRW50aXR5UmVmZXJl
bmNlOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdP
cGVyYXRpb24pCi17Ci0gICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgbV9lbnRpdHlO
YW1lKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbnRpdHlSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2Uu
aAppbmRleCA4NmRmZWIzOTgyNWIzNDUwZTc1MzU5MjUwNjg1MTEwYjNhZjBjYThmLi4xOGMyZWMx
YWZjZTU3MGU4MGU4NjVhMDg0NWJhYmQ4ODY2Zjk2MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0
eVJlZmVyZW5jZS5oCkBAIC0yNiwxOCArMjYsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEVudGl0eVJlZmVyZW5jZSBmaW5hbCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPEVudGl0eVJlZmVyZW5jZT4gY3JlYXRlKERvY3VtZW50Jiwg
Y29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKTsKLQorY2xhc3MgRW50aXR5UmVmZXJlbmNlIDogcHVi
bGljIENvbnRhaW5lck5vZGUgewogcHJpdmF0ZToKICAgICBFbnRpdHlSZWZlcmVuY2UoRG9jdW1l
bnQmLCBjb25zdCBTdHJpbmcmIGVudGl0eU5hbWUpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgbm9k
ZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwo
RG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKLQotICAgIFN0cmluZyBtX2Vu
dGl0eU5hbWU7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZl
cmVuY2UuaWRsCmluZGV4IDZkMDUzNWY5YmMxZGFhNzkxNzgzMWVmZGJlNmFiZDA3YWU5YjdkYmEu
LjI3MzFkN2E2NjA5NjM1YmQ2YzE2ZTZkMmM2NmU2MDdlYmI4YzRjYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCkBAIC0xNyw4ICsxNywxMiBAQAogICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZF
X0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisKIFsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwK
ICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAogXSBpbnRlcmZhY2UgRW50aXR5UmVmZXJlbmNlIDog
Tm9kZSB7CiB9OwogCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA0MzYyZDY1NmRjNDdmZDY0
MzM1YjQ2ODYxNGJlNzM2NTg4MTMwMmJhLi5kZWYyNGNlNjcwOTU1NjY0YmNiYTEzNTA0NzE2ZmM0
MTdjYWY2MzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMDMsNyArMTAzLDYgQEAgdm9pZCBOb2Rl
OjpkdW1wU3RhdGlzdGljcygpCiAgICAgc2l6ZV90IHRleHROb2RlcyA9IDA7CiAgICAgc2l6ZV90
IGNkYXRhTm9kZXMgPSAwOwogICAgIHNpemVfdCBjb21tZW50Tm9kZXMgPSAwOwotICAgIHNpemVf
dCBlbnRpdHlSZWZlcmVuY2VOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGVudGl0eU5vZGVzID0gMDsK
ICAgICBzaXplX3QgcGlOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGRvY3VtZW50Tm9kZXMgPSAwOwpA
QCAtMTY4LDEwICsxNjcsNiBAQCB2b2lkIE5vZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICAgICAg
ICAgICAgICArK2NvbW1lbnROb2RlczsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOiB7Ci0gICAgICAg
ICAgICAgICAgKytlbnRpdHlSZWZlcmVuY2VOb2RlczsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgRU5USVRZX05PREU6IHsKICAgICAgICAg
ICAgICAgICArK2VudGl0eU5vZGVzOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjExLDcg
KzIwNiw2IEBAIHZvaWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgIHByaW50ZigiICBOdW1i
ZXIgb2YgVGV4dCBub2RlczogJXp1XG4iLCB0ZXh0Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1i
ZXIgb2YgQ0RBVEFTZWN0aW9uIG5vZGVzOiAlenVcbiIsIGNkYXRhTm9kZXMpOwogICAgIHByaW50
ZigiICBOdW1iZXIgb2YgQ29tbWVudCBub2RlczogJXp1XG4iLCBjb21tZW50Tm9kZXMpOwotICAg
IHByaW50ZigiICBOdW1iZXIgb2YgRW50aXR5UmVmZXJlbmNlIG5vZGVzOiAlenVcbiIsIGVudGl0
eVJlZmVyZW5jZU5vZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIEVudGl0eSBub2Rlczog
JXp1XG4iLCBlbnRpdHlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24gbm9kZXM6ICV6dVxuIiwgcGlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJl
ciBvZiBEb2N1bWVudCBub2RlczogJXp1XG4iLCBkb2N1bWVudE5vZGVzKTsKQEAgLTM4NCwxNCAr
Mzc4LDggQEAgU3RyaW5nIE5vZGU6Om5vZGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmlu
ZygpOwogfQogCi12b2lkIE5vZGU6OnNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmIC8qbm9kZVZh
bHVlKi8sIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3Qg
U3RyaW5nJiAvKm5vZGVWYWx1ZSovLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICAvLyBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNlZCB3aGVuIHRoZSBub2RlIGlzIHJlYWRvbmx5Ci0g
ICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05f
QUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBCeSBkZWZhdWx0
LCBzZXR0aW5nIG5vZGVWYWx1ZSBoYXMgbm8gZWZmZWN0LgogfQogCkBAIC04OTAsMTEgKzg3OCw2
IEBAIHZvaWQgTm9kZTo6Y2hlY2tTZXRQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlz
UmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9F
UlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBGSVhNRTogUmFpc2UgTkFNRVNQ
QUNFX0VSUiBpZiBwcmVmaXggaXMgbWFsZm9ybWVkIHBlciB0aGUgTmFtZXNwYWNlcyBpbiBYTUwg
c3BlY2lmaWNhdGlvbi4KIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbm9kZU5hbWVzcGFjZVVS
SSA9IG5hbWVzcGFjZVVSSSgpOwpAQCAtMTQyMiw3ICsxNDA1LDYgQEAgc3RhdGljIHZvaWQgYXBw
ZW5kVGV4dENvbnRlbnQoY29uc3QgTm9kZSogbm9kZSwgYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5l
cywgYm9vbCYKICAgICAgICAgfQogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIE5vZGU6
OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgog
ICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgaXNOdWxsU3Ry
aW5nID0gZmFsc2U7CiAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxk
KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CkBAIC0xNDU4LDcgKzE0
NDAsNiBAQCB2b2lkIE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgRUxFTUVO
VF9OT0RFOgogICAgICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgotICAgICAgICBjYXNlIEVOVElU
WV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOiB7
CiAgICAgICAgICAgICBSZWY8Q29udGFpbmVyTm9kZT4gY29udGFpbmVyKGRvd25jYXN0PENvbnRh
aW5lck5vZGU+KCp0aGlzKSk7CiAgICAgICAgICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11
dGF0aW9uKGNvbnRhaW5lcik7CkBAIC0xNDc4LDcgKzE0NTksNiBAQCB2b2lkIE5vZGU6OnNldFRl
eHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIEVsZW1l
bnQqIE5vZGU6OmFuY2VzdG9yRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgLy8gSW4gdGhlb3J5LCB0
aGVyZSBjYW4gYmUgRW50aXR5UmVmZXJlbmNlIG5vZGVzIGJldHdlZW4gZWxlbWVudHMsIGJ1dCB0
aGlzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLgogICAgIGZvciAoQ29udGFpbmVyTm9kZSog
YW5jZXN0b3IgPSBwYXJlbnROb2RlKCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5w
YXJlbnROb2RlKCkpIHsKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCphbmNlc3RvcikpCiAgICAg
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8RWxlbWVudD4oYW5jZXN0b3IpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5k
ZXggMDRlMzhkMjViNDNiNDBmYmQ1YjM2NGNmNDMzZTc3YzNjMTA3MzVjNC4uYTJmYzQzODg5NDBl
MjJjZjc1YmY1OTViNzQ4OWRkODM5MmQ1MDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0xMjUsNyArMTI1
LDYgQEAgcHVibGljOgogICAgICAgICBBVFRSSUJVVEVfTk9ERSA9IDIsCiAgICAgICAgIFRFWFRf
Tk9ERSA9IDMsCiAgICAgICAgIENEQVRBX1NFQ1RJT05fTk9ERSA9IDQsCi0gICAgICAgIEVOVElU
WV9SRUZFUkVOQ0VfTk9ERSA9IDUsCiAgICAgICAgIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9E
RSA9IDcsCiAgICAgICAgIENPTU1FTlRfTk9ERSA9IDgsCiAgICAgICAgIERPQ1VNRU5UX05PREUg
PSA5LApAQCAtMTM0LDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgWFBBVEhfTkFNRVNQQUNF
X05PREUgPSAxMywKICAgICB9OwogICAgIGVudW0gRGVwcmVjYXRlZE5vZGVUeXBlIHsKKyAgICAg
ICAgRU5USVRZX1JFRkVSRU5DRV9OT0RFID0gNSwKICAgICAgICAgRU5USVRZX05PREUgPSA2LAog
ICAgICAgICBOT1RBVElPTl9OT0RFID0gMTIsCiAgICAgfTsKQEAgLTQxNyw3ICs0MTcsNiBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0luU2hhZG93VHJlZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWco
SXNJblNoYWRvd1RyZWVGbGFnKTsgfQogICAgIGJvb2wgaXNJblRyZWVTY29wZSgpIGNvbnN0IHsg
cmV0dXJuIGdldEZsYWcoc3RhdGljX2Nhc3Q8Tm9kZUZsYWdzPihJbkRvY3VtZW50RmxhZyB8IElz
SW5TaGFkb3dUcmVlRmxhZykpOyB9CiAKLSAgICBib29sIGlzUmVhZE9ubHlOb2RlKCkgY29uc3Qg
eyByZXR1cm4gbm9kZVR5cGUoKSA9PSBFTlRJVFlfUkVGRVJFTkNFX05PREU7IH0KICAgICBib29s
IGlzRG9jdW1lbnRUeXBlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG5vZGVUeXBlKCkgPT0gRE9DVU1F
TlRfVFlQRV9OT0RFOyB9CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5
cGUpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdW5zaWduZWQgY291bnRDaGlsZE5vZGVz
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IDQ4YTBhMTkyYTdi
ZWUwY2ZmMjA5ZDVlYTRkODljOWMzMWEwNGM3MDkuLmRhOWQwMjNiMjVlOGY5ZjJiZjU3YWM4ODEw
MzhkNzI1ZDVlMWM2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC03Niw4
ICs3Niw4IEBAIGJvb2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRvUHJldmlvdXMo
Tm9kZSogcm9vdCkKICAgICByZXR1cm4gbm9kZTsKIH0KIAotTm9kZUl0ZXJhdG9yOjpOb2RlSXRl
cmF0b3IoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNl
cykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92
ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yOjpOb2RlSXRl
cmF0b3IoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCisgICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJv
b3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkKICAgICAsIG1fcmVmZXJlbmNl
Tm9kZShyb290KCksIHRydWUpCiB7CiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmF0dGFjaE5vZGVJ
dGVyYXRvcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAppbmRleCA5NzE5Mjc0YTNk
YTFiOTc1NDA2YWE3MWNjNWU5ZWFlNWYzYzdkMzM1Li40ZjE1MDdkZTAzYWMzMDNlNWYxODBiMzMx
MTI2ODA3NGM2OTgwODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJh
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCkBAIC0zNyw5ICsz
Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE5vZGVJdGVyYXRvciA6IHB1
YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPE5vZGVJdGVyYXRvcj4sIHB1
YmxpYyBOb2RlSXRlcmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8
Tm9kZUl0ZXJhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5k
RW50aXR5UmVmZXJlbmNlcykKKyAgICAgICAgc3RhdGljIFJlZjxOb2RlSXRlcmF0b3I+IGNyZWF0
ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJl
ZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1v
dmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1v
dmUoZmlsdGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIApAQCAt
NTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbm9kZVdpbGxC
ZVJlbW92ZWQoTm9kZSYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTm9kZUl0ZXJhdG9yKFBh
c3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0
ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIE5vZGVJdGVyYXRv
cihQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2Rl
RmlsdGVyPiYmKTsKIAogICAgICAgICBzdHJ1Y3QgTm9kZVBvaW50ZXIgewogICAgICAgICAgICAg
UmVmUHRyPE5vZGU+IG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0
ZXJhdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCmluZGV4IDEy
MDI1ZGU2YjhiNDk0NzNlZmQ3Zjc4NDAxMWY0MWY3NjEzMDdiNjcuLjIzMTEyZDk5NDNmNTkzMzdh
ZmYxNWRhY2M3YzFlZTViN2E1Zjc5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlSXRlcmF0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRs
CkBAIC0yNiw3ICsyNiw5IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93OwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBOb2RlRmlsdGVyIGZpbHRlcjsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09C
SkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXM7CisjZW5kaWYKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgTm9kZSByZWZlcmVuY2VOb2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIHBvaW50ZXJCZWZvcmVSZWZlcmVuY2VOb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA1
MmUyZjE5MzIxNjdhZmM4NWE1MTlkZTUwOWZkNTFiYWYxNjA5NDkzLi44YzFlMmIwZDgyNDA3Y2Rl
MjMwNmFmZjM2YjE1YWE0OTE3NGEzNGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTU3Miw3ICs1
NzIsNiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxlbmd0aE9mQ29udGVudHNJbk5vZGUoTm9k
ZSogbm9kZSkKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENoYXJhY3RlckRhdGE+KCpub2RlKS5s
ZW5ndGgoKTsKICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFU
VFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAg
IGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVf
Tk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC03MzMsNyAr
NzMyLDYgQEAgUmVmUHRyPE5vZGU+IFJhbmdlOjpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0
cyhBY3Rpb25UeXBlIGFjdGlvbiwgUGFzc1JlZlB0cjwKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBOb2RlOjpFTEVNRU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAg
ICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VN
RU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgY2FzZSBO
b2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgpAQCAtODU2LDEzICs4NTQsNiBAQCB2b2lkIFJh
bmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05f
QUxMT1dFRF9FUlI6IFJhaXNlZCBpZiBhbiBhbmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVyIGJv
dW5kYXJ5LXBvaW50IG9mCi0gICAgLy8gdGhlIFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBpZiAo
Y29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gSElFUkFSQ0hZX1JF
UVVFU1RfRVJSOiBSYWlzZWQgaWYgdGhlIGNvbnRhaW5lciBvZiB0aGUgc3RhcnQgb2YgdGhlIFJh
bmdlIGlzIG9mIGEgdHlwZSB0aGF0CiAgICAgLy8gZG9lcyBub3QgYWxsb3cgY2hpbGRyZW4gb2Yg
dGhlIHR5cGUgb2YgbmV3Tm9kZSBvciBpZiBuZXdOb2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBj
b250YWluZXIuCiAKQEAgLTEwMjIsNyArMTAxMyw2IEBAIE5vZGUqIFJhbmdlOjpjaGVja05vZGVX
T2Zmc2V0KE5vZGUqIG4sIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAg
ICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAg
ICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6
OlhQQVRIX05BTUVTUEFDRV9OT0RFOiB7CiAgICAgICAgICAgICBpZiAoIW9mZnNldCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTEwNTIsNyArMTA0Miw2IEBAIHZvaWQgUmFu
Z2U6OmNoZWNrTm9kZUJBKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAg
ICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9U
WVBFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNl
IE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNT
SU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAg
ICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTA3Miw3ICsxMDYxLDYg
QEAgdm9pZCBSYW5nZTo6Y2hlY2tOb2RlQkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNv
bnN0CiAgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6
OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0g
ICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5v
ZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhU
X05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTQ5
LDcgKzExMzcsNiBAQCB2b2lkIFJhbmdlOjpzZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9O
T0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAg
Y2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9S
RUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVD
VElPTl9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAg
ICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTE2NSw3ICsxMTUyLDYgQEAg
dm9pZCBSYW5nZTo6c2VsZWN0Tm9kZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykK
ICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9D
VU1FTlRfVFlQRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAg
ICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6
UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9E
RToKICAgICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyMDQsNyAr
MTE5MCw2IEBAIHZvaWQgUmFuZ2U6OnNlbGVjdE5vZGVDb250ZW50cyhOb2RlKiByZWZOb2RlLCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01F
TlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAg
ICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJ
VFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5T
VFJVQ1RJT05fTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAg
ICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyNDMsMjAgKzEyMjgs
MTIgQEAgdm9pZCBSYW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NO
ZXdQYXJlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NF
Q1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNh
c2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVO
Q0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6
CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRI
X05BTUVTUEFDRV9OT0RFOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgLy8gTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVy
IG9mIGVpdGhlciBib3VuZGFyeS1wb2ludCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9u
bHkuCi0gICAgaWYgKGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8v
IFJhaXNlIGEgSElFUkFSQ0hZX1JFUVVFU1RfRVJSIGlmIHN0YXJ0Q29udGFpbmVyKCkgZG9lc24n
dCBhY2NlcHQgY2hpbGRyZW4gbGlrZSBuZXdQYXJlbnQuCiAgICAgTm9kZSogcGFyZW50T2ZOZXdQ
YXJlbnQgPSAmc3RhcnRDb250YWluZXIoKTsKIApAQCAtMTMzMCwzNiArMTMwNywxNiBAQCB2b2lk
IFJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIGlmICghY29tbW9uQW5jZXN0b3JDb250YWluZXIoKSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgaWYgKGFjdGlvbiAhPSBFeHRyYWN0KQorICAgICAgICByZXR1cm47CisKICAg
ICBOb2RlKiBwYXN0TGFzdCA9IHBhc3RMYXN0Tm9kZSgpOwogICAgIGZvciAoTm9kZSogbiA9IGZp
cnN0Tm9kZSgpOyBuICE9IHBhc3RMYXN0OyBuID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbikpIHsK
LSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgICAgIGVjID0gTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgaWYgKGFjdGlvbiA9PSBFeHRyYWN0ICYmIG4tPm5vZGVUeXBlKCkgPT0gTm9k
ZTo6RE9DVU1FTlRfVFlQRV9OT0RFKSB7CisgICAgICAgIGlmIChuLT5pc0RvY3VtZW50VHlwZU5v
ZGUoKSkgewogICAgICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAoY29udGFpbmVkQnlSZWFk
T25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotfQotCi1ib29sIFJhbmdlOjpjb250YWluZWRCeVJlYWRPbmx5
KCkgY29uc3QKLXsKLSAgICBmb3IgKE5vZGUqIG4gPSAmc3RhcnRDb250YWluZXIoKTsgbjsgbiA9
IG4tPnBhcmVudE5vZGUoKSkgewotICAgICAgICBpZiAobi0+aXNSZWFkT25seU5vZGUoKSkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBmb3IgKE5vZGUqIG4gPSAmZW5kQ29u
dGFpbmVyKCk7IG47IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVh
ZE9ubHlOb2RlKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwogfQogCiBOb2RlKiBSYW5nZTo6Zmlyc3ROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgK
aW5kZXggYzhmMjk5M2FkZDBkMTU5ZmFjNTJiZGFjN2YxY2M5MzBiZGU1ZjZlZS4uNGMxMTE2MjBh
NzJkNzE3ODU4MjU1Y2Q5ZTAzNTFlMzRlZWJlMjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTE2MSw3
ICsxNjEsNiBAQCBwcml2YXRlOgogCiAgICAgTm9kZSogY2hlY2tOb2RlV09mZnNldChOb2RlKiwg
aW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tOb2RlQkEo
Tm9kZSosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5lZEJ5UmVhZE9u
bHkoKSBjb25zdDsKIAogICAgIGVudW0gQWN0aW9uVHlwZSB7IERlbGV0ZSwgRXh0cmFjdCwgQ2xv
bmUgfTsKICAgICB2b2lkIGNoZWNrRGVsZXRlRXh0cmFjdChBY3Rpb25UeXBlLCBFeGNlcHRpb25D
b2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggMDRjZWY1Y2ExZDE0ODM3YjI3
YWY3Zjc0MjlkNjdkMmZjYjcwZjM4Ni4uNDU1NDdmZWIyNGUyYmJjNTEyYzUyNGRmM2UzNjI3ZWQy
ZWVmMDc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMTA5LDcgKzEwOSw2IEBA
IGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAog
ICAgIGNhc2UgQ09NTUVOVF9OT0RFOgogICAgIGNhc2UgVEVYVF9OT0RFOgogICAgIGNhc2UgQ0RB
VEFfU0VDVElPTl9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmF2ZXJzYWwuY3BwCmluZGV4IDc0YTkyOGY3Y2MwMjliNmYzM2NmZGNlNTFhMWYyYTNh
MzFmZWRiNTIuLjNjNGE5NTViMTExMDZjZGEyMjI4NWE5ZjUyNzE3MDdiMWQ5Yzc3ZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmF2ZXJzYWwuY3BwCkBAIC0zMCwxOCArMzAsMTUgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1Ob2RlSXRlcmF0b3JCYXNlOjpOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8
Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0
ZXI+JiYgbm9kZUZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJh
dG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNp
Z25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIG5vZGVGaWx0ZXIpCiAg
ICAgOiBtX3Jvb3Qocm9vdE5vZGUpCiAgICAgLCBtX3doYXRUb1Nob3cod2hhdFRvU2hvdykKICAg
ICAsIG1fZmlsdGVyKFdURjo6bW92ZShub2RlRmlsdGVyKSkKLSAgICAsIG1fZXhwYW5kRW50aXR5
UmVmZXJlbmNlcyhleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQogewogfQogCiBzaG9ydCBOb2RlSXRl
cmF0b3JCYXNlOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6
IFRvIGhhbmRsZSBYTUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBjaGVjayBtX2V4cGFuZEVu
dGl0eVJlZmVyZW5jZXMuCi0KICAgICAvLyBUaGUgYml0IHR3aWRkbGluZyBoZXJlIGlzIGRvbmUg
dG8gbWFwIERPTSBub2RlIHR5cGVzLCB3aGljaCBhcmUgZ2l2ZW4gYXMgaW50ZWdlcnMgZnJvbQog
ICAgIC8vIDEgdGhyb3VnaCAxNCwgdG8gd2hhdFRvU2hvdyBiaXQgbWFza3MuCiAgICAgaWYgKCEo
KCgxIDw8IChub2RlLT5ub2RlVHlwZSgpIC0gMSkpICYgbV93aGF0VG9TaG93KSkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJhdmVyc2FsLmgKaW5kZXggZWQ2ZThkZGJkMGMyNjYxNWUzMzdhMmU0MmM5YjlkOTM1OGY4ZmRk
YS4uZmZiZDU0OWIxZGU4NDg2MDQzZWU0ZDBiNDIwYTdkZGNhNzQ4ZmE3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmF2ZXJzYWwuaApAQCAtMzgsMTcgKzM4LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgTm9kZSogcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdC5nZXQoKTsgfQogICAgICAgICB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3coKSBjb25zdCB7IHJldHVybiBtX3doYXRUb1Nob3c7IH0K
ICAgICAgICAgTm9kZUZpbHRlciogZmlsdGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXIuZ2V0
KCk7IH0KLSAgICAgICAgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1
cm4gbV9leHBhbmRFbnRpdHlSZWZlcmVuY2VzOyB9CisgICAgICAgIGJvb2wgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0g
ICAgICAgIE5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3
aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzKTsKKyAgICAgICAgTm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25l
ZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKICAgICAgICAgc2hvcnQg
YWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8
Tm9kZT4gbV9yb290OwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fd2hhdFRvU2hvdzsKICAgICAg
ICAgUmVmUHRyPE5vZGVGaWx0ZXI+IG1fZmlsdGVyOwotICAgICAgICBib29sIG1fZXhwYW5kRW50
aXR5UmVmZXJlbmNlczsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVdhbGtlci5jcHAKaW5kZXggYWQwYWNlMTk5YjdkYTY5ZWVjYjIwNDNhMjhjOWVmNDRm
YzA2M2Q0Ni4uODc3NDgyYWZmNDdhM2M1NDM0YWY3NTMyZTZkYzA1M2QxNTEzY2QxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlV2Fsa2VyLmNwcApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVRyZWVXYWxrZXI6OlRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9k
ZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIs
IGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9v
dE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzKQorVHJlZVdhbGtlcjo6VHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKKyAg
ICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0
ZXIpKQogICAgICwgbV9jdXJyZW50KHJvb3QoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5o
CmluZGV4IGJmNjliZGVjZTA5OWJjZDE0ZGJhZmQ1OGYwMTdjZmJkODdiNTE1NjMuLjIyOGYyM2Q0
NzQ2YTIxNTliYjUwYmY2YWE2Mjc4OGI3MzM2NGZiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlV2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIu
aApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUcmVl
V2Fsa2VyIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8VHJlZVdh
bGtlcj4sIHB1YmxpYyBOb2RlSXRlcmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0
YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVu
c2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29s
IGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCisgICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4g
Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUcmVlV2Fsa2VyKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6
Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgVHJlZVdhbGtlcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjpt
b3ZlKGZpbHRlcikpKTsKICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAog
ICAgICAgICBOb2RlKiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQo
KTsgfQpAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUq
IG5leHROb2RlKCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQ
dHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYs
IGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIFRyZWVXYWxrZXIoUGFzc1Jl
ZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4m
Jik7CiAgICAgICAgIAogICAgICAgICBOb2RlKiBzZXRDdXJyZW50KFBhc3NSZWZQdHI8Tm9kZT4p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKaW5kZXggNDgwOWVlM2Q0ZjFkMWZkNDA4NWUx
YTExOTczYThkZjQwMjBlNDcxNS4uYWQ1Y2I1ZDY0MDMxMGY4YzAzODk2MWY1MTMyZDViZGRkMjM2
NmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbApAQCAtMjYsNyArMjYsOSBAQAogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJvb3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgd2hhdFRvU2hvdzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRl
ciBmaWx0ZXI7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVm
ZXJlbmNlczsgICAgICAgIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExB
TkdVQUdFX09CSkVDVElWRV9DCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5k
RW50aXR5UmVmZXJlbmNlczsKKyNlbmRpZgogICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0
dHJpYnV0ZSBOb2RlIGN1cnJlbnROb2RlOwogCiAgICAgTm9kZSBwYXJlbnROb2RlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IDgzNDU1NzIw
NDk2YTBkMTBkZDA2ZmMwZWE0ZWViZjQzOGNiNGVjMjYuLjcxMmFiZmFmOGNlY2NjOGYyNzc2ZWE1
MDU4NmRjM2EwMTBhY2Y1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNj
dW11bGF0b3IuY3BwCkBAIC01NzMsNyArNTczLDYgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6
YXBwZW5kU3RhcnRNYXJrdXAoU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBjb25zdCBOb2RlJiBub2QK
ICAgICAgICAgYXBwZW5kQ0RBVEFTZWN0aW9uKHJlc3VsdCwgZG93bmNhc3Q8Q0RBVEFTZWN0aW9u
Pihub2RlKS5kYXRhKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVU
RV9OT0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2Ug
Tm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0
aWwuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKaW5kZXggNmY2NjRkODQw
MWZmNzE3MDUyNjg2MDNlMDQxZWJmNzdiNThmM2M0NC4uYmVhZGI0ZGYyMGZlOGU0NDBhMjUzNGMy
MTk0Y2M4ODdhNjQ3NjY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRp
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKQEAgLTcxLDcgKzcx
LDYgQEAgYm9vbCBpc1ZhbGlkQ29udGV4dE5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAg
ICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICByZXR1cm4gIShub2RlLT5wYXJl
bnROb2RlKCkgJiYgbm9kZS0+cGFyZW50Tm9kZSgpLT5pc0F0dHJpYnV0ZU5vZGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01JbnRlcm5hbHMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0KaW5kZXggZTVjNmYwMmZjOGRjODExMDg4ODNl
YWI3NTAyYzUyMzg4OGZlN2VlMy4uZDU3ZGZjZDNlYmEwZDI3NTQ2OTUxZmVmNGU0ODA0ZGJhMjI3
ZTg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5tbQpAQCAtNzYsNyArNzYs
NiBAQCBzdGF0aWMgQ2xhc3MgV0tET01Ob2RlQ2xhc3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKICAg
ICAgICAgcmV0dXJuIFtXS0RPTVRleHQgY2xhc3NdOwogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6
QVRUUklCVVRFX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNUSU9OX05P
REU6Ci0gICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAg
Y2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgY2Fz
ZSBXZWJDb3JlOjpOb2RlOjpDT01NRU5UX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpE
T0NVTUVOVF9UWVBFX05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggODcxMDVhOGI2Y2Y2ZGE5OTkwMWMxMWQ3YWJh
MDRhZmVkMmVmODNkMS4uODYzYTg1NGU5NmU0ZmIyNWM0ZjQwOGE0NTZmMjFjZmI4OTllNGIxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQpAQCAtMjMyNCwxMSArMjMyNCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBc3Np
c3RhYmxlRWxlbWVudChFbGVtZW50JiBub2RlKQogICAgIGlmIChpczxIVE1MU2VsZWN0RWxlbWVu
dD4obm9kZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChpczxIVE1MVGV4dEFyZWFF
bGVtZW50Pihub2RlKSkKLSAgICAgICAgcmV0dXJuICFkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVt
ZW50Pihub2RlKS5pc1JlYWRPbmx5Tm9kZSgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBp
ZiAoaXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVu
dCYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obm9kZSk7CiAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGxhdW5kcnkgbGlzdCBvZiB0eXBlcyBpcyBub3QgYSBnb29kIHdh
eSB0byBmYWN0b3IgdGhpcy4gTmVlZCBhIHN1aXRhYmxlIGZ1bmN0aW9uIG9uIEhUTUxJbnB1dEVs
ZW1lbnQgaXRzZWxmLgotICAgICAgICByZXR1cm4gIWlucHV0RWxlbWVudC5pc1JlYWRPbmx5Tm9k
ZSgpICYmIChpbnB1dEVsZW1lbnQuaXNUZXh0RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRl
RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlVGltZUxvY2FsRmllbGQoKSB8fCBpbnB1dEVs
ZW1lbnQuaXNNb250aEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzVGltZUZpZWxkKCkpOworICAg
ICAgICByZXR1cm4gaW5wdXRFbGVtZW50LmlzVGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50Lmlz
RGF0ZUZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5w
dXRFbGVtZW50LmlzTW9udGhGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpOwog
ICAgIH0KICAgICByZXR1cm4gbm9kZS5pc0NvbnRlbnRFZGl0YWJsZSgpOwogfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI2
YWMxMWM1MjUxNzE1NGUyNGJkMDUyYjIyOGQxMDgzZTk5N2ZjYjUuLjRlYzE1NTYwZTEzZGZhODFl
MjU4YzViZjgzMzMzMTc1MDRkNDljOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wOS0x
OCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9y
dCBmb3IgbGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHNldmVyYWwgb3V0ZGF0ZWQg
RE9NIGNvbXBsaWFuY2UgdGVzdHMuIFVwZGF0ZSAvIFJlYmFzZWxpbmUgb3RoZXJzLgorCiAyMDE1
LTA5LTE4ICBKYWtlIE5pZWxzZW4gIDxqYWNvYl9uaWVsc2VuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OOiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJl
cXVlc3QtdGltZW91dC1vdmVycmlkZXMuaHRtbCBpcyBmbGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggMDNiNGUzYTVlMGMzNzgyMTZhMDBlMzA2NTFhZTliNzA1ZGVjYzE0Zi4u
NWQ1ZjdlZDZlNDQ0YTk4MTNlNTVhYmQ4NTNhMGZhMGI0ZjkwZWZjMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTUtMDktMTggIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBF
bnRpdHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXM0MgRE9NIHRlc3Qgbm93IHRoYXQgbW9y
ZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0OgorCisyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKICAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBFbnRpdHkgTm9kZSB0
eXBlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDky
MzkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEyYThlNDY2MTI0YjE4ZmY0YzViNjQ3ZWFiZmE3NzAxNTQ0ZDgxZDcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0
bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50
cmVmLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdDoJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYKLVN0YXR1czoJU3VjY2VzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2I1OWFjMzY2OWEwY2Q2NzZi
NDZlNGQ5ZmNiNzRmYjYxNmIxODNhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0
LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4K
LTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgi
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYuanMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFy
dGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBu
dW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRh
cnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5
ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkg
T2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxz
dXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2Jl
cnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAg
PHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9w
PgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBi
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2U3ZTEyNzg0MWVmOTg2ZDYxNjg2OWEyMjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZl
bDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAw
MS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0
dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5m
b3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMg
UmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0
d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmln
aHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0
aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBv
ZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAi
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiOwotICAgfQotCi12YXIgZG9j
c0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlz
IGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAg
ICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29u
ZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBs
b2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBz
ZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAg
ICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlv
biBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkg
ewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkg
dGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVk
QnVpbGRlcigpOwotICAgICAgIGNoZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotICAgIFRoZSAiY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKHRhZ05hbWUpIiBtZXRob2QgcmFpc2VzIGFuCi0gICBJTlZBTElE
X0NIQVJBQ1RFUl9FUlIgRE9NRXhjZXB0aW9uIGlmIHRoZSBzcGVjaWZpZWQKLSAgIHRhZ05hbWUg
Y29udGFpbnMgYW4gaW52YWxpZCBjaGFyYWN0ZXIuIAotCi0qIEBhdXRob3IgTklTVAotKiBAYXV0
aG9yIE1hcnkgQnJhZHkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYn
KS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNv
cmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUn
KS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmlu
Zy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5Ci0qLwotZnVuY3Rpb24g
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmIikgIT0gbnVsbCkgcmV0dXJuOwot
ICAgIHZhciBkb2M7Ci0gICAgICB2YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVy
LmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJmb28iKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3Vj
Y2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsK
LQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0J
fQotCi0JfQotCQotCQllbHNlIHsKLQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
aW52YWxpZF5OYW1lIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgidGhyb3dfSU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9
Ci0KLQkJfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWFlYmU0MDQ0
NzhkOGIwMjViNTFjNmFlM2MzNjY1ZDVhMzcwMzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmMS5odG1sIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjZkMDljZGFiYzIwYzE3MjY1YWFmMjU5NzZlMzMy
NDlmNWQxYjk0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0g
ICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBp
cyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwu
anMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpz
Ij48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAg
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xk
c1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFt
cDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgot
ICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBK
b25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+
MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0
cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9z
dHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAw
PC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5v
cmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmMS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjRkMWVjOTc1
MzI5YjE3ZDcyM2NlM2MwZTk3OWU1ZDVmOTBmNDBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9k
b2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTQwICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBX
b3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBU
ZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNz
IGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVk
LiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGlj
ZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsx
XSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3
YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVu
dGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAot
ICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkg
cmVmZXJlbmNlIHdpdGggYW4gZW1wdHkgbmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFS
QUNURVJfRVJSLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9p
bnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJf
RVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEt
MTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9p
bnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRp
b24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9F
UlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/
aWQ9NTI1Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlS
ZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkp
IHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVu
dGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0J
CWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZp
bmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQ
T1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlz
dWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCIiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAg
ICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9
PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1
Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFs
dWUyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0
dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
MTA4MmNiZWFlNGY2ZDg4ZGZkMDY0ZWRiNGMyZDlhYWI5NjE1YzNkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVs
MS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sIGIv
TGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmI3YmI4YzgxMDljZjU5M2RmZWY4NWJjOWNk
MzRhZTRjYjI4OGQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAi
LS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0
bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0
bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNl
dD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpz
Ij48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAg
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xk
c1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFt
cDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgot
ICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBK
b25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+
MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0
cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9z
dHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAw
PC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5v
cmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19h
dHRyZ2V0dmFsdWUyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0
cmdldHZhbHVlMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjYzJhZTM1ZTI3
YjQ5NDQ4ZDA3ZDYxNjRiNDliMGE5ODMwY2NmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19h
dHRyZ2V0dmFsdWUyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEw
MDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMg
Y2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0
aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4
Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3Rh
cnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0
ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVu
IGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgp
IHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0g
ICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRp
b24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0g
ICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0
dHJpYnV0ZSB0aGF0IGNvbnRhaW5zIGVudGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3Vy
dCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwt
MS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19h
dHRyZ2V0dmFsdWUyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAiaGNfYXR0cmdldHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2
YXIgZG9jOwotICAgICAgdmFyIGFjcm9ueW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAg
ICAgdmFyIGF0dHJpYnV0ZXM7Ci0gICAgICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVl
OwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJz
dENoaWxkOwotICAgICAgdmFyIGFscGhhUmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJhY3JvbnltIik7Ci0gICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0o
Myk7Ci0gICAgICBhdHRyaWJ1dGVzID0gdGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0
bGVBdHRyID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigK
LQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixz
dWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5m
aXJzdENoaWxkOwotCi0gICAgICByZXR2YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhh
UmVmLGZpcnN0Q2hpbGQpOwotICAgICAgdmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAg
IGFzc2VydEVxdWFscygiYXR0clZhbHVlMSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0K
LQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIo
KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25v
ZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3Jl
L2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzcwYzdjM2RiMWRmZTc4ZDg3YTUxYzRiYWQxMTZkMjk4MzhmMWMwZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9s
ZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyICswLDAgQEAKLVRlc3Q6CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbCBiL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4MDQ2ZjEyZmI4OGIyZWI5Y2U2NmY5NjBmMmIyYmQx
OWE0NzdhOWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzND
Ly9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0
cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRG
LTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJoY19ub2RldmFsdWUwMy5qcyI+PC9zY3Jp
cHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxl
dGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0
aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3Vw
PjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
Ij4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlz
IGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsK
LVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0
YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
PgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0g
IDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgot
ICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgot
ICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVl
MDMuanMgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTYxNjcxYWE0YjM4YTY1YTFjZWQ0Zjk1
OWE4YjE0NjM1ZjMxMjU4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25v
ZGV2YWx1ZTAzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWls
ZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRl
c3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgot
Ly8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNo
cm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNl
LCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0
aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJv
ZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdl
U3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVz
IHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAg
ICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1BbiBlbnRpdHkgcmVmZXJlbmNl
IGlzIGNyZWF0ZWQsIHNldE5vZGVWYWx1ZSBpcyBjYWxsZWQgd2l0aCBhIG5vbi1udWxsIGFyZ3Vt
ZW50LCBidXQgZ2V0Tm9kZVZhbHVlCi1zaG91bGQgc3RpbGwgcmV0dXJuIG51bGwuCi0KLSogQGF1
dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURP
TS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELUY2OEQwODAKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC0xMUM5ODQ5MAotKi8KLWZ1bmN0aW9uIGhjX25vZGV2YWx1ZTAzKCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfbm9kZXZh
bHVlMDMiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdOb2Rl
OwotICAgICAgdmFyIG5ld1ZhbHVlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09
ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7
Ci0gICAgICAgICAgICBuZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2Ug
ewotCQkJbmV3Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAg
IGFzc2VydE5vdE51bGwoImNyZWF0ZWRFbnRSZWZOb3ROdWxsIixuZXdOb2RlKTsKLW5ld1ZhbHVl
ID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51bGwoImluaXRpYWxseU51bGwi
LG5ld1ZhbHVlKTsKLSAgICBuZXdOb2RlLm5vZGVWYWx1ZSA9ICJUaGlzIHNob3VsZCBoYXZlIG5v
IGVmZmVjdCI7Ci0KLSAgICAgIG5ld1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAg
IGFzc2VydE51bGwoIm51bGxBZnRlckF0dGVtcHRlZENoYW5nZSIsbmV3VmFsdWUpOwotICAgIAot
CQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19ub2RldmFsdWUw
MygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBh
dGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMzhjZWMwYTg5ZDRhNWZhY2U2YjNjYjI0MDM2OTg3ZDc5OGI2Zjg3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2
ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQYXRoRXZhbHVhdG9yX2V2YWx1
YXRlX05PVF9TVVBQT1JURURfRVJSOiBTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVE
X0VSUi5qcyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9y
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2YmUwMThjOGE2NjMwNTQ5Njc4M2QxYjc1YWMwZTc0YmYyMjM3ZGZmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcv
bGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLS8vIGV4cG9zZSB0ZXN0IGZ1bmN0aW9uIG5h
bWVzCi1mdW5jdGlvbiBleHBvc2VUZXN0RnVuY3Rpb25OYW1lcygpCi17Ci1yZXR1cm4gWydYUGF0
aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUiddOwotfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0g
cHJlbG9hZChkb2NSZWYsICJkb2MiLCAic3RhZmZOUyIpOwotICAgICAgICAKLSAgICAgICBpZiAo
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9u
RXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUg
Y29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4g
c2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3Vt
ZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdo
aWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4K
LWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoq
Ci0qICAgICAgIAotICAgICAgVGVzdCBpZiBYUGF0aEV2YWx1YXRvci5ldmFsdWF0ZSBwcm9wZXJs
eSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBlIExl
IEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV2YWx1YXRv
ci1ldmFsdWF0ZQotKi8KLWZ1bmN0aW9uIFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQ
T1JURURfRVJSKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlv
bihidWlsZGVyLCAiWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIiKSAh
PSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRvcjsKLSAg
ICAgIHZhciByZXN1bHQ7Ci0gICAgICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwotCi0gICAg
ICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVh
dG9yID0gY3JlYXRlWFBhdGhFdmFsdWF0b3IoZG9jKTsKLWNvbnRleHROb2RlID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiZW50aXR5bmFtZSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXN1bHQgPSB4cEV2YWx1YXRvci5ldmFsdWF0
ZSgiLy9mb286YmFyIixjb250ZXh0Tm9kZSxudWxsTlNSZXNvbHZlciwwLG51bGxSZXN1bHQpOwot
ICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2Rl
KSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRo
cm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURf
RVJSKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcgYi9MYXlvdXRUZXN0
cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9S
VEVEX0VSUi5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YjhiZGMxYzZkNDA5
NTk2ZTJhZTQ4NDIwZDdiZTdjZTkxODJlOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhF
dmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAg
LTEsNCArMCwwIEBACi08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1s
bnM6bmlzdD0iaHR0cDovL3d3dy5uaXN0LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEw
MCIgaGVpZ2h0PSIxMDAiLz4NCi08c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIiBzcmM9IlhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpz
Ii8+DQotPHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJz
dmd1bml0LmpzIi8+DQotPC9zdmc+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9s
ZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVz
c2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDEwYTdkY2M2YTY0MGY3ZjZmMDZjY2JmNGJlMDcwNjA1MjU1OTQ3
ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9T
VVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQ
YXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUjogU3VjY2VzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2
YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2Y2MTQ2NjEwOTNjY2ZjYzUxNzhiODY0YTZhMmMw
YjI5ZGY4Njk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0vLyBl
eHBvc2UgdGVzdCBmdW5jdGlvbiBuYW1lcwotZnVuY3Rpb24gZXhwb3NlVGVzdEZ1bmN0aW9uTmFt
ZXMoKQotewotcmV0dXJuIFsnWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURf
RVJSJ107Ci19Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51
bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZy
YW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAg
IElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwot
Ly8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0
YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBp
bW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRo
ZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9
ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRv
Y3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRl
ciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7
Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0g
ICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBt
ZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNo
cm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBz
eW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBh
Z2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRo
ZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlm
ICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogICAgICAgCi0gICAgICBUZXN0IGlmIFhQYXRoRXhw
cmVzc2lvbi5ldmFsdWF0ZSBwcm9wZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAg
IAotKiBAYXV0aG9yIFBoaWxpcHBlIExlIEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAz
MDMzMS94cGF0aCNYUGF0aEV4cHJlc3Npb24tZXZhbHVhdGUKLSovCi1mdW5jdGlvbiBYUGF0aEV4
cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIoKSB7Ci0gICB2YXIgc3VjY2VzczsK
LSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJYUGF0aEV4cHJlc3Npb25fZXZh
bHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsK
LSAgICAgIHZhciB4cEV2YWx1YXRvcjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAgICB2YXIgbnVs
bE5TUmVzb2x2ZXIgPSBudWxsOwotCi0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAg
ICAgIHZhciBjb250ZXh0Tm9kZTsKLSAgICAgIHZhciB4cGF0aEV4cHJlc3Npb247Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICB4cEV2YWx1YXRv
ciA9IGNyZWF0ZVhQYXRoRXZhbHVhdG9yKGRvYyk7Ci14cGF0aEV4cHJlc3Npb24gPSB4cEV2YWx1
YXRvci5jcmVhdGVFeHByZXNzaW9uKCIvL2ZvbyIsbnVsbE5TUmVzb2x2ZXIpOwotICAgICAgY29u
dGV4dE5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnRpdHluYW1lIik7Ci0gICAg
ICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9
IHhwYXRoRXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0Tm9kZSwwLG51bGxSZXN1bHQpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIFhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VS
UigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBh
dGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3Rz
L2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9S
VEVEX0VSUi5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmODZkNzUwYTM5ZGFh
ZjQ2Y2IwNGQ5ZjEzYTI3MGNmMjU1Y2NjZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhF
eHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2ZworKysgL2Rldi9udWxsCkBA
IC0xLDQgKzAsMCBAQAotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHht
bG5zOm5pc3Q9Imh0dHA6Ly93d3cubmlzdC5nb3YiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIx
MDAiIGhlaWdodD0iMTAwIi8+DQotPHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCIgc3JjPSJYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIu
anMiLz4NCi08c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9
InN2Z3VuaXQuanMiLz4NCi08L3N2Zz4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50
cmVmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmQ2ZDE3NzBhMTI3ODk5YTIyYWFjZjM2ZmNm
OTg2MTI2MDc3M2FmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVm
Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNlN2UxMjc4NDFlZjk4NmQ2MTY4NjlhMjI0MTQ4MTYxYTM5MTcwMDIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5q
cworKysgL2Rldi9udWxsCkBAIC0xLDE0MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBk
b2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8v
ICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBj
b25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50
IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlz
IHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAg
ICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0
aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRy
eSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1h
eSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3Vy
ZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAg
ZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAg
ICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBl
eCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAot
Ly8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8K
LS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRl
ZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQot
Ly8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJj
cmVhdGVFbnRpdHlSZWZlcmVuY2UodGFnTmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFM
SURfQ0hBUkFDVEVSX0VSUiBET01FeGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFt
ZSBjb250YWlucyBhbiBpbnZhbGlkIGNoYXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBh
dXRob3IgTWFyeSBCcmFkeQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURP
TS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBB
RicpL2NvbnN0YW50W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC0zOTJCNzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURP
TS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVB
RScpL3JhaXNlcy9leGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3Ry
aW5nLWJlZm9yZSguLCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlv
biBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxk
ZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3Mg
PSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBz
dWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkp
OwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsK
LQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJpbnZhbGlkXk5hbWUiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2Vz
cyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJ
fQotCQlhc3NlcnRUcnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwot
CX0KLQotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODEwOTgzMzIxMDRmMTBhOWEwNzNh
ZDAxZTRlNGExM2I4YTFlMzhjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+
Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3Rh
ZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5q
cyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5v
cnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0
YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4K
LSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAg
PGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAg
PHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8g
Qm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0
aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmlu
ZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0
ZWVudHJlZjEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjNi
Yzk5ODViNWMyYjdmNjAxYTEwZjg0ZTM5ZTY1MzY4MTM0Njg4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEv
Y29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEv
Y29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGQxZWM5NzUzMjliMTdkNzIzY2UzYzBlOTc5
ZTVkNWY5MGY0MGEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIg
YnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRo
ZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0
ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFz
eW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVy
d2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4
Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRo
ZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVw
UGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3Jl
YXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8K
LSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tG
ZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAg
IAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNo
SW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxv
YWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91
cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVz
IGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRv
IGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4g
ZW1wdHkgbmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBh
dXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1E
T00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAw
QUYnKS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0
cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25l
LWNvcmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1E
T00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1
QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0
cmluZy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rp
b24gZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAg
IHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Mg
PSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1
aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nl
c3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVh
dGVFbnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAg
ICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09
IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNz
KTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0J
CXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCIiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBl
b2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3Nl
cnRUcnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9
Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmMS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29y
ZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODNiYWI5ODRhZTdjYTJhZmViY2EwMjRlYzNk
ODBiODdkNDhmZTg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4K
LTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVl
Mi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMjA5YzNlNDM2
NGVkYzQ1NWQ1NGQ0MTUyMDk0ZTJlNjZhYWQ3NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hj
X2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUv
aGNfYXR0cmdldHZhbHVlMgotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJYXR0clZhbHVlMTogYXNz
ZXJ0RXF1YWxzIGZhaWxlZCwgYWN0dWFsIFnOsSwgZXhwZWN0ZWQgzrFZzrEuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGNjMmFlMzVlMjdiNDk0NDhkMDdkNjE2NGI0
OWIwYTk4MzBjY2YxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkg
dGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIg
b2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4g
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0
cmdldHZhbHVlMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0
dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNv
bnRhaW5zIGVudGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkg
ewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAi
aGNfYXR0cmdldHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIGFjcm9ueW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0
ZXM7Ci0gICAgICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRl
eHROb2RlOwotICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAg
dmFyIGFscGhhUmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3Jv
bnltIik7Ci0gICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRy
aWJ1dGVzID0gdGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmli
dXRlcy5nZXROYW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5j
b250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZh
bHNlOwotCQl0cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJhbHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNz
ID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9
Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0K
LQl9Ci0JCi0JCWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJhbHBoYSIpOwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0g
ICAgICByZXR2YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQp
OwotICAgICAgdmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygi
YXR0clZhbHVlMSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQot
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnho
dG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIu
eGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMmU0MDEzOGM1NTA4NDlkNzlk
MTdhODRhOWU0MjdiMjg1ZWVmYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRk
IiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2
OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0
ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICIm
Izk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFU
VExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaGNfYXR0cmdldHZhbHVlMi5qcyIvPjxzY3Jp
cHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0
VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgot
IDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRB
U2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlz
IGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7
dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+
Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0g
IDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0g
IDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVt
PkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5Q
ZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+
Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5t
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZp
bmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVl
MDMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDdiMWEyNjJm
YTg4MTZlOTcxZWMzMDc5NmQ3NjU5OTRlZjk4ZTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9o
Y19ub2RldmFsdWUwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9o
Y19ub2RldmFsdWUwMwotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUVycm9yOiBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU2MTY3MWFhNGIzOGE2NWExY2VkNGY5NTlhOGIxNDYzNWYzMTI1ODUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTM4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLUFuIGVudGl0eSByZWZlcmVuY2UgaXMgY3JlYXRlZCwgc2V0Tm9kZVZh
bHVlIGlzIGNhbGxlZCB3aXRoIGEgbm9uLW51bGwgYXJndW1lbnQsIGJ1dCBnZXROb2RlVmFsdWUK
LXNob3VsZCBzdGlsbCByZXR1cm4gbnVsbC4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2
ZWwtb25lLWNvcmUjSUQtRjY4RDA4MAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgv
UkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELTExQzk4NDkwCi0qLwot
ZnVuY3Rpb24gaGNfbm9kZXZhbHVlMDMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVj
a0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJoY19ub2RldmFsdWUwMyIpICE9IG51bGwpIHJldHVy
bjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5ld05vZGU7Ci0gICAgICB2YXIgbmV3VmFsdWU7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
Ci0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsK
LQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIG5ld05vZGUg
PSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9F
UlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQluZXdOb2RlID0gZG9jLmNy
ZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgiY3JlYXRl
ZEVudFJlZk5vdE51bGwiLG5ld05vZGUpOwotbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsK
LQotICAgICAgYXNzZXJ0TnVsbCgiaW5pdGlhbGx5TnVsbCIsbmV3VmFsdWUpOwotICAgIG5ld05v
ZGUubm9kZVZhbHVlID0gIlRoaXMgc2hvdWxkIGhhdmUgbm8gZWZmZWN0IjsKLQotICAgICAgbmV3
VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgibnVsbEFmdGVy
QXR0ZW1wdGVkQ2hhbmdlIixuZXdWYWx1ZSk7Ci0gICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhjX25vZGV2YWx1ZTAzKCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNzY1MWVjODlmYTg4MGJiNTI0Y2EyNGJhZjll
MWM1MjgxZmQyZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9U
RVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFF
TlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwh
RU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9u
eW0gZGlyIENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVU
Ri04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9ImhjX25vZGV2YWx1ZTAzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzc5M2UwNGNiNjRk
OWJlOGFmNWYwNmI3ZTUzODZjZjI0NmFiYzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudGFkb3B0bm9kZTA2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBA
QAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L2RvY3VtZW50YWRvcHRub2RlMDYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDRiOTQ4MTUyOGZlMjA4MWZiM2E0ZGMzZDQ5ZDI1
ZDA1NWE4ZjIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2Lmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTc1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkg
dGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIg
b2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4g
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1l
bnRhZG9wdG5vZGUwNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIg
YnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRo
ZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0
ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFz
eW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVy
d2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4
Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRo
ZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVw
UGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3Jl
YXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8K
LSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NM
b2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBj
YXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8v
Ci0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAg
ICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAg
IFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0v
LyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAg
ICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSBhZG9wdE5v
ZGUgb24gYSBuZXcgZG9jdW1lbnQgdG8gYWRvcHQgdGhlIGEgbmV3IEF0dHJpYnV0ZSBub2RlIGhh
dmluZyBhIFRleHQgYW5kIGFuIEVudGl0eVJlZmVyZW5jZSAKLQljaGlsZC4gIENoZWNrIGlmIHRo
aXMgYXR0cmlidXRlIGhhcyBiZWVuIGFkb3B0ZWQgc3VjY2Vzc2Z1bGx5IGJ5IHZlcmlmeWluZyB0
aGUgbm9kZU5hbWUsIG5hbWVzcGFjZVVSSSwgcHJlZml4LCAKLQlzcGVjaWZpZWQgYW5kIG93bmVy
RWxlbWVudCBhdHRyaWJ1dGVzIG9mIHRoZSBhZG9wdGVkIG5vZGUuICBBbHNvIHZlcmlmeSB0aGUg
b3duZXJEb2N1bWVudCBhdHRyaWJ1dGUKLQlvZiB0aGUgYWRvcHRlZCBub2RlIGFuZCB0aGUgYWRv
cHRlZCBjaGlsZHJlbiBvZiB0aGUgYXR0cmlidXRlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSog
QGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVD
LURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNEb2N1bWVudDMtYWRvcHROb2RlCi0qLwot
ZnVuY3Rpb24gZG9jdW1lbnRhZG9wdG5vZGUwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50YWRvcHRub2RlMDYiKSAhPSBu
dWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIg
ZG9tSW1wbDsKLSAgICAgIHZhciBuZXdBdHRyOwotICAgICAgdmFyIG5ld1RleHQ7Ci0gICAgICB2
YXIgbmV3RW50UmVmOwotICAgICAgdmFyIGFkb3B0ZWRBdHRyOwotICAgICAgdmFyIGFkb3B0VGV4
dDsKLSAgICAgIHZhciBhZG9wdEVudFJlZjsKLSAgICAgIHZhciBub2RlTGlzdDsKLSAgICAgIHZh
ciBub2RlTmFtZTsKLSAgICAgIHZhciBub2RlTmFtZXNwYWNlVVJJOwotICAgICAgdmFyIG5vZGVQ
cmVmaXg7Ci0gICAgICB2YXIgYXR0ck93bmVyRWxlbTsKLSAgICAgIHZhciBpc1NwZWNpZmllZDsK
LSAgICAgIHZhciBhZG9wdGVkVGV4dE5vZGVWYWx1ZTsKLSAgICAgIHZhciBhZG9wdGVkRW50UmVm
Tm9kZVZhbHVlOwotICAgICAgdmFyIG51bGxEb2NUeXBlID0gbnVsbDsKLQotICAgICAgdmFyIGFw
cGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIgZG9jRWxlbTsKLSAgICAgIHZhciByb290TlM7Ci0gICAg
ICB2YXIgcm9vdE5hbWU7Ci0gICAgICB2YXIgeG1sTlMgPSAiaHR0cDovL3d3dy53My5vcmcvWE1M
LzE5OTgvbmFtZXNwYWNlIjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAg
cm9vdE5hbWUgPSBkb2NFbGVtLnRhZ05hbWU7Ci0KLSAgICAgIHJvb3ROUyA9IGRvY0VsZW0ubmFt
ZXNwYWNlVVJJOwotCi0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9j
ID0gZG9tSW1wbC5jcmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwot
ICAgICAgbmV3QXR0ciA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUyh4bWxOUywieG1sOmxhbmciKTsK
LSAgICAgIG5ld1RleHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgTm9kZSIpOwotICAgICAg
bmV3RW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBuZXdBdHRyLmFwcGVuZENoaWxkKG5ld1RleHQpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IG5ld0F0dHIuYXBwZW5kQ2hpbGQobmV3RW50UmVmKTsKLSAgICAgIGFkb3B0ZWRB
dHRyID0gbmV3RG9jLmFkb3B0Tm9kZShuZXdBdHRyKTsKLSAgICAgIAotCWlmKAotCQotCShhZG9w
dGVkQXR0ciAhPSBudWxsKQotCi0JKSB7Ci0Jbm9kZU5hbWUgPSBhZG9wdGVkQXR0ci5ub2RlTmFt
ZTsKLQotICAgICAgbm9kZU5hbWVzcGFjZVVSSSA9IGFkb3B0ZWRBdHRyLm5hbWVzcGFjZVVSSTsK
LQotICAgICAgbm9kZVByZWZpeCA9IGFkb3B0ZWRBdHRyLnByZWZpeDsKLQotICAgICAgYXR0ck93
bmVyRWxlbSA9IGFkb3B0ZWRBdHRyLm93bmVyRWxlbWVudDsKLQotICAgICAgaXNTcGVjaWZpZWQg
PSBhZG9wdGVkQXR0ci5zcGVjaWZpZWQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRh
ZG9wdG5vZGUwNl9ub2RlTmFtZSIsInhtbDpsYW5nIixub2RlTmFtZSk7Ci0gICAgICAgYXNzZXJ0
RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X25hbWVzcGFjZVVSSSIseG1sTlMsbm9kZU5hbWVz
cGFjZVVSSSk7Ci0gICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X3ByZWZp
eCIsInhtbCIsbm9kZVByZWZpeCk7Ci0gICAgICAgYXNzZXJ0TnVsbCgiZG9jdW1lbnRhZG9wdG5v
ZGUwNl9vd25lckRvYyIsYXR0ck93bmVyRWxlbSk7Ci0gICAgYXNzZXJ0VHJ1ZSgiZG9jdW1lbnRh
ZG9wdG5vZGUwNl9zcGVjaWZpZWQiLGlzU3BlY2lmaWVkKTsKLW5vZGVMaXN0ID0gYWRvcHRlZEF0
dHIuY2hpbGROb2RlczsKLQotICAgICAgYWRvcHRUZXh0ID0gbm9kZUxpc3QuaXRlbSgwKTsKLSAg
ICAgIGFkb3B0RW50UmVmID0gbm9kZUxpc3QuaXRlbSgxKTsKLSAgICAgIGFkb3B0ZWRUZXh0Tm9k
ZVZhbHVlID0gYWRvcHRUZXh0Lm5vZGVWYWx1ZTsKLQotICAgICAgYWRvcHRlZEVudFJlZk5vZGVW
YWx1ZSA9IGFkb3B0RW50UmVmLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImRvY3Vt
ZW50YWRvcHRub2RlMDZfVGV4dE5vZGVWYWx1ZSIsIlRleHQgTm9kZSIsYWRvcHRlZFRleHROb2Rl
VmFsdWUpOwotICAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9FbnRSZWZO
b2RlVmFsdWUiLCJhbHBoYSIsYWRvcHRlZEVudFJlZk5vZGVWYWx1ZSk7Ci0gICAgICAgCi0JfQot
CQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUw
NigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50YWRvcHRub2RlMDYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvZG9jdW1lbnRhZG9wdG5vZGUwNi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjkyZDg5MGRhZGI1YTg3MzU5ZjQ5ZmVkNDE5OTQ3MzU4NGQyMTcyMC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/Pgot
PCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8v
RU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsi
PgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0Nzsi
PgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0
OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVN
ICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRs
JwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0g
ICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMg
Y29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
ZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
ImRvY3VtZW50YWRvcHRub2RlMDYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGFiMTg4NjFmYmU4YTUwZjU5YzgxMmFlYmQwNTMz
OWVhNTdjZjVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2Rl
MTYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4ZmQ2ZTJmZGMzNDdhMzQxMTA1NWJkYTJlZGU5YTIyMjliZTllZmU0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMTcwICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRl
IFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5
LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRo
ZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdv
cmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0g
aW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8v
d3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIx
MjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRo
ZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1m
dW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNiI7Ci0g
ICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0K
LS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29y
ayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRo
ZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAg
ICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwot
Ly8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlh
dGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0
LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5u
aW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50
IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNy
ZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAlj
YXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91
cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hy
b25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0
YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVz
dCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotLyoqCi0qIAotQ3JlYXRlIGEgZG9jdW1lbnQgZnJhZ21lbnQgd2l0aCBh
biBlbnRpdHkgcmVmZXJlbmNlLCBhZG9wdCB0aGUgbm9kZSBhbmQgY2hlY2sKLXRoYXQgdGhlIGVu
dGl0eSByZWZlcmVuY2UgdmFsdWUgY29tZXMgZnJvbSB0aGUgYWRvcHRpbmcgZG9jdW1lbnRzIERU
RC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0Rv
Y3VtZW50My1hZG9wdE5vZGUKLSovCi1mdW5jdGlvbiBkb2N1bWVudGFkb3B0bm9kZTE2KCkgewot
ICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9j
dW1lbnRhZG9wdG5vZGUxNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIGRvY0ZyYWdtZW50OwotICAgICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZhciBwYXJlbnQ7
Ci0gICAgICB2YXIgY2hpbGQ7Ci0gICAgICB2YXIgY2hpbGRzQXR0cjsKLSAgICAgIHZhciBlbnRS
ZWY7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgYWRvcHRlZDsKLSAgICAgIHZhciBw
YXJlbnRJbXA7Ci0gICAgICB2YXIgY2hpbGRJbXA7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAg
ICAgIHZhciBjaGlsZEF0dHJJbXA7Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFw
cGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIgYXR0ck5vZGU7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsK
LSAgICAgIHZhciBmaXJzdENoaWxkVHlwZTsKLSAgICAgIHZhciBmaXJzdENoaWxkTmFtZTsKLSAg
ICAgIHZhciBmaXJzdENoaWxkVmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRG
cmFnbWVudCgpOwotICAgICAgcGFyZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoInBhcmVudCIpOwot
ICAgICAgY2hpbGQgPSBkb2MuY3JlYXRlRWxlbWVudCgiY2hpbGQiKTsKLSAgICAgIGNoaWxkc0F0
dHIgPSBkb2MuY3JlYXRlQXR0cmlidXRlKCJzdGF0ZSIpOwotICAgICAgZW50UmVmID0gZG9jLmNy
ZWF0ZUVudGl0eVJlZmVyZW5jZSgiZ2FtbWEiKTsKLSAgICAgIHRleHROb2RlID0gZG9jLmNyZWF0
ZVRleHROb2RlKCJUZXN0Iik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gY2hpbGRzQXR0ci5hcHBl
bmRDaGlsZChlbnRSZWYpOwotICAgICAgYXR0ck5vZGUgPSBjaGlsZC5zZXRBdHRyaWJ1dGVOb2Rl
KGNoaWxkc0F0dHIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGNoaWxkLmFwcGVuZENoaWxkKHRl
eHROb2RlKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGQp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWdtZW50LmFwcGVuZENoaWxkKHBhcmVudCk7
Ci0gICAgICBhZG9wdGVkID0gZG9jLmFkb3B0Tm9kZShkb2NGcmFnbWVudCk7Ci0gICAgICAKLQlp
ZigKLQkKLQkoYWRvcHRlZCAhPSBudWxsKQotCi0JKSB7Ci0JcGFyZW50SW1wID0gYWRvcHRlZC5m
aXJzdENoaWxkOwotCi0gICAgICBjaGlsZEltcCA9IHBhcmVudEltcC5maXJzdENoaWxkOwotCi0g
ICAgICBhdHRyaWJ1dGVzID0gY2hpbGRJbXAuYXR0cmlidXRlczsKLQotICAgICAgY2hpbGRBdHRy
SW1wID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oInN0YXRlIik7Ci0gICAgICBmaXJzdENoaWxk
ID0gY2hpbGRBdHRySW1wLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImZpcnN0
Q2hpbGROb3ROdWxsIixmaXJzdENoaWxkKTsKLWZpcnN0Q2hpbGROYW1lID0gZmlyc3RDaGlsZC5u
b2RlTmFtZTsKLQotICAgICAgZmlyc3RDaGlsZFZhbHVlID0gZmlyc3RDaGlsZC5ub2RlVmFsdWU7
Ci0KLSAgICAgIGZpcnN0Q2hpbGRUeXBlID0gZmlyc3RDaGlsZC5ub2RlVHlwZTsKLQotICAgICAg
Ci0JaWYoCi0JKDUgPT0gZmlyc3RDaGlsZFR5cGUpCi0JKSB7Ci0JYXNzZXJ0RXF1YWxzKCJmaXJz
dENoaWxkRW50M1JlZiIsImdhbW1hIixmaXJzdENoaWxkTmFtZSk7Ci0gICAgICAgCi0JfQotCQot
CQllbHNlIHsKLQkJCWFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUxNiIsIlRleGFzIixm
aXJzdENoaWxkVmFsdWUpOwotICAgICAgIAotCQl9Ci0JCi0JfQotCQotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUxNigpOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5v
ZGUxNi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiYjlkZTFmYjkzOGIw
Nzk3NTMwZjExMzBjODcxODZlNzYzN2QxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1l
bnRhZG9wdG5vZGUxNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAg
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0
cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0
YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVs
dGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9u
MUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4K
LSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpk
bXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAg
ICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255
bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5U
SVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVt
ZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4
bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4t
LT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4
bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNf
c3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFy
c2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2Rl
MTYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVu
YW1lbm9kZTI3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9kb2N1bWVudHJlbmFtZW5vZGUyNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQzNzM0NDFkNDMwMjE0OTJmOTQzN2RmYjY2MGRjMGU0ZmEzNjM4MmQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3Ci1TdGF0dXMJZmFp
bHVyZQotTWVzc2FnZQl0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl8xOiBhc3NlcnRUcnVlIGZhaWxl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50
cmVuYW1lbm9kZTI3LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3Vt
ZW50cmVuYW1lbm9kZTI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjczY2Fj
YmM2ODk2YzY2Y2EyMzMwMmY2YTIxYWI2OWNlM2Q4NGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9kb2N1bWVudHJlbmFtZW5vZGUyNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3IjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi0JSW52b2tlIHRoZSByZW5hbWVOb2RlIG1ldGhvZCB0byBhdHRlbXB0IHRvIHJl
bmFtZSBuZXcgVGV4dCwgQ29tbWVudCwgQ0RhdGFTZWN0aW9uLAotCVByb2Nlc3NpbmdJbnN0cnVj
dGlvbiBhbmQgRW50aXR5UmVmZXJlbmNlIG5vZGVzIG9mIGEgbmV3IERvY3VtZW50LgotCUNoZWNr
IGlmIGEgTk9UX1NVUFBPUlRFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBh
dXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1E
T00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjRG9jdW1lbnQzLXJlbmFtZU5vZGUKLSovCi1m
dW5jdGlvbiBkb2N1bWVudHJlbmFtZW5vZGUyNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50cmVuYW1lbm9kZTI3IikgIT0g
bnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgbmV3RG9jOwotICAgICAgdmFy
IGRvbUltcGw7Ci0gICAgICB2YXIgdGV4dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFy
IGNkYXRhOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIGVudHJlZjsKLSAgICAgIHZhciByZW5h
bWVkVHh0OwotICAgICAgdmFyIHJlbmFtZWRDb21tZW50OwotICAgICAgdmFyIHJlbmFtZWRDZGF0
YTsKLSAgICAgIHZhciByZW5hbWVkUGk7Ci0gICAgICB2YXIgcmVuYW1lZEVudFJlZjsKLSAgICAg
IHZhciBudWxsRG9jVHlwZSA9IG51bGw7Ci0KLSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFy
IHJvb3ROUzsKLSAgICAgIHZhciByb290TmFtZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVu
dDsKLQotICAgICAgcm9vdE5TID0gZG9jRWxlbS5uYW1lc3BhY2VVUkk7Ci0KLSAgICAgIHJvb3RO
YW1lID0gZG9jRWxlbS50YWdOYW1lOwotCi0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0
aW9uOwotbmV3RG9jID0gZG9tSW1wbC5jcmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVs
bERvY1R5cGUpOwotICAgICAgdGV4dCA9IG5ld0RvYy5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOwot
ICAgICAgY29tbWVudCA9IG5ld0RvYy5jcmVhdGVDb21tZW50KCJjb21tZW50Iik7Ci0gICAgICBj
ZGF0YSA9IG5ld0RvYy5jcmVhdGVDREFUQVNlY3Rpb24oImNkYXRhIik7Ci0gICAgICBwaSA9IG5l
d0RvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInBpdCIsInBpZCIpOwotICAgICAgZW50
cmVmID0gbmV3RG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIAotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZFR4dCA9IG5l
d0RvYy5yZW5hbWVOb2RlKHRleHQsImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwidGV4dCIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PVF9TVVBQT1JURURfRVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2Vz
cyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZENvbW1lbnQgPSBuZXdEb2Mu
cmVuYW1lTm9kZShjb21tZW50LCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNvbW1lbnQi
KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVl
KCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nl
c3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbmFtZWRDZGF0YSA9IG5ld0RvYy5y
ZW5hbWVOb2RlKGNkYXRhLCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNkYXRhIik7Ci0g
ICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUp
ICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhy
b3dfTk9UX1NVUFBPUlRFRF9FUlJfMyIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW5hbWVkUGkgPSBuZXdEb2MucmVuYW1lTm9k
ZShwaSwiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJwaSIpOwotICAgICAgICB9Ci0JCWNh
dGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVk
JyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JU
RURfRVJSXzQiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgcmVuYW1lZEVudFJlZiA9IG5ld0RvYy5yZW5hbWVOb2RlKGVudHJlZiwi
aHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJlbnRyZWYiKTsKLSAgICAgICAgfQotCQljYXRj
aChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcg
JiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVE
X0VSUl81IixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIGRvY3VtZW50cmVuYW1lbm9kZTI3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlNzgxMWI0MmRlMmM0NjdlNWEyYTYwZTE4Mjkx
ZDJkMTA4ZjgzYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRyZW5hbWVub2RlMjcuanMiLz48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2Vt
PgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50
PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMw
IE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0
aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFu
IGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+
PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1h
OwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5u
ZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVz
PC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAs
MDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
Om5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxz
dHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rvcjwv
Y29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4K
LSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8
Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8
dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBU
ZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjIwLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvbjIwLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyNzhlNGU2NjQ2NmZiZGMxNDA3Njc1NTM4N2E5YTM1ZjBmMWVhOTZlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yMC54aHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQ
SURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhh
ICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1h
ICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNp
bG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBD
REFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRh
dGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLmpzIi8+PHNjcmlwdCB0eXBl
PSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7
IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0
cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4K
LSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBB
dmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFy
dGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5
UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2Vu
dCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25n
PgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1
NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5j
b20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25n
PgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3Vw
PgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8i
IGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAy
NyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0
cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkpl
bnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0g
IDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5F
TVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29t
cHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1
NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5MDI0MzczOGY2MGEwODg0NjRkYWQ4NDgyN2VhNmMxNGViMDEzZjcxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yNgotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0
Tm90TnVsbCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcyBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2U4YjNmYWU4ODc5YTBhMzRkZjAxYjY0NWRjMzc2MGFi
ZTAyNzMxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0
IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0
dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0g
Ci1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwg
Ci1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzND
w4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
Mi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBH
ZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRl
bnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAg
IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29y
ZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotCVVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIGNoZWNrIGlmIHRoZSBFbnRpdHlSZWZl
cmVuY2Ugbm9kZSBjb250YWlucyBhbmQgcHJlY2VkZXMgaXQncyBmaXJzdAotCWNoaWxkRWxlbWVu
dCwgYW5kIHRoYXQgdGhlIGNoaWxkRWxlbWVudCBpcyBjb250YWluZWQgYW5kIGZvbGxvd3MgdGhl
IEVudGl0eVJlZmVyZW5jZSBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkg
SHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29y
ZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rp
b24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxp
c3Q7Ci0gICAgICB2YXIgdmFyRWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50
UmVmQ2hpbGQxOwotICAgICAgdmFyIGVudFJlZlBvc2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNo
aWxkMVBvc2l0aW9uOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgIAotCWlmKAotCShnZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5k
RW50aXR5UmVmZXJlbmNlcyIpID09IGZhbHNlKQotCSkgewotCXZhckxpc3QgPSBkb2MuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoInZhciIpOwotICAgICAgdmFyRWxlbSA9IHZhckxpc3QuaXRlbSgyKTsK
LSAgICAgIGFzc2VydE5vdE51bGwoInZhckVsZW1Ob3ROdWxsIix2YXJFbGVtKTsKLWVudFJlZiA9
IHZhckVsZW0uZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmTm90TnVs
bCIsZW50UmVmKTsKLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICAKLQkJfQotCWVudFJlZkNoaWxkMSA9IGVudFJl
Zi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxs
IixlbnRSZWZDaGlsZDEpOwotZW50UmVmUG9zaXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50
UG9zaXRpb24oZW50UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uSXNDb250YWluZWRGb2xsb3dpbmcyNiIsMjAsZW50UmVmUG9zaXRpb24p
OwotICAgICAgIGVudFJlZkNoaWxkMVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uKGVudFJlZik7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbkNvbnRhaW5zUFJFQ0VESU5HMjYiLDEwLGVudFJlZkNoaWxkMVBvc2l0aW9u
KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvbjI2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MzNlMGQwNjU4YmJm
YmY0ZmE1MDgzZTBhMjM5NzMyYTQ0YzFlOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZ
UEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAg
ICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8
IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8
IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJ
QyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0
aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAg
ICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
aHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAg
ICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRU
TElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
Ci0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5z
dGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MjliNGNk
ODA1OGEzYzc1Y2E4MTJiNDI1Mjc1YjM2ZjhlNDI5ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Ci1TdGF0dXMJZmFp
bHVyZQotTWVzc2FnZQllbnRSZWZDaGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI3LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMWUxOWI3NjcwMmIzNGE5ODVlODI0ZjgxZWFjYWFmM2VlNGJlMGY2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcworKysgL2Rl
di9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQg
V29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2Yg
VGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGlj
cyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZl
ZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExp
Y2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1b
MV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0
d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRl
bnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QK
LSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZh
ciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
dGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1
aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywg
YXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3Ro
ZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUg
ZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcg
dGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0
VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBj
cmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAv
LwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9j
c0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYg
KHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhp
cy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9j
IiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9
IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQot
Ly8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8g
ICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8v
ICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwK
LS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8g
ICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgY29tcGFy
ZURvY3VtZW50UG9zaXRpb24gdG8gY2hlY2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGNv
bnRhaW5zIGFuZCBwcmVjZWRlcyBpdCdzIGxhc3QKLQljaGlsZEVsZW1lbnQsIGFuZCB0aGF0IHRo
aXMgY2hpbGRFbGVtZW50IGlzIGNvbnRhaW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5UmVmZXJl
bmNlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2Nv
cmUjTm9kZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5p
dGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IikgIT0g
bnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZh
ciB2YXJFbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0g
ICAgICB2YXIgZW50UmVmUG9zaXRpb247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
Ci0JaWYoCi0JKGdldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzIikgPT0gZmFsc2UpCi0JKSB7Ci0JdmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgidmFyIik7Ci0gICAgICB2YXJFbGVtID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAgYXNzZXJ0
Tm90TnVsbCgidmFyRWxlbU5vdE51bGwiLHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxlbS5maXJz
dENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRSZWYpOwot
Ci0JfQotCQotCQllbHNlIHsKLQkJCWVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImVudDQiKTsKLSAgICAgIAotCQl9Ci0JZW50UmVmQ2hpbGQxID0gZW50UmVmLmxhc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQx
KTsKLWVudFJlZlBvc2l0aW9uID0gZW50UmVmLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJl
ZkNoaWxkMSk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bklzQ29udGFpbmVkRm9sbG93aW5nMjciLDIwLGVudFJlZlBvc2l0aW9uKTsKLSAgICAgICBlbnRS
ZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihl
bnRSZWYpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25D
b250YWluc1BSRUNFRElORyIsMTAsZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIAotfQot
Ci0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjcoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzFhYmUwMWJmOWJkODlkMWExZWFmNmVjYmMwMWIw
OTNlNmViZmIxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJz
aW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3Qu
ZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYj
OTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICIm
Izk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhh
ICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxl
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8
IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAg
ICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBl
bnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBk
YXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMg
Q0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08
aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6
eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZm
LnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0i
VVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yNy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNkMzI0OWQ4NGJiM2MyNjE2NzVlM2U0
ZThjYWQzNjI5OGEzZjg1YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVu
dFJlZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjguanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjguanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMmIyOGU4
M2MzMDU0NGRhYWE4NDFmMTdmZDE1ZDdiOGRiYzUyZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4
ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBD
b25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJv
cGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGlj
cywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhl
IAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3Lncz
Lm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0q
LwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0
LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlv
biBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgi
OwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxs
OwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFt
ZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJ
ZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8v
ICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0
dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1t
ZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUg
dGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAn
cnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1
bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIg
PSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAg
ICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1l
dGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hy
b25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5
bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFn
ZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhl
IHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYg
KCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlv
biBjaGVjayB0aGUgZG9jdW1lbnQgcG9zaXRpb24gb2YgdGhlIEVudGl0eVJlZmVyZW5jZSBub2Rl
IGVudDQncwotCWZpcnN0IGNoaWxkIGFuZCBsYXN0IGNoaWxkLiAgSW52b2tlIGNvbXBhcmVEb2N1
bWVudFBvc2l0b24gb24gZmlyc3QgY2hpbGQgd2l0aCBsYXN0IGNoaWxkIGFzIGEgcGFyYW1ldGVy
Ci0Jc2hvdWxkIHJldHVybiBGT0xMT1dJTkcsIGFuZCBzaG91bGQgcmV0dXJuIFBSRUNFRElORyB2
aWNlIHZlcnNhLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0lu
aXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2
YXIgdmFyRWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwot
ICAgICAgdmFyIGVudFJlZkNoaWxkMjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsK
LSAgICAgIHZhciBlbnRSZWZDaGlsZDJQb3NpdGlvbjsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkoZ2V0SW1wbGVtZW50YXRp
b25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiKSA9PSBmYWxzZSkKLQkpIHsKLQl2
YXJMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ2YXIiKTsKLSAgICAgIHZhckVsZW0g
PSB2YXJMaXN0Lml0ZW0oMik7Ci0gICAgICBhc3NlcnROb3ROdWxsKCJ2YXJFbGVtTm90TnVsbCIs
dmFyRWxlbSk7Ci1lbnRSZWYgPSB2YXJFbGVtLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5v
dE51bGwoImVudFJlZk5vdE51bGwiLGVudFJlZik7Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgCi0JCX0KLQll
bnRSZWZDaGlsZDEgPSBlbnRSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgi
ZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQxKTsKLWVudFJlZkNoaWxkMiA9IGVudFJl
Zi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwi
LGVudFJlZkNoaWxkMik7Ci1lbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21w
YXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJu
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Gb2xsb3dpbmcyOCIsNCxlbnRSZWZDaGlsZDFQb3Np
dGlvbik7Ci0gICAgICAgZW50UmVmQ2hpbGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFy
ZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uUFJFQ0VESU5HMjgiLDIsZW50UmVmQ2hpbGQyUG9zaXRp
b24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjgoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI1MDgyOWYxMmMy
OTZiNjE5NTZiODFmYzY2NjU4MmUzNjMyMjllYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyAr
MCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9D
VFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgot
ICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAg
IDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAg
IDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4K
LSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVC
TElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90
YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAg
ICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElT
VCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAg
ICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFB
VFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1l
bnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1p
bnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8
L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIv
PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQg
TWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRl
eGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51
c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwot
PCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1i
ZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9u
IHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVN
UDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVw
YXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50
NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhh
cyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZp
c3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0
cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0g
IDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxp
c3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjI5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJjYTc4
MTdjODE0ODVlZWIxZmQ0YmU0Zjg1YmQxZWUyMTdmNDk2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkKLVN0YXR1cwlm
YWlsdXJlCi1NZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjkuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZkOWZkNDVmYTkxNWM0ZjUyYTBjMDg3N2ExNmI5NWVhN2EyZDg5MTkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTI4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjkiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBk
b2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAg
IH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4
KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
Ci0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0v
LyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwot
Ly8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVk
LAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0v
LyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlDcmVhdGUgdHdv
IGVudGl0eSByZWZlcmVuY2Ugbm9kZXMuIFVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHRv
IGNoZWNrIGlmIHRoZSBjaGlsZCBvZiB0aGUgZmlyc3QgRW50aXR5IAotCVJlZiBub2RlIHByZWNl
ZGVzIHRoZSBjaGlsZCBvZiB0aGUgc2Vjb25kIEVudGl0eSBSZWYgbm9kZSwgYW5kIHRoYXQgdGhl
IGNoaWxkIG9mIHRoZSBzZWNvbmQgRW50aXR5IFJlZiBub2RlCi0JZm9sbG93cyB0aGUgY2hpbGQg
b2YgdGhlIGZpcnN0IEVudGl0eSBSZWYgbm9kZS4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxl
dmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0q
LwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yOSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIGRvY0VsZW07Ci0gICAgICB2YXIgZW50UmVmMTsKLSAgICAgIHZhciBlbnRSZWYyOwotICAg
ICAgdmFyIGVudFJlZkNoaWxkMTsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDI7Ci0gICAgICB2YXIg
ZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQyUG9zaXRpb247Ci0g
ICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9j
IiwgImhjX3N0YWZmIik7Ci0gICAgICBlbnRSZWYxID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5j
ZSgiZW50NCIpOwotICAgICAgZW50UmVmMiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVu
dDQiKTsKLSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBhcHBl
bmRlZENoaWxkID0gZG9jRWxlbS5hcHBlbmRDaGlsZChlbnRSZWYxKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBkb2NFbGVtLmFwcGVuZENoaWxkKGVudFJlZjIpOwotICAgICAgZW50UmVmQ2hpbGQx
ID0gZW50UmVmMS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGls
ZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50UmVmQ2hpbGQyID0gZW50UmVmMi5sYXN0Q2hp
bGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNo
aWxkMik7Ci1lbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1l
bnRQb3NpdGlvbihlbnRSZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb25Gb2xsb3dpbmcyOSIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0g
ICAgICAgZW50UmVmQ2hpbGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50
UG9zaXRpb24oZW50UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uUFJFQ0VESU5HMjkiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAg
ICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEzZDJhOWI3MjExZDRkZjYzNWM0
NjViYjU5NmQwNWJhOTEyYmIwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjkueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1s
Ci0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1s
MS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZ
IGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZ
IGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5U
SVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3Rh
dGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmls
ZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1s
bnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0g
ICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFj
cm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNw
YW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAg
ICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIK
LSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yOS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVz
YS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUx
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFb
VGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50
MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9j
b2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2Vt
PgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBN
YW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1Mzwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+
Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAg
PGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsi
IGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRo
IFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVt
cDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4x
ODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwv
Ym9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWdldGZlYXR1cmUwNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDI3YTk1YTFmNjJjZTE0NzQ4ZjM0NjA0MjA0YzczMjhiNzY5NDRiZWEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNAotU3RhdHVzCWVycm9y
Ci1NZXNzYWdlCUxpbmUgMTAxOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LmpzIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGY5ZjVkMjBmNzdiZmI5ZGNhMGExMGU4MGUxZGY1NWViZmIyM2M0ZGEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwyMDIgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0IjsKLSAg
IH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotQ2hlY2sgaW1wbGVtZW50YXRpb24gb2YgTm9kZS5nZXRGZWF0
dXJlIG9uIEVudGl0eVJlZmVyZW5jZS4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI05vZGUzLWdldEZlYXR1cmUKLSovCi1mdW5jdGlvbiBub2RlZ2V0ZmVhdHVyZTA0KCkgewot
ICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9k
ZWdldGZlYXR1cmUwNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFy
IG5vZGU7Ci0gICAgICB2YXIgbnVsbFZlcnNpb24gPSBudWxsOwotCi0gICAgICB2YXIgZmVhdHVy
ZUltcGw7Ci0gICAgICB2YXIgaXNTdXBwb3J0ZWQ7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgZG9tSW1wbCA9
IGRvYy5pbXBsZW1lbnRhdGlvbjsKLW5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJl
bnQxIik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiQ29yZSIsbnVsbFZl
cnNpb24pOwotICAgICAgYXNzZXJ0U2FtZSgiY29yZVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxm
ZWF0dXJlSW1wbCk7Ci1mZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsbnVsbFZl
cnNpb24pOwotICAgICAgYXNzZXJ0U2FtZSgiY09yRVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxm
ZWF0dXJlSW1wbCk7Ci1mZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiK2NPckUiLG51bGxW
ZXJzaW9uKTsKLSAgICAgIGFzc2VydFNhbWUoIlBsdXNDb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixu
b2RlLGZlYXR1cmVJbXBsKTsKLWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJvcmcudzNj
LmRvbXRzLmJvZ3VzLmZlYXR1cmUiLG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2VydE51bGwoInVu
cmVjb2duaXplZEZlYXR1cmUiLGZlYXR1cmVJbXBsKTsKLSAgICBmZWF0dXJlSW1wbCA9IG5vZGUu
Z2V0RmVhdHVyZSgiY09yRSIsIjIuMCIpOwotICAgICAgYXNzZXJ0U2FtZSgiQ29yZTIwIixub2Rl
LGZlYXR1cmVJbXBsKTsKLWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIiwiMy4w
Iik7Ci0gICAgICBhc3NlcnRTYW1lKCJDb3JlMzAiLG5vZGUsZmVhdHVyZUltcGwpOwotaXNTdXBw
b3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1
cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlm
KAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiWE1MVW5zcGVjaWZpZWQiLG5vZGUs
ZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiU1ZH
IixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZH
IixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2Vy
dFNhbWUoIlNWR1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBv
cnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1
cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlp
ZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIkhUTUxVbnNwZWNpZmllZCIsbm9k
ZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJF
dmVudHMiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJl
KCJFdmVudHMiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7
Ci0JYXNzZXJ0U2FtZSgiRXZlbnRzVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0J
fQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiTFMiLG51bGxWZXJzaW9uKTsKLSAg
ICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJMUyIsbnVsbFZlcnNpb24pOwotICAg
ICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJMU1Vuc3BlY2lmaWVk
Iixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0
ZWQoIkxTLUFzeW5jIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0
RmVhdHVyZSgiTFMtQXN5bmMiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9y
dGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiTFNBc3luY1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJ
bXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIlhQYXRoIixudWxs
VmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiWFBhdGgiLG51
bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2Ft
ZSgiWFBhdGhVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0
ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCIrSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVy
ZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlm
KAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0Tm90TnVsbCgiUGx1c0hUTUxVbnNwZWNpZmll
ZCIsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgi
K1NWRyIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUo
IlNWRyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlh
c3NlcnROb3ROdWxsKCJQbHVzU1ZHVW5zcGVjaWZpZWQiLGZlYXR1cmVJbXBsKTsKLQotCX0KLQkK
LX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXRmZWF0dXJlMDQoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0
ZmVhdHVyZTA0LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXRmZWF0dXJlMDQueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZDg1YzUz
YzM4MjNiYjgxMWIxZTc0OTMzOWE1NTczYjI1NzA0NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVnZXRmZWF0dXJlMDQueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbCBbCi08IUVOVElUWSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50MiAnZm9v
PGJyLz4nPgotPCFFTEVNRU5UIGh0bWwgKGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0bWwgeG1s
bnMgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+Ci08IUVM
RU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KLTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNyYyBDREFU
QSAjSU1QTElFRAotICAgICB0eXBlIENEQVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQgQ0RBVEEg
I0lNUExJRUQ+Ci08IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJvZHkgKHAp
PgotPCFBVFRMSVNUIGJvZHkgb25sb2FkIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHAgKCNQ
Q0RBVEF8YnIpKj4KLTwhRUxFTUVOVCBiciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCc+Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hvbGVUZXh0
IHNhbXBsZTwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdzZWxm
eGh0bWwuanMnPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3RleHQvamF2
YXNjcmlwdCcgc3JjPSdub2RlZ2V0ZmVhdHVyZTA0LmpzJz48L3NjcmlwdD48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotPHA+YmFy
PC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljNWMyOWNkZDk5N2JhZTkxYmMwYzVh
Yjc5NDA1YjgwMTI2ODMzY2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJTGluZSAxMjE6IFR5cGVFcnJvcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE1LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTQ2N2EzYmM0
MTYyMGQzOTBlYzdkNGQ1ZDkyMjhiODg0MGM5MGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0dGV4dGNvbnRlbnQxNS5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAg
IC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBA
cmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0
VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1IjsKLSAgIH0KLQotdmFyIGRvY3NM
b2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAg
ICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZp
Z3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9h
ZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0
IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAg
cmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24g
c2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsK
LSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRo
cm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1
aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdh
cmUiLCB0cnVlKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50
aXR5UmVmZXJlbmNlcyIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAot
ICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAn
dW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAg
IGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
ICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0
Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBp
cyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMg
bG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9u
b3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0
dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3Qg
dG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLS8qKgotKiAKLQlUaGUgbWV0aG9kIGdldFRleHRDb250ZW50IHJldHVybnMg
dGhlIHRleHQgY29udGVudCBvZiB0aGlzIG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJ
bnZva2UgdGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbGVtZW50IG5vZGUgd2l0
aCBuZXcgVGV4dCwgRW50aXR5UmVmZXJlbmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29t
bWVudCBub2RlcyBhbmQgY2hlY2sgaWYgdGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAot
CWNvbmNhdGVuYXRlZCBTdHJpbmcgd2l0aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJN
Ci0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0
L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSov
Ci1mdW5jdGlvbiBub2RlZ2V0dGV4dGNvbnRlbnQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAg
IGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE1Iikg
IT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZh
ciB0eHQ7Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIg
Y2RhdGE7Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIg
YXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5v
cmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9k
ZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAi
KTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAg
ICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIp
OwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVs
ZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVu
ZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRh
KTsKLSAgICAgIHRleHRDb250ZW50ID0gZWxlbS50ZXh0Q29udGVudDsKLQotICAgICAgZG9jLm5v
cm1hbGl6ZURvY3VtZW50KCk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVu
dDE1IiwiVGV4dCDOskNEYXRhIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlZ2V0dGV4dGNvbnRlbnQxNSgpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVu
dDE1LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmQzNmNiYTNj
M2RhMDkwY2JhZDc3NDdkMGU4OTFjNWYyNGI2OTQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0dGV4dGNvbnRlbnQxNS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVnZXR0ZXh0
Y29udGVudDE1LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2Fk
PSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+
Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4K
LSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlz
IGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgot
PCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0g
IDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZi
ZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVt
PkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5Q
ZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85
ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4g
RGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0
cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQg
TXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1
cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9y
ZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5Pjwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjYjQxNDRkMDVmZjA4ZDcyZThlOTg0YWExMTMxNTQ4NjRiODExYTRi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNgotU3Rh
dHVzCWVycm9yCi1NZXNzYWdlCUxpbmUgMTIzOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcyBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQxZjdjODQxOWU4ZDExNTY0MjA4ODQ5NTg4
NjhmYWFkNjE1NWQ5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOC
wqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMg
SW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1m
b3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1S
aWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LC
riBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQg
d2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9j
b3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRz
IFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRp
ZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJl
dHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9u
b2RlZ2V0dGV4dGNvbnRlbnQxNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7
Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVz
dCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlv
bnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4g
IE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQg
dGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVy
aW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAg
IHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8v
ICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAg
ICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAg
c2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAg
ICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0
cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCByZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQg
b2YgdGhpcyBub2RlIGFuZCBpdHMgZGVzY2VuZGFudHMuCi0JCi0JSW52b2tlIHRoZSBtZXRob2Qg
Z2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRG9jdW1lbnRGcmFnbWVudCBub2RlIHdpdGggbmV3IFRl
eHQsIEVudGl0eVJlZmVyZW5jZXMgIAotCUNEQVRBU2VjdGlvbiwgUEkgYW5kIENvbW1lbnQgbm9k
ZXMgYW5kIGNoZWNrIGlmIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhIHNpbmdsZSAKLQljb25jYXRl
bmF0ZWQgU3RyaW5nIHdpdGggaXRzIGNvbnRlbnQuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0
aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9N
LUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rp
b24gbm9kZWdldHRleHRjb250ZW50MTYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVj
a0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlZ2V0dGV4dGNvbnRlbnQxNiIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxl
bTsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNvbW1l
bnQ7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBpOwot
ICAgICAgdmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9
IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVs
ZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAg
IHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2Mu
Y3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRp
dHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0
cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFT
ZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQo
dHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwot
ICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFn
LmFwcGVuZENoaWxkKGVsZW0pOwotICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0gICAg
ICB0ZXh0Q29udGVudCA9IGRvY0ZyYWcudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZWdldHRleHRjb250ZW50MTYiLCJUZXh0IM6yQ0RhdGEiLHRleHRDb250ZW50KTsKLSAg
ICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29u
dGVudDE2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWdldHRleHRjb250ZW50MTYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGRmZWZjMTVlYjRlZjAxZmIzZmVkMWNiZDg1ODY0ZTQ1NTkxZDFjZjkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LnhodG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJ
REFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg
U3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEg
IiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2ls
b24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04g
bm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENE
QVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAj
SU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0
YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0g
VGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAw
MS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRp
dGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJz
ZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ibm9kZWdldHRleHRjb250ZW50MTYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9s
ZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1
MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFs
dGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2YmViMzI3ZDgwZGVmMmM5Nzll
YjQ5MTFmYjM3NzcxMDMzMzIyY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlub2RlZ2V0dGV4dGNvbnRl
bnQxNzogYXNzZXJ0RXF1YWxzIGZhaWxlZCwgYWN0dWFsICwgZXhwZWN0ZWQgzrIuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyNGJhNjAxYTkxZmU1MTU4
YThiMTMyN2M4MzMyMzhjZmI5YTU4NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9
IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5p
bmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlv
biBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlz
IHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29t
cGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQg
d2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBh
Z2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAv
LwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhj
ZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LQlJbnZva2UgdGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVu
Y2Ugbm9kZSBhbmQgY2hlY2sgaWYgdGhlIAotCXZhbHVlIHJldHVybmVkIGlzIHRoZSBFbnRpdHlS
ZWZlcmVuY2UncyBjb250ZW50LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4
dGNvbnRlbnQxNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE3IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIg
dGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50
RWxlbWVudDsKLQotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0
YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAg
ICAgIHRleHRDb250ZW50ID0gZW50UmVmLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVh
bHMoIm5vZGVnZXR0ZXh0Y29udGVudDE3IiwizrIiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0K
LQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE3KCk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdl
dHRleHRjb250ZW50MTcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWdldHRleHRjb250ZW50MTcueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI3OWMyMmM0ZDFlNTg0ZGEwZGFmOWU4MzZkYzQ1YzFhNjM0Mzk0ZTMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08
IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+
Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+
Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5
OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24x
IFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0g
Im5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwn
Ci0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENE
QVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFU
VExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAot
ICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAg
IDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBj
b21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hl
bWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0
YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwu
anMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
bm9kZWdldHRleHRjb250ZW50MTcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzk3ZmE4MzEwZDM3ZGVlMDEwYmU1YzQ5MTc5MDY2NTE3
ZThiMzFlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMQot
U3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWluc2VydGJlZm9yZTExLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlOGE4YjllYzJjMjA0MGRiMTgyZDExYjZjMWRjODlkZmQ4MjQ1NDQyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQotCi0KLQlVc2luZyBpbnNlcnRCZWZvcmUgb24gYSBEb2N1bWVudEZy
YWdtZW50IG5vZGUgYXR0ZW1wdCB0byBpbnNlcnQgYSBjaGlsZCBub2RlcyBiZWZvcmUKLQlvdGhl
ciBwZXJtaXNzaWJsZSBub2RlcyBhbmQgdmVyaWZ5IHRoZSBjb250ZW50cy9uYW1lIG9mIGVhY2gg
aW5zZXJ0ZWQgbm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUxMSgp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVpbnNlcnRiZWZvcmUxMSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZh
ciBjb21tZW50OwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBl
UmVmOwotICAgICAgdmFyIGluc2VydGVkOwotICAgICAgdmFyIGluc2VydGVkVmFsOwotICAgICAg
dmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7
Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCIsImJvZHkiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVj
dGlvbigiUElUYXJnZXQiLCJQSURhdGEiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29t
bWVudCgiQ29tbWVudCIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7
Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBIik7Ci0gICAgICBl
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVsZW0pOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGRvY0ZyYWcuYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcu
YXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBl
bmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQo
Y2RhdGEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZVJlZik7
Ci0gICAgICBpbnNlcnRlZCA9IGRvY0ZyYWcuaW5zZXJ0QmVmb3JlKGNvbW1lbnQscGkpOwotICAg
ICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5v
ZGVpbnNlcnRiZWZvcmUxMV9Db21tZW50IiwiQ29tbWVudCIsaW5zZXJ0ZWRWYWwpOwotICAgICAg
IGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUodHh0LGNvbW1lbnQpOwotICAgICAgaW5z
ZXJ0ZWRWYWwgPSBpbnNlcnRlZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNl
cnRiZWZvcmUxMV9UZXh0IiwiVGV4dCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0g
ZG9jRnJhZy5pbnNlcnRCZWZvcmUoY2RhdGEsdHh0KTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5z
ZXJ0ZWQuZGF0YTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfQ0RB
VEEiLCJDREFUQSIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNl
cnRCZWZvcmUoZVJlZixjZGF0YSk7Ci0gICAgICBpbnNlcnRlZFZhbCA9IGluc2VydGVkLm5vZGVO
YW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9FbnQxIiwiYWxw
aGEiLGluc2VydGVkVmFsKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgIG5vZGVpbnNlcnRiZWZvcmUxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNGFhNjgzNzM4NWUwMDAzMzNkNmJjNWM0ODExODY3
OTQ2YWQ1ZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/
VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9E
VEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwh
RU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwh
RU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8
IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0g
ICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxu
czp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9Q
SXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElF
RD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVpbnNlcnRiZWZvcmUxMS5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQyZjNlNjM1NDc1
MDdlZTVkYTJkZjM2ZWVkMTViNGNjMmZkNTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
aW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZWluc2VydGJlZm9yZTE1Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmMzcxNmVhMTlkNGFmNzE3ZGI2NGExYjA2MzVlNDU5NTkw
NWUzZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcworKysg
L2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRi
ZWZvcmUxNSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUEgTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSIGlzIHJhaXNlZCBpZiB0aGUgbm9kZSBpcyByZWFkLW9ubHkuCi0JCi0JVXNpbmcg
aW5zZXJ0QmVmb3JlIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gaW5z
ZXJ0IEVsZW1lbnQsIFRleHQsCi0JQ29tbWVudCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZCBD
REFUQVNlY3Rpb24gbm9kZXMgYmVmb3JlIGFuIGVsZW1lbnQgY2hpbGQKLQlhbmQgdmVyaWZ5IGlm
IGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElC
TQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1
bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxNSIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVt
Q2hpbGQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgY29tbWVu
dDsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBpbnNlcnRlZDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBl
bnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZWxlbUNo
aWxkID0gZW50UmVmLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRB
U2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjZGF0
YSxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNz
KTsKLQl9Ci1waSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRh
dGEiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAg
ICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKHBpLGVsZW1DaGlsZCk7Ci0gICAgICAg
IH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1
bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0KLWNvbW1lbnQgPSBkb2Mu
Y3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7
Ci0JCXRyeSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoY29t
bWVudCxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNz
ID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9
Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNj
ZXNzKTsKLQl9Ci10eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIAotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRS
ZWYuaW5zZXJ0QmVmb3JlKHR4dCxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUl80IixzdWNjZXNzKTsKLQl9Ci1lbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImJvZHkiKTsKLSAgICAgIAotCXsKLQkJc3VjY2Vz
cyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0
QmVmb3JlKGVsZW0sZWxlbUNoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAg
c3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3
KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJf
NSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBu
b2RlaW5zZXJ0YmVmb3JlMTUoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LnhodG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2ZjBkMDBiOWNhMTYzNzFlZmMwMmY4ZTQwMWViNDVkODU3ZjQxZGMx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZ
TEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBn
YW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkg
ZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBk
aXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENE
QVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQg
UElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgot
PCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgi
Lz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJub2RlaW5zZXJ0YmVmb3JlMTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQv
amF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2Ny
aXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1h
cmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3Vw
PjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5
bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVu
Y2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRB
U2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxj
b2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0g
IDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxj
b2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2
YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85
ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3
LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29u
bm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8
L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBT
cGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNy
b255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMGUxNzU0ZjdhOTJjZmVlODk0MTky
OGI0ZWY2YjE3YjlhNzdmMWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDEyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEyCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0ZTE4YTIyNzFlOGFjOWU4NjliYzFmOWFmNWQxNzExNjM3ODk4Yjg1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyIjsKLSAgIH0K
LQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8K
LS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJl
Zm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUg
YXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAg
ZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAg
ICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5
Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0v
LwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcn
OwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVp
bGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRl
Q29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgi
bmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCByZW1vdmVDaGlsZCByZW1vdmVzIHRo
ZSBjaGlsZCBub2RlIGluZGljYXRlZCBieSBvbGRDaGlsZCBmcm9tIHRoZSBsaXN0IAotCW9mIGNo
aWxkcmVuLCBhbmQgcmV0dXJucyBpdC4gCi0KLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBE
b2N1bWVudEZyYWdtZW50IG5vZGUgYXR0ZW1wdCB0byByZW1vdmUgYSBuZXcgRW50aXR5UmVmZXJl
bmNlIG5vZGUuCi0gICAgICAgIEFsc28gYXR0ZW1wdCB0byByZW1vdmUgdGhlIGRvY3VtZW50IGZy
YWdtZW50IG5vZGUgZnJvbSB0aGUgRW50aXR5UmVmZXJlbmNlLiAgVmVyaWZ5IHRoYXQgYSAKLSAg
ICAgICAgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIChFbnRpdHlSZWZlcmVuY2Ugbm9kZSBp
cyByZWFkLW9ubHkpIG9yIGEgTk9UX0ZPVU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJ
Qk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIw
MDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwot
ZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxkMTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxMiIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZVJl
ZjsKLSAgICAgIHZhciByZW1vdmVkRVJlZjsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgdmFyIHJlbW92ZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92
ZWRDaGlsZCA9IGRvY0ZyYWcucmVtb3ZlQ2hpbGQoZVJlZik7Ci0gICAgICByZW1vdmVkRVJlZiA9
IGRvY0ZyYWcuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0TnVsbCgibm9kZXJlbW92ZWNoaWxk
MTIiLHJlbW92ZWRFUmVmKTsKLSAgICAKLSAgICAgIHRyeSB7Ci0gICAgICByZW1vdmVkQ2hpbGQg
PSBlUmVmLnJlbW92ZUNoaWxkKGRvY0ZyYWcpOwotICAgICAgCi0gICAgICB9IGNhdGNoIChleCkg
ewotCQkgIGlmICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcpIHsgICAgICAKLSAgICAg
ICBzd2l0Y2goZXguY29kZSkgewotICAgICAgIGNhc2UgLyogTk9UX0ZPVU5EX0VSUiAqLyA4IDoK
LSAgICAgICBicmVhazsKLSAgICAgIGNhc2UgLyogTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJS
ICovIDcgOgotICAgICAgIGJyZWFrOwotICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgdGhy
b3cgZXg7Ci0gICAgICAgICAgfQotICAgICAgIH0gZWxzZSB7IAotICAgICAgIHRocm93IGV4Owot
ICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM2ZWQ5MmYwM2JhNTRhZWM4MjdkYjc4NGY2MDU2
ZDkyMzQ5NDk0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxMi5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZlNTZhNmM2YTA2MzIw
MDg2NTE1MGZkZTg4YzgzZjk0ZjUyYTRhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
bW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1U
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZXJlbW92ZWNoaWxkMTMKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXR4dE5vdE51bGw6IGFzc2Vy
dE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDZjODBmZmI0YTY1MmQ5MDJkYTJkMmRmZjUxNzY4NjdmZTk2MmYzZDQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMiOwotICAgfQotCi12YXIg
ZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0v
LyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8g
Y29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVu
dCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBp
cyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAg
ICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5j
dGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0
cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBt
YXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1
cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2Fk
ZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAg
ICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFs
aXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQg
b24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFy
dGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRl
ZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hh
bmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhl
Y3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLS8qKgotKiAKLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ug
bm9kZSBhdHRlbXB0IHRvIHJlbW92ZSB0aGUgZmlyc3QgY2hpbGQgCi0Jb2YgdGhpcyBub2RlIGFu
ZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgz
NDA2NgotKi8KLWZ1bmN0aW9uIG5vZGVyZW1vdmVjaGlsZDEzKCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTMi
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2
YXIgZVJlZjsKLSAgICAgIHZhciByZW1vdmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCJhbHBoYSIpOwotICAgICAgdHh0ID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3Nl
cnROb3ROdWxsKCJ0eHROb3ROdWxsIix0eHQpOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0J
CXRyeSB7Ci0gICAgICAgICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZCh0eHQpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hpbGQxMygpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEz
LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDEzLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTMxN2E0NjNlMTllOTZk
OWMxMjU0Njc5ZmI1NzVlN2I5ZmMwNTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVt
b3ZlY2hpbGQxMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEzLmpz
Ii8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxl
dGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNj
b3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+
Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0
aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhp
cyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAm
dGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMs
ICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIK
LSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxz
dXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2Vt
PgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGly
ZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0
LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9u
Zz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1
cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQx
NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
bW92ZWNoaWxkMTQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
MjM1YmY0ZGZkYjAwZTI1ZTA4MThiMTZkMGQwY2FhNTg5NWY3OTYyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcGlO
b3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LmpzIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwM2Q1YTE5MzNlZTk3NjVhMjljNTc1YmNiNWYwZjU5ZGQxYWZlZWExLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcworKysgL2Rldi9udWxs
CkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQg
V2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5v
bG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQg
TWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhp
cyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2Ug
WzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0
cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0y
MDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmll
cyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAq
LwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0IjsK
LSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsK
LQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3
b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYg
dGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAg
ICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVz
Ci0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVk
aWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRl
c3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1
bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1l
bnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0g
Y3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAg
CWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRo
b2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9u
b3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5j
aHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ug
c3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0
ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgr
K2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50
aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byByZW1vdmUgaXRzIGxhc3QgUHJvY2Vzc2luZ0lu
c3RydWN0aW9uIAotCWNoaWxkIG5vZGUgYW5kIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNo
aWxkMTQoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIHJlbW92ZWQ7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBwaTsKLSAg
ICAgIHZhciBlbnROYW1lOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7
Ci0gICAgICBwaSA9IGVSZWYubGFzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJwaU5v
dE51bGwiLHBpKTsKLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAg
ICAgcmVtb3ZlZCA9IGVSZWYucmVtb3ZlQ2hpbGQocGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICBub2RlcmVtb3ZlY2hpbGQxNCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDg0ZjdkNzQ1ZWZkMjdjNDZlZDg1NzVmNjc3ZDgyZjA4
NzY0MzZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDE0LmpzIi8+PHNjcmlwdCB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08
L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9u
Zz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAg
PHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUu
IERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhh
IFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVm
ZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBD
REFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgot
ICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20i
PgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgot
ICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgot
ICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlk
PSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJ
cnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDov
L3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkg
T2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxz
dXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAw
MDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0
ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8
L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDJlMGMyYmE4YmY4ZWNhNjFh
ODUyZjk1NmYwYzgxZDViYjhjOTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVt
b3ZlY2hpbGQxNQotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZWxlbU5vdE51bGw6IGFzc2VydE5v
dE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUz
YjNmN2NjOGUwODExYmI4MGIzZTdiNGNhOTkwNDlkZDA5NWM3ZDAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZW1vdmVjaGlsZDE1LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUiOwotICAgfQotCi12YXIgZG9j
c0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlz
IGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAg
ICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29u
ZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBs
b2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBz
ZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAg
ICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlv
biBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkg
ewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkg
dGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVk
QnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQg
Kz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAg
aWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXph
dGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24g
dGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVk
IGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBk
b2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdl
ZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0
ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LS8qKgotKiAKLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZSBhdHRlbXB0IHRvIHJlbW92ZSBhbiBFbGVtZW50IGNoaWxkIAotCWFuZCB2ZXJpZnkgaWYgYSBO
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLiAKLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5j
dGlvbiBub2RlcmVtb3ZlY2hpbGQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZW1vdmVjaGlsZDE1IikgIT0gbnVsbCkgcmV0
dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBlbGVtOwotICAg
ICAgdmFyIGVudE5hbWU7Ci0gICAgICB2YXIgcmVtb3ZlZDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgZWxlbSA9IGVSZWYuZmlyc3RDaGlsZDsKLQotICAg
ICAgYXNzZXJ0Tm90TnVsbCgiZWxlbU5vdE51bGwiLGVsZW0pOwotCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZChl
bGVtKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2Yo
ZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRU
cnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTUoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVt
b3ZlY2hpbGQxNS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxNS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE0ODYy
N2E1YzExYmUyNjdlMGRjYTM0ZDA1OGI4NGRiOTA1MmM1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBA
Ci08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBo
dG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInho
dG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5U
SVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5U
SVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwh
RU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJu
b3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24y
RmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAg
eG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1s
Ci0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAg
ICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNU
IHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVt
YmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAg
ICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5j
ZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxl
PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3Jp
cHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3Zl
Y2hpbGQxNS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDE4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzZDlmODQxODhkZjFhMDFkOTRlMDNiYzUyNDc2NzUxYjMyOTEyMTVkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4Ci1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQxOC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMTguanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMGI2NzJiYzQ4
ZDlhN2M1NjA5YzY2ZjY4ZmI5YzBjMWE5MjI0OGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0KLS8q
Ci1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0o
TWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2gg
Q29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVy
c2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
Ci10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1
bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8q
KgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0
dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJ
KCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0
IHRvIHJlcGxhY2UgYSBDREFUQVNlY3Rpb24gbm9kZSB3aXRoIAotCWEgRW50aXR5UmVmZXJlbmNl
IGFuZCB2aWNlIHZlcnNhIHZlcmlmeSB0aGUgZGF0YSBvZiB0aGUgcmVwbGFjZWQgbm9kZXMuCi0K
LSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4
ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMTgoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxk
MTgiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwot
ICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciByZXBsYWNlZENE
YXRhOwotICAgICAgdmFyIHJlcGxhY2VkRXJlZjsKLSAgICAgIHZhciBjZGF0YU5hbWU7Ci0gICAg
ICB2YXIgZXJlZk5hbWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9
IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2Vj
dGlvbigiQ0RBVEFTZWN0aW9uIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJhbHBoYSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hp
bGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNk
YXRhKTsKLSAgICAgIHJlcGxhY2VkQ0RhdGEgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChlbnRSZWYs
Y2RhdGEpOwotICAgICAgY2RhdGFOYW1lID0gcmVwbGFjZWRDRGF0YS5ub2RlVmFsdWU7Ci0KLSAg
ICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE4XzEiLCJDREFUQVNlY3Rpb24iLGNk
YXRhTmFtZSk7Ci0gICAgICAgcmVwbGFjZWRFcmVmID0gZG9jRnJhZy5yZXBsYWNlQ2hpbGQoY2Rh
dGEsZW50UmVmKTsKLSAgICAgIGVyZWZOYW1lID0gcmVwbGFjZWRFcmVmLm5vZGVOYW1lOwotCi0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQxOF8yIiwiYWxwaGEiLGVyZWZOYW1l
KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBs
YWNlY2hpbGQxOCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDFkNzY3YjllYWY4NGUyYWNlZDMxY2E1OWNmYTM5MTQzNmQzYzJlM2EuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC54aHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURB
VEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0
cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICIm
Izk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICIm
Izk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9u
ICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5v
dGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIg
U1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFU
QSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/
PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRo
aXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv
WE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2
PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRs
ZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2Vs
ZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQxOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQg
TWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRl
eGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51
c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwot
PCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1i
ZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9u
IHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVN
UDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVw
YXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50
NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhh
cyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZp
c3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0
cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0g
IDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxp
c3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGEyZDM2MWU5MTA2ZDRkMWQ4MGU1MTJiY2Rl
YzU4MGIzYjBlNzQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDE5Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRiOWExN2RmOTdmNDNkMDM1MmYzYmQ4YWQxYzVjOTM0MDhmMzViMWUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS5qcworKysgL2Rldi9udWxsCkBAIC0x
LDExOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOSI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJh
Z21lbnQgbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYW4gRWxlbWVudCBub2RlIHdpdGggCi0JaXRz
IEVudGl0eVJlZmVyZW5jZSBjaGlsZCB2ZXJpZnkgdGhlIG5vZGVOYW1lIG9mIHRoZSByZXBsYWNl
ZCBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2Nv
cmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDE5KCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJl
cGxhY2VjaGlsZDE5IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZG9jRnJhZzsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBy
ZXBsYWNlZDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRv
Y0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5j
cmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsK
LSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICByZXBsYWNlZCA9IGRv
Y0ZyYWcucmVwbGFjZUNoaWxkKGVudFJlZixlbGVtKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFj
ZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE5Iiwi
ZG9tMzpwIixub2RlTmFtZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMTkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMjViMmNiM2IzYmU3MGVkNzk0YmUxZjAyMDMwYjM2
ZDE5MzQ3M2U3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMTkuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIy
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxZGFmMmZlZjM1
ZWRiMzczOTVmNDQ5NzNjODgxNTUyMjZiYjdiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBA
QAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQyMgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDNmNDIzZjczNWYzZjFiMjVjYTVlNGNiMzYwODI1NjMw
M2E3NDVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0y
MDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl
IG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3Jt
YXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVz
ZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2Fy
ZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAK
LQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQt
c29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0
IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0
ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMjIiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQg
b24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGFuIEVudGl0
eVJlZmVyZW5jZSBub2RlIHdpdGggCi0JaXRzIEVsZW1lbnQgcGFyZW50LCB3aXRoIGl0c2VsZiBh
bmQgdmljZSB2ZXJzYSB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMg
dGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2Nv
cmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIyKCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJl
cGxhY2VjaGlsZDIyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZW50UmVmTWFpbjsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZh
ciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkQ2hpbGQ7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Mg
PSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVh
dGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAg
ICAgIGVudFJlZk1haW4gPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAg
ICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWRDaGlsZCA9IGVudFJl
Zk1haW4ucmVwbGFjZUNoaWxkKGVsZW0sZW50UmVmKTsKLSAgICAgICAgfQotCQljYXRjaChleCkg
ewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXgu
Y29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlJfMSIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICByZXBsYWNlZENoaWxkID0gZW50UmVmTWFpbi5yZXBsYWNlQ2hpbGQo
ZW50UmVmLGVsZW0pOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8yIixzdWNjZXNz
KTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJl
cGxhY2VkQ2hpbGQgPSBlbnRSZWZNYWluLnJlcGxhY2VDaGlsZChlbnRSZWZNYWluLGVudFJlZik7
Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNv
ZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgi
dGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotfQot
Ci0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDIyKCk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDIyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQyMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YzMjU0
ZTJjYWJhMzJiYjQwNTNkNzQ2NDljYzlmYTgzMDFhZWQwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDIyLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBA
QAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUg
aHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4
aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVO
VElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVO
VElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAi
bm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9u
MkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAg
IHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBM
SUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRt
bAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAg
ICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElT
VCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElT
VCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51
bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0g
ICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFu
Y2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRs
ZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2Ny
aXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxh
Y2VjaGlsZDIyLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2Fk
PSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+
Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4K
LSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlz
IGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgot
PCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0g
IDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZi
ZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVt
PkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5Q
ZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85
ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4g
RGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0
cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQg
TXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1
cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9y
ZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5Pjwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQxOGI3N2IzOGUzYmMxYzM3YWJhZjY2ZGNhZWFjMGQ5NGFlYjQ5ZjkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMKLVN0YXR1cwlTdWNj
ZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQyMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMzMWFmYzlk
YzdlNTQwM2E4NWNmNDc1NGQ4NmJmYzRlZDJlNmExOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDIzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLQot
LyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAK
LShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJj
aCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2
ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0
aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAg
LyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEBy
ZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRV
UkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0
dGVtcHQgdG8gcmVwbGFjZSBhbiBFbGVtZW50LCBUZXh0LAotCUNvbW1lbnQsIFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiBhbmQgQ0RBVEFTZWN0aW9uIG5vZGVzIHdpdGggZWFjaCBvdGhlciBhbmQgaW4g
ZWFjaCBjYXNlCi0JdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRo
cm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0
cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3Jl
I0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQyMygpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBs
YWNlY2hpbGQyMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVu
dFJlZjsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50
OwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkOwot
ICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4
dE5vZGUoIlRleHQiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVu
dCIpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24i
KTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0Iiwi
ZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsK
LSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBl
bmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFw
cGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGNkYXRhLGVsZW0p
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50
UmVmLnJlcGxhY2VDaGlsZChwaSxjZGF0YSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSXzIiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGNvbW1lbnQscGkpOwot
ICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2Rl
KSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRo
cm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0J
CXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVm
LnJlcGxhY2VDaGlsZCh0eHQsY29tbWVudCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSXzQiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGVsZW0sdHh0KTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMjMoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMjMueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDIzLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNThhMWQyNTE2
M2ZkNWEzZmJhYzdkMTAxNDkzZDRhNTcxYWViMTdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMjMueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1s
Ci0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1s
MS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZ
IGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZ
IGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5U
SVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3Rh
dGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmls
ZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1s
bnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0g
ICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFj
cm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNw
YW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAg
ICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIK
LSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNo
aWxkMjMuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBD
REFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtD
REFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRv
IGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7
IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1Q
MDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNv
bm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8v
d3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDlmODNlNzRiOTI2NzMzMWMxNzAzYmQyOGQxNmVmYzIxZjQ2ZmIwNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMAotU3RhdHVzCVN1Y2Nlc3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzAuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDMwLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNzM1OGY5MzQ3MjYz
YjgyN2E4ZTg4ODEzZTdhZTM3YzBiNzYzMmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzAuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9
IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5p
bmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlv
biBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlz
IHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29t
cGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQg
d2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBh
Z2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAv
LwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhj
ZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LQotCi0KLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYW4gRWxlbWVudCBub2RlIGF0dGVtcHQgdG8g
cmVwbGFjZSBhIG5ldyBFbGVtZW50IGNoaWxkIG5vZGUgd2l0aCAKLQluZXcgY2hpbGQgbm9kZXMg
YW5kIHZpY2UgdmVyc2EgYW5kIGluIGVhY2ggY2FzZSB2ZXJpZnkgdGhlIG5hbWUgb2YgdGhlIHJl
cGxhY2VkIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzAoKSB7
Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJu
b2RlcmVwbGFjZWNoaWxkMzAiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAg
IHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3RWxlbWVudDsK
LSAgICAgIHZhciBuZXdUZXh0OwotICAgICAgdmFyIG5ld0NvbW1lbnQ7Ci0gICAgICB2YXIgbmV3
UEk7Ci0gICAgICB2YXIgbmV3Q2RhdGE7Ci0gICAgICB2YXIgbmV3RVJlZjsKLSAgICAgIHZhciBy
ZXBsYWNlZDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBh
cmVudCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
LCJ4aHRtbDpodG1sIik7Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpoZWFkIik7Ci0gICAgICBuZXdFbGVt
ZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIs
InhodG1sOmJvZHkiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQo
b2xkQ2hpbGQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdF
bGVtZW50KTsKLSAgICAgIG5ld1RleHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAg
ICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBu
ZXdDb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3Q29tbWVudCk7Ci0gICAgICBuZXdQSSA9IGRv
Yy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3UEkpOwotICAgICAgbmV3Q2RhdGEg
PSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IHBhcmVudC5hcHBlbmRDaGlsZChuZXdDZGF0YSk7Ci0gICAgICBuZXdFUmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQu
YXBwZW5kQ2hpbGQobmV3RVJlZik7Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hp
bGQobmV3RWxlbWVudCxvbGRDaGlsZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVO
YW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8xIiwieGh0bWw6
aGVhZCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChv
bGRDaGlsZCxuZXdFbGVtZW50KTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzIiLCJ4aHRtbDpib2R5
Iixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld1Rl
eHQsb2xkQ2hpbGQpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAg
ICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfMyIsInhodG1sOmhlYWQiLG5vZGVO
YW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3
VGV4dCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3Nl
cnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF80IiwiI3RleHQiLG5vZGVOYW1lKTsKLSAgICAg
ICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q29tbWVudCxvbGRDaGlsZCk7Ci0g
ICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMo
Im5vZGVyZXBsYWNlY2hpbGQzMF81IiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAgICAgIHJl
cGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdDb21tZW50KTsKLSAgICAg
IG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZXJlcGxhY2VjaGlsZDMwXzYiLCIjY29tbWVudCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2Vk
ID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdQSSk7Ci0gICAgICBub2RlTmFtZSA9
IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hp
bGQzMF83IiwidGFyZ2V0Iixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVw
bGFjZUNoaWxkKG9sZENoaWxkLG5ld0NkYXRhKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQu
bm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzgiLCIj
Y2RhdGEtc2VjdGlvbiIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxh
Y2VDaGlsZChvbGRDaGlsZCxuZXdFUmVmKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9k
ZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzkiLCJkZWx0
YSIsbm9kZU5hbWUpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewot
ICAgbm9kZXJlcGxhY2VjaGlsZDMwKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2RiNWNiYjEzM2ZhYWYyZWI0ZjEwNDNkMjFmYzQzNTA4Yjdk
YzdlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNU
LVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBY
SFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJ
VFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5U
SVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAg
ICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhz
aSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFy
Z2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgot
XT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53
My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
bj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVU
Ri04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDMwLmpzIi8+PHNjcmlwdCB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08
L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9u
Zz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAg
PHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUu
IERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhh
IFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVm
ZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBD
REFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgot
ICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20i
PgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgot
ICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgot
ICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlk
PSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJ
cnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDov
L3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkg
T2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxz
dXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAw
MDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0
ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8
L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzM2Y5MjkzMzU4MmE3MDU0
MjYxNWQxMjUwYTQ5MTBhNzQ5M2QwYTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRl
c3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzMKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTc0YmU0NGQ0YjBhNzcxY2I3OTIwNDM2YzdhM2MyZDhhNjIxNjRi
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTIwICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBX
b3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBU
ZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNz
IGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVk
LiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGlj
ZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsx
XSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3
YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVu
dGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAot
ICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDMzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0g
bnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rpbmcg
ZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8v
ICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3Vz
Ci0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUg
c3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlz
IGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2Yg
dGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3Qg
ZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWls
ZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEg
ZGVmYXVsdCBBdHRyIG5vZGUgdG8gcmVwbGFjZSBpdHMgVGV4dCBDaGlsZCB3aXRoIGEgCi0JbmV3
IEVudGl0eVJlZmVyZW5jZSBOb2RlIGFuZCB2ZXJpZnkgdGhlIHZhbHVlIG9mIHRoZSByZXBsYWNl
ZCBjaGlsZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMygpIHsKLSAg
IHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVy
ZXBsYWNlY2hpbGQzMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFy
IGNoaWxkTGlzdDsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZh
ciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAg
ICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJk
ZWx0YSIpOwotICAgICAgY2hpbGRMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7
Ci0gICAgICBlbGVtID0gY2hpbGRMaXN0Lml0ZW0oMyk7Ci0gICAgICBwYXJlbnQgPSBlbGVtLmdl
dEF0dHJpYnV0ZU5vZGUoImRpciIpOwotICAgICAgb2xkQ2hpbGQgPSBwYXJlbnQubGFzdENoaWxk
OwotCi0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hp
bGQpOwotICAgICAgbm9kZVZhbHVlID0gcmVwbGFjZWQubm9kZVZhbHVlOwotCi0gICAgICBhc3Nl
cnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMyIsInJ0bCIsbm9kZVZhbHVlKTsKLSAgICAgICAK
LX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzMygp
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzMy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzMueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3
OTkwYzE1ODA2NTU1ZWRlY2QxNWYzMjEwMWE4Y2ZhMjQ2M2E2N2QuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICsw
LDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NU
WVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0g
ICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAg
PCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAg
PCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJM
SUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3Rh
dGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAg
ICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAj
SU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFU
VExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFU
VExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVu
dCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
JwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWlu
c3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwv
dGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+
PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVy
ZXBsYWNlY2hpbGQzMy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9u
bG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhp
cyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50Mjtd
XT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2Rl
PgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0g
IDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNv
ZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlk
PSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9
Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9i
ZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0g
IDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIx
IE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0MzVlZTRkNTg2Y2YwMDk4NmM5MDFlZWQ0ZjE0Yzk0NzNiYzczZWJj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0Ci1TdGF0dXMJ
U3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNGEz
NWEwMWVhNGUzZThmYmE5YzA5MzIxYTJmODA0ODgyZTViZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNCI7Ci0gICB9Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2Ug
aXRzIG5ldyBFbnRpdHlSZWZlcmVuY2UgQ2hpbGQgd2l0aCBhIAotCW5ldyBUZXh0IE5vZGUgYW5k
IHZlcmlmeSB0aGUgdmFsdWUgb2YgdGhlIG5ldyBjaGlsZC4KLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9u
IG5vZGVyZXBsYWNlY2hpbGQzNCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5p
dGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzNCIpICE9IG51bGwpIHJldHVy
bjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsK
LSAgICAgIHZhciBuZXdDaGlsZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBw
ZW5kZWRDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmli
dXRlTlMoImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7
Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAg
IG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICByZXBsYWNlZCA9
IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVl
ID0gcGFyZW50LnZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQz
NCIsIlRleHQiLG5vZGVWYWx1ZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDY5YmIwMzgwZDE1ZGNlMzVhY2E4NTBhNTgz
NjJiNGQxYjZjMmI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzQuanMiLz48c2NyaXB0
IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRl
c3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgot
ICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9j
b2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5v
cnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9u
Zz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBF
bnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFk
amFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9z
dHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwot
IDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6
ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9z
dHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAw
PC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8g
Qm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5t
PSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJv
bmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29k
ZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAg
PGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29k
ZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFy
Pm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhh
cyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM1LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUxYzk4OGY2
NGZjOTgzMjM1ODcyOGMxMDM3NWE3Mjk2YTA3NzZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAs
MCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzNQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYmFlODY3YTVlZjJiYjdkY2E5MWViNzI3ZjJkYzU1
YzYwODExOWIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAw
MS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0
dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5m
b3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMg
UmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0
d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmln
aHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0
aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBv
ZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAi
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1
aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUg
dGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUu
Ci0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3lu
Y2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndp
c2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNl
cHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUg
Ym9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBh
Z2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0
ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0g
ICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9h
ZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0
Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwot
Ly8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAg
IGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBX
aGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8g
ICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAg
IGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hp
bGQgb24gYSBuZXcgQXR0ciBub2RlLCByZXBsYWNlIGl0cyBuZXcgRW50aXR5UmVmZXJuZWNlIENo
aWxkIHdpdGggYSAKLQluZXcgQXR0ciBOb2RlIGFuZCB2ZXJpZnkgaWYgYSBISUVSQVJDSFlfUkVR
VUVTVF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGls
ZDM1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWls
ZGVyLCAibm9kZXJlcGxhY2VjaGlsZDM1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7
Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0No
aWxkOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgdmFyIHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3
dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxk
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgbmV3Q2hpbGQgPSBkb2Mu
Y3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIs
InhtbDpsYW5nIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGls
ZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4
LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gMyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1
ZSgidGhyb3dfSElFUkFSQ0hZX1JFUVVFU1RfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNSgpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzNS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzUueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNjcyMWNkOTRm
MTVlMjZjZmU1YWNmODM1NDIzZmZkNmQ2OTg4YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hp
bGQzNS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5MTk5ZTAxNjExOWJjYjkwNDEyNDkzYzcyZjEwZWFmMTg3M2M0NzYxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2Ci1TdGF0dXMJU3VjY2Vzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlYTIyNWJlZWYyZmEz
OGVlYzk1ZTAwOGUxMmI2Nzk1NzZjMGE0YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzNi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
CVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBF
bnRpdHlSZWZlcm5lY2Ugbm9kZSB3aXRoIGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5IGlm
IGEgTk9UX0ZPVU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBO
ZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZl
bC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVw
bGFjZWNoaWxkMzYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0
aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAg
dmFyIGRvYzsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2
YXIgbmV3Q2hpbGQ7Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBh
cmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgv
bmFtZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRleHROb2Rl
KCJUZXh0Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAg
ICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7
Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNv
ZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOCk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgi
dGhyb3dfTk9UX0ZPVU5EX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzYoKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2Lnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWE4ODBiMDcyYTM1Nzg0MDFmYjFi
ZWVmZDdhMjRhNmFjMTg4MGM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRk
IiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2
OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0
ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICIm
Izk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFU
VExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1s
bnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAg
ICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0
ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRh
PC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RB
VEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRt
bCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNp
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhz
ZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRG
LTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzYuanMiLz48
c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBz
dGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgp
Ij4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8
L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50
YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4x
MjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAg
PHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24g
d2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlz
IGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7
XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdh
bW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpv
bmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4x
MDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0g
IDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rv
cjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4
NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292
Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgot
ICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgot
ICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmlu
ZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJj
MWFhNWJmODg5ZDI1NjZhYTM1M2IwOWM0NDFhYTc3YTBiZjZhMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhy
b3dfV1JPTkdfRE9DVU1FTlRfRVJSOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcyBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmZDAyNjQ0MTNkYjc2NmJiNGFmZjIwNjM0YTk4
N2MzOTIxNzQ0ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzNyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIg
YnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRo
ZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0
ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFz
eW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVy
d2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4
Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRo
ZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVw
UGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3Jl
YXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8K
LSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NM
b2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgIHZhciBkb2MyUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MyKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2MyUmVm
ID0gdGhpcy5kb2MyOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvYzJS
ZWYsICJkb2MyIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDIpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMikgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNp
bmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IFRleHQg
bm9kZSB3aXRoIGEgCi0JbmV3IEVudGl0eVJlZmVyZW5jZSBOb2RlIGNyZWF0ZWQgYnkgYW5vdGhl
ciBkb2N1bWVudCBhbmQgdmVyaWZ5IGlmIGEgCi0JV1JPTkdfRE9DVU1FTlRfRVJSIGlzIHJhaXNl
ZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lE
LTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNygpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNl
Y2hpbGQzNyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvYzI7
Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0No
aWxkOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZh
ciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIAotICAgICAgdmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYzIpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlz
LmRvYzI7Ci0gICAgICB9Ci0gICAgICBkb2MyID0gbG9hZChkb2MyUmVmLCAiZG9jMiIsICJoY19z
dGFmZiIpOwotICAgICAgcGFyZW50ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3
LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQg
PSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jMi5jcmVh
dGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50
LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0No
aWxkLG9sZENoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9
ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA0KTsKLQkJfQot
CQlhc3NlcnRUcnVlKCJ0aHJvd19XUk9OR19ET0NVTUVOVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM3KCk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDM3LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlk
ZGJkMjMzMTk5N2UzMzM4NWZhYTBmZjI3MzI5NDliZWZiYWY2OS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZ
UEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAg
ICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8
IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8
IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJ
QyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0
aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAg
ICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
aHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAg
ICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRU
TElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
Ci0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5z
dGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJl
cGxhY2VjaGlsZDM3LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlz
IGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11d
PgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVy
ZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+
Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0g
IDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFn
ZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9
Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9h
ZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0i
aHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2Jl
cnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAg
PHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEg
Tm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkNzYwOTM0ZmVjNGQ5NDc4NmFlMWJmNThmNWQ0NWE1OWIxYTky
YzU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMAot
U3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTU3MWFlNzczOGEwYjI4M2JjOTJjODdhZmQzYWM1MTM2MjliMzE1Ni4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwxMzEgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUg
V2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ks
IEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhl
bWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29y
ayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBp
biB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93
d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEy
MzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhl
IHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1
bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMCI7Ci0g
ICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0K
LS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29y
ayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRo
ZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAg
ICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwot
Ly8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlh
dGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0
LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5u
aW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50
IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNy
ZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1
dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRy
aWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBzZXRUZXh0
Q29udGVudCBoYXMgbm8gZWZmZWN0IHdoZW4gdGhlIG5vZGUgaXMgZGVmaW5lZCB0byBiZSBudWxs
LgotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSwgYXR0ZW1w
dCB0byBzZXQgaXRzIGNvbnRlbnQgdG8gRUxFTUVOVC4KLQlSZXRyZWl2ZSB0aGUgdGV4dENvbnRl
bnQgYW5kIHZlcmlmeSBpZiBpdCBpcyB3YXMgc2V0IHRvIEVMRU1FTlQuCi0KLSogQGF1dGhvciBJ
Qk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIw
MDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAot
Ki8KLWZ1bmN0aW9uIG5vZGVzZXR0ZXh0Y29udGVudDEwKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0g
ICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTAi
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAg
dmFyIHR4dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZh
ciBjZGF0YTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZh
ciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3Lncz
Lm9yZy9ET00vVGVzdCIsImRvbTM6ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHRO
b2RlKCJUZXh0ICIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50
ICIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwot
ICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEg
Iik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
ZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2Rh
dGEpOwotICAgICAgZWxlbS50ZXh0Q29udGVudCA9ICJFTEVNRU5UIjsKLQotICAgICAgdGV4dENv
bnRlbnQgPSBlbGVtLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVzZXR0
ZXh0Y29udGVudDEwIiwiRUxFTUVOVCIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXNldHRleHRjb250ZW50MTAoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkZTc2
MGYwZjBhMmI3NThlNmYyZWU4MGUzMGM1YzlmNGE1NzQ1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXNldHRleHRjb250ZW50MTAueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0
dGV4dGNvbnRlbnQxMC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9u
bG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhp
cyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50Mjtd
XT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2Rl
PgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0g
IDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNv
ZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlk
PSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9
Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9i
ZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0g
IDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIx
IE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYmJjMTQ3MDg4NmJmMDRlNGIwOTUyNjdmNjUzNDVlMDRiM2Vh
MzM2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEK
LVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQ0NDMxZjc5MjMxZjAwYjI0YzU0ODA4YTk2OGMzOTM5ZTYzMWUyZWMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMTM1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRl
IFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5
LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRo
ZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdv
cmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0g
aW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8v
d3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIx
MjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRo
ZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1m
dW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEg
bmV3IERvY3VtZW50RnJhZ21lbnQgbm9kZSBFbGVtZW50IGNoaWxkLCBhdHRlbXB0IHRvIHNldCBp
dHMgY29udGVudCB0byAKLQlET0NVTUVOVEZSQUdNRU5ULiAgUmV0cmVpdmUgdGhlIHRleHRDb250
ZW50IGFuZCB2ZXJpZnkgaWYgaXQgaXMgd2FzIHNldCB0byBET0NVTUVOVEZSQUdNRU5UCi0KLSog
QGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMu
b3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0
Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0ZXh0Y29udGVudDExKCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRj
b250ZW50MTEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NG
cmFnOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgZWxlbUNoaWxkOwotICAgICAgdmFyIHR4
dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0
YTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBl
bmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAg
ZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
LCJ4aHRtbDpwIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7Ci0g
ICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBlbnRS
ZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgcGkgPSBkb2Mu
Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0
YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGls
ZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwot
ICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBlbGVtLnRleHRD
b250ZW50ID0gIkRPQ1VNRU5URlJBR01FTlQiOwotCi0gICAgICBlbGVtQ2hpbGQgPSBkb2NGcmFn
Lmxhc3RDaGlsZDsKLQotICAgICAgdGV4dENvbnRlbnQgPSBlbGVtQ2hpbGQudGV4dENvbnRlbnQ7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50MTEiLCJET0NVTUVOVEZS
QUdNRU5UIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICBub2Rlc2V0dGV4dGNvbnRlbnQxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MmNiZDA0YWM5MWZkOThmNDAyMTM5
NzQzMTk4NWRkZTFiODEzZmZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNp
b249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5k
dGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5
NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYj
OTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwh
QVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAg
ICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVu
dDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRh
dGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBD
REFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxo
dG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4
c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYu
eHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJV
VEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29udGVudDExLmpz
Ii8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxl
dGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNj
b3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+
Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0
aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhp
cyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAm
dGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMs
ICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIK
LSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxz
dXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2Vt
PgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGly
ZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0
LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9u
Zz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1
cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRl
bnQxMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXNldHRleHRjb250ZW50MTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyYTBmYmY0MmIyZTk2NzUwODNmMjE3YzE1ZmFkNzgyZGQ3ZmRkNDRiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMgotU3RhdHVzCVN1Y2Nlc3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4
dGNvbnRlbnQxMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZjMzZmZTZi
MTFlY2JlODFjNTYzNmRhYWVhODBiNDU5YjcwYTg3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAot
Ci0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0s
IAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2Vh
cmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVu
aXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNv
cnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0g
ICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAg
QHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdl
dFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMiI7Ci0gICB9Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotCi0JCi0JVXNpbmcgc2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRW50aXR5UmVmZXJl
bmNlIG5vZGUsIGF0dGVtcHQgdG8gc2V0IGl0cyB2YWx1ZS4KLQlTaW5jZSBFbnRpdHlSZWZlcmVu
Y2Ugbm9kZXMgYXJlIFJlYWRPbmx5LCBjaGVjayBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUiAgCi0JaXMgcmFpc2VkLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rlc2V0dGV4
dGNvbnRlbnQxMigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgIm5vZGVzZXR0ZXh0Y29udGVudDEyIikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIg
dGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50
RWxlbWVudDsKLQotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0
YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAg
ICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgZW50UmVm
LnRleHRDb250ZW50ID0gIk5BIjsKLQotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBz
dWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcp
OwotCQl9Ci0JCWFzc2VydFRydWUoIm5vZGVzZXR0ZXh0Y29udGVudDEyIixzdWNjZXNzKTsKLQl9
Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR0ZXh0Y29udGVu
dDEyKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTIueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY0YmY5Njg3YTBlYjRkODczOTQyNzMzNTVmMDczNDNkMWYxYmM5MzcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyLnhodG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFU
QT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYj
OTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24g
IiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBT
WVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRB
ICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
Om5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1Q
TElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+
Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9Y
TUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
eGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ibm9kZXNldHRleHRjb250ZW50MTIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0
IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBU
ZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMK
LTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVt
YmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlv
biB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNl
Y3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5F
TVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRl
cGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVu
dDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4
YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2
aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9z
dHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgot
ICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFs
aXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4K
LSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4ZDdhZjJmZjk4M2UxNzMxZTA2ZGFkYjUzZjQ4
MDJmZGRlMmY2ZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4
Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJTGluZSAxMTM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjZmNTg2M2JmNDY3OGFlNTBhZTk1ZDg4NmQ2
NmUwYzhlMzU0ZGQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVz
ZXR1c2VyZGF0YTA4IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHNldFVzZXJE
YXRhIG9uIGEgQ0RBVEFTZWN0aW9uIGFuZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZSB0byBzZXQgdGhl
aXIgCi0JVXNlckRhdGEgdG8gdGhpcyBEb2N1bWVudCBhbmQgRG9jdW1lbnRFbGVtZW50IG5vZGUu
ICBWZXJpZnkgaWYgdGhlIFVzZXJEYXRhIAotCW9iamVjdCB0aGF0IHdhcyBzZXQgZm9yIGJvdGgg
bm9kZXMgaXMgZGlmZmVyZW50LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtc2V0VXNlckRhdGEKLSovCi1mdW5jdGlvbiBub2Rlc2V0dXNl
cmRhdGEwOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgIm5vZGVzZXR1c2VyZGF0YTA4IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBk
b2M7Ci0gICAgICB2YXIgZG9jRWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY0Rh
dGE7Ci0gICAgICB2YXIgZWxlbUxpc3Q7Ci0gICAgICB2YXIgZWxlbU5hbWU7Ci0gICAgICB2YXIg
dXNlckRhdGE7Ci0gICAgICB2YXIgcmV0dXJuZWQxOwotICAgICAgdmFyIHJldHVybmVkMjsKLSAg
ICAgIHZhciBzdWNjZXNzOwotICAgICAgdmFyIHJldFVzZXJEYXRhOwotICAgICAgdmFyIG51bGxI
YW5kbGVyID0gbnVsbDsKLQotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBl
bnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY0RhdGEg
PSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIGlmIChudWxs
ID09IG51bGxIYW5kbGVyKSB7Ci0gICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBk
b2MsIG51bGwpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEo
IktleTEiLCBkb2MsIG51bGxIYW5kbGVyLmhhbmRsZSk7Ci0gICAgICB9Ci0gICAgICAgaWYgKG51
bGwgPT0gbnVsbEhhbmRsZXIpIHsKLSAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwg
ZG9jRWxlbSwgbnVsbCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIGNEYXRhLnNldFVzZXJE
YXRhKCJLZXkyIiwgZG9jRWxlbSwgbnVsbEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAg
ICByZXR1cm5lZDEgPSBlbnRSZWYuZ2V0VXNlckRhdGEoIktleTEiKTsKLSAgICAgIHJldHVybmVk
MiA9IGNEYXRhLmdldFVzZXJEYXRhKCJLZXkyIik7Ci0gICAgICBzdWNjZXNzID0gcmV0dXJuZWQx
LmlzRXF1YWxOb2RlKHJldHVybmVkMik7Ci0gICAgICBhc3NlcnRGYWxzZSgibm9kZXNldHVzZXJk
YXRhMDgiLHN1Y2Nlc3MpOwotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBu
b2Rlc2V0dXNlcmRhdGEwOCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0ZjQ2NDA2OTZlNmY5MjQzYTYwODFmNzkyMjE3OGRjMWViNmFhZmNhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC54aHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQ
SURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhh
ICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1h
ICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNp
bG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBD
REFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRh
dGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Im5vZGVzZXR1c2VyZGF0YTA4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRz
Ci08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51
bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rp
b24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZl
bnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRh
dmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwv
c3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4K
LSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lh
bGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTI1YTM4MDlkNzkwMWZhMDQ0
NmM3Nzc3YjRlYWFjYmQ0ZjRlZTExYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxh
Y2V3aG9sZXRleHQwNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90
ZXh0cmVwbGFjZXdob2xldGV4dDA2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQxOGYyNzYxMjQzNTE0YWJhMTZmYmY0
MzJmY2VjOGFmZDM3Y2QwMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9s
ZXRleHQwNi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
ICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUp
OwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzIiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRl
ZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAg
ICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxp
emF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBv
biB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0
ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVk
IGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFu
Z2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVj
dXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotLyoqCi0qIAotCVRoZSBtZXRob2QgcmVwbGFjZVdob2xlVGV4dCBzdWJzdGl0dXRlcyB0aGUg
YSBzcGVjaWZpZWQgdGV4dCBmb3IgdGhlIHRleHQgb2YgCi0JdGhlIGN1cnJlbnQgbm9kZSBhbmQg
YWxsIGxvZ2ljYWxseS1hZGphY2VudCB0ZXh0IG5vZGVzLiAgVGhpcyBtZXRob2QgcmFpc2VzCi0J
YSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaWYgb25lIG9mIHRoZSBUZXh0IG5vZGVzIGJl
aW5nIHJlcGxhY2VkIGlzIHJlYWRvbmx5LgotCQotCUludm9rZSByZXBsYWNlV2hvbGVUZXh0IG9u
IGFuIGV4aXN0aW5nIHRleHQgbm9kZSB3aXRoIG5ld2x5IGNyZWF0ZWQgdGV4dCBhbmQgRW50aXR5
cmVmZXJlbmNlCi0Jbm9kZXMgKHdob3NlIHJlcGxhY2VtZW50IHRleHQgaXMgYSBjaGFyYWN0ZXIg
ZW50aXR5IHJlZmVyZW5jZSkgYXBwZW5kZWQgYXMgY2hpbGRyZW4gb2YgaXRzIHBhcmVudCBlbGVt
ZW50IG5vZGUuICAKLQlXaGVyZSB0aGUgbm9kZXMgdG8gYmUgcmVtb3ZlZCBhcmUgcmVhZC1vbmx5
IGRlc2NlbmRhbnRzIG9mIGFuIEVudGl0eVJlZmVyZW5jZSwgdGhlIEVudGl0eVJlZmVyZW5jZSAK
LSAgICAgICAgbXVzdCBiZSByZW1vdmVkIGluc3RlYWQgb2YgdGhlIHJlYWQtb25seSBub2Rlcy4g
T25seSBpZiBhbnkgRW50aXR5UmVmZXJlbmNlIHRvIGJlIHJlbW92ZWQgaGFzIAotICAgICAgICBk
ZXNjZW5kYW50cyB0aGF0IGFyZSBub3QgRW50aXR5UmVmZXJlbmNlLCBUZXh0LCBvciBDREFUQVNl
Y3Rpb24gbm9kZXMsIHRoZSByZXBsYWNlV2hvbGVUZXh0IAotICAgICAgICBtZXRob2QgbXVzdCBm
YWlsLCByYWlzaW5nIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSLiBWZXJpZnkgdGhhdCB0
aGUgbWV0aG9kIGRvZXMgbm90IHJhaXNlCi0gICAgICAgIGFuIGV4Y2VwdGlvbiBhbmQgdmVyaWZ5
IHRoZSBjb250ZW50IG9mIHRoZSByZXR1cm5lZCB0ZXh0IG5vZGUuCi0KLSogQGF1dGhvciBJQk0K
LSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQv
UkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0
Ci0qLwotZnVuY3Rpb24gdGV4dHJlcGxhY2V3aG9sZXRleHQwNigpIHsKLSAgIHZhciBzdWNjZXNz
OwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0
ZXh0MDYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlz
dDsKLSAgICAgIHZhciBlbGVtZW50U3Ryb25nOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAg
dmFyIGVyZWZOb2RlOwotICAgICAgdmFyIHJlcGxhY2VkVGV4dDsKLSAgICAgIHZhciBhcHBlbmRl
ZENoaWxkOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5
VGFnTmFtZSgic3Ryb25nIik7Ci0gICAgICBlbGVtZW50U3Ryb25nID0gaXRlbUxpc3QuaXRlbSgw
KTsKLSAgICAgIHRleHROb2RlID0gZG9jLmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAg
ICAgZXJlZk5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gZWxlbWVudFN0cm9uZy5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZWxlbWVudFN0cm9uZy5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0g
ICAgICB0ZXh0Tm9kZSA9IGVsZW1lbnRTdHJvbmcuZmlyc3RDaGlsZDsKLQotICAgICAgcmVwbGFj
ZWRUZXh0ID0gdGV4dE5vZGUucmVwbGFjZVdob2xlVGV4dCgiTmV3IFRleHQgYW5kIENkYXRhIik7
Ci0gICAgICBub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVx
dWFscygidGV4dHJlcGxhY2V3aG9sZXRleHQwNiIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZh
bHVlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIHRleHRy
ZXBsYWNld2hvbGV0ZXh0MDYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5NzBiNjBiMTA5MDhhMGM3OWZkNTdjODEzOWJkOTE4
YzM3MWVjMmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzIi8+PHNj
cmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3Rh
cnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdp
dGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBh
biBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11d
Pjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1t
YTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
bmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25l
czwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAw
LDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1
NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcg
VGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTA3NWVjYmQwOGU2ODZmNjlmYWZlNGE2MzdhYzk2NTYyMGEyZjQ5Yy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3Ci1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBs
YWNld2hvbGV0ZXh0MDcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4
dHJlcGxhY2V3aG9sZXRleHQwNy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU2
NGQzMmRkMzEzMjlkNjdhOTkxYTc5MTQyMTAwZjAwMWYzZWIwNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOSAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDciOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJu
YW1lc3BhY2VBd2FyZSIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAot
ICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAn
dW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAg
IGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
ICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0
Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBp
cyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMg
bG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9u
b3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0
dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3Qg
dG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLS8qKgotKiAKLUFwcGVuZCBhbiBlbnRpdHkgcmVmZXJlbmNlIGFuZCBhIHRl
eHQgbm9kZSBhZnRlciB0byB0aGUgY29udGVudCBvZiB0aGUKLWZpcnN0IHN0cm9uZyBlbGVtZW50
LiAgVGhlbiBjYWxsIHJlcGxhY2VXaG9sZVRleHQgb24gaW5pdGlhbCBjb250ZW50Ci1vZiB0aGF0
IGVsZW1lbnQuICBTaW5jZSB0aGUgZW50aXR5IHJlZmVyZW5jZSBkb2VzIG5vdCBjb250YWluIGFu
eSAKLWxvZ2ljYWxseS1hZGphY2VudCB0ZXh0IGNvbnRlbnQsIG9ubHkgdGhlIGluaXRpYWwgdGV4
dCBlbGVtZW50IHNob3VsZAotYmUgcmVwbGFjZWQuIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgTmVpbCBEZWxpbWEKLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1y
ZXBsYWNlV2hvbGVUZXh0Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hv
d19idWcuY2dpP2lkPTQyNQotKi8KLWZ1bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDcoKSB7
Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0
ZXh0cmVwbGFjZXdob2xldGV4dDA3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0g
ICAgICB2YXIgaXRlbUxpc3Q7Ci0gICAgICB2YXIgZWxlbWVudE5hbWU7Ci0gICAgICB2YXIgdGV4
dE5vZGU7Ci0gICAgICB2YXIgZXJlZk5vZGU7Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAg
ICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIgbm9kZTsKLSAgICAgIHZhciBub2RlVmFs
dWU7Ci0gICAgICB2YXIgbm9kZVR5cGU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgaXRlbUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoInN0cm9uZyIpOwotICAgICAgZWxlbWVudE5hbWUgPSBpdGVtTGlzdC5pdGVtKDApOwotICAg
ICAgZXJlZk5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICB0
ZXh0Tm9kZSA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiTmV3IFRleHQiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBlbGVtZW50TmFtZS5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICBhcHBlbmRl
ZENoaWxkID0gZWxlbWVudE5hbWUuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgdGV4dE5v
ZGUgPSBlbGVtZW50TmFtZS5maXJzdENoaWxkOwotCi0gICAgICByZXBsYWNlZFRleHQgPSB0ZXh0
Tm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJOZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAgIHRleHRO
b2RlID0gZWxlbWVudE5hbWUuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0U2FtZSgicmV0dmFs
X3NhbWUiLHRleHROb2RlLHJlcGxhY2VkVGV4dCk7Ci1ub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2Rl
VmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZVZhbHVlU2FtZSIsIk5ldyBUZXh0IGFu
ZCBDZGF0YSIsbm9kZVZhbHVlKTsKLSAgICAgICBub2RlID0gdGV4dE5vZGUubmV4dFNpYmxpbmc7
Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoInNlY29uZENoaWxkTm90TnVsbCIsbm9kZSk7Ci1ub2Rl
VHlwZSA9IG5vZGUubm9kZVR5cGU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygic2Vjb25kQ2hpbGRJ
c0VudFJlZiIsNSxub2RlVHlwZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54aHRt
bCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4
dDA3LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDI5NzdiYTE4OGFhMWIx
Mzg4NjZlZGFiMzU1NWI3OTdjMjQxNzgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAot
ICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEt
c3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBi
ZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBk
ZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRp
b24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUi
PgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5z
OmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAg
ICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jv
bnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFF
TlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVs
ZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFu
IHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAx
Li0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAg
IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0g
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBo
Y19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNo
YXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0idGV4dHJlcGxhY2V3aG9s
ZXRleHQwNy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJl
cGxhY2V3aG9sZXRleHQwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDI0NTFhNDY2YjY0MzFhMjRkNmI3YTQ5MzJhNmRjZDMxNDQ1ZTY0
MmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQw
OAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDguanMgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTA4NTRiMzBmMmZmYTc0ZDczYTcxNGFmZjdkYzdiZDMwYTA1ODlj
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNl
d2hvbGV0ZXh0MDgiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1
aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUg
dGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUu
Ci0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3lu
Y2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndp
c2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNl
cHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUg
Ym9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBh
Z2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0
ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0g
ICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9h
ZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAi
YmFyZm9vIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1BcHBlbmRzIGFuIGVudGl0eSBy
ZWZlcmVuY2UgY29udGFpbmluZyB0ZXh0IGFuZCBhbiBlbGVtZW50IHRvIGFuIGV4aXN0aW5nCi10
ZXh0IG5vZGUsIHRoZW4gY2FsbHMgVGV4dC5yZXBsYWNlV2hvbGVUZXh0IG9uIHRoZSBleGlzdGlu
ZyB0ZXh0IG5vZGUuCi1BIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBzaG91bGQgYmUgdGhy
b3duLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdo
b2xlVGV4dAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNn
aT9pZD00MjUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5j
Z2k/aWQ9NTQwCi0qLwotZnVuY3Rpb24gdGV4dHJlcGxhY2V3aG9sZXRleHQwOCgpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBs
YWNld2hvbGV0ZXh0MDgiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZh
ciBpdGVtTGlzdDsKLSAgICAgIHZhciBwOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBu
b2RlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAg
ICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicCIpOwotICAgICAgcCA9IGl0
ZW1MaXN0Lml0ZW0oMCk7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJlbnQyIik7Ci0gICAgICBub2RlID0gcC5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgbm9k
ZSA9IHAuZmlyc3RDaGlsZDsKLQotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBub2RlID0gbm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJ5byIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3
aG9sZXRleHQwOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0
cmVwbGFjZXdob2xldGV4dDA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
ZmFlOTk2OWFmOGM2ZDEwMjM0ZmEwMDM2MmQ3ODUzZTY5N2QwZDFhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgWwotPCFFTlRJVFkgZW50MSAnZm9vJz4KLTwhRU5U
SVRZIGVudDIgJ2Zvbzxici8+Jz4KLTwhRUxFTUVOVCBodG1sIChoZWFkLCBib2R5KT4KLTwhQVRU
TElTVCBodG1sIHhtbG5zIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIGhlYWQgKHRpdGxlLHNj
cmlwdCopPgotPCFFTEVNRU5UIHNjcmlwdCAoI1BDREFUQSk+Ci08IUFUVExJU1Qgc2NyaXB0IAot
ICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKLSAgICAgdHlwZSBDREFUQSAjSU1QTElFRAotICAgICBj
aGFyc2V0IENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KLTwhRUxF
TUVOVCBib2R5IChwKT4KLTwhQVRUTElTVCBib2R5IG9ubG9hZCBDREFUQSAjSU1QTElFRD4KLTwh
RUxFTUVOVCBwICgjUENEQVRBfGJyKSo+Ci08IUVMRU1FTlQgYnIgRU1QVFk+Ci1dPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPgotPGhlYWQ+Ci08dGl0bGU+cmVw
bGFjZVdob2xlVGV4dCBzYW1wbGU8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnIHNyYz0nc2VsZnhodG1sLmpzJz48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9J1VURi04JyB0
eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0ndGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyc+PC9z
Y3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLTxwPmJhcjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25s
eS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MGFjM2Q5Y2JkZjcwMGU2OTZiNmEwNzQ4NTBjNjI2YzQzODYzNjc5Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRp
dHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyMyArMCwwIEBACi1UZXN0IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZXMgYXJlIGFsd2F5cyB0cmVhdGVkIHJlYWRvbmx5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIHhtbERvYzIuYWRvcHROb2RlKGVudGl0eVJlZmVyZW5jZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3
LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uub3duZXJEb2N1bWVudCBpcyB4bWxEb2MKLVBBU1MgZW50
aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSA9ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9N
b2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVm
ZXJlbmNlLm5vZGVWYWx1ZSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAn
Zm9vJyB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5hbWVzcGFjZUVycm9yOiBET00gRXhjZXB0aW9u
IDE0LgotUEFTUyBlbnRpdHlSZWZlcmVuY2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50aXR5UmVm
ZXJlbmNlLnRleHRDb250ZW50ID0gJ2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotRkFJTCBlbnRpdHlSZWZlcmVu
Y2UudGV4dENvbnRlbnQgc2hvdWxkIGJlID4uIFdhcyAuCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFp
bGVkQXBwZW5kIHNob3VsZCBiZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmFwcGVu
ZENoaWxkKHRleHQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMu
bGVuZ3RoIGlzIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kCi1GQUlMIGNoaWxkcmVuQmVmb3Jl
RmFpbGVkQXBwZW5kIHNob3VsZCBiZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmlu
c2VydEJlZm9yZSh0ZXh0LCBlbnRpdHlSZWZlcmVuY2UuZmlyc3RDaGlsZCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3Lgot
UEFTUyBlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGggaXMgY2hpbGRyZW5CZWZvcmVG
YWlsZWRBcHBlbmQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uv
cmVhZG9ubHktZXhjZXB0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVm
ZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2ZiMTY0MWJlZDQ0NzMwNzBmYmMyZTlmMzQ5YzE5Y2I4MWQzZThmMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJl
bmNlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50
aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0YmVlZDkzYTVlMDZkODg0MTI4ZGYzYjM0ZGI1NDJkODUwNzFlMzVkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNj
cmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3Jp
cHQtdGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vu
dGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWYyNDY1N2Q4MmRiM2U4YTdmYmJlNDg3N2QzZDNkNjNi
MTA5ZDQ3Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5
LWV4Y2VwdGlvbnMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1kZXNjcmlwdGlv
bigiVGVzdCB0byBtYWtlIHN1cmUgRW50aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBhbHdheXMgdHJl
YXRlZCByZWFkb25seSIpCi0KLXZhciB4bWxEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5j
cmVhdGVEb2N1bWVudCgiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVs
bCk7Ci12YXIgeG1sRG9jMiA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50
KCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZhciBlbnRp
dHlSZWZlcmVuY2UgPSB4bWxEb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotCi1zaG91
bGRUaHJvdygieG1sRG9jMi5hZG9wdE5vZGUoZW50aXR5UmVmZXJlbmNlKSIpOwotc2hvdWxkQmUo
ImVudGl0eVJlZmVyZW5jZS5vd25lckRvY3VtZW50IiwgInhtbERvYyIpCi0KLS8vIG5vZGVWYWx1
ZSBpcyBkZWZpbmVkIHRvIGJlIG51bGwgZm9yIEVudGl0eSBSZWZlcmVuY2Ugbm9kZXMsIGFuZCB0
aHVzIHNob3VsZCBzaWxlbnRseSBmYWlsIHRvIG1vZGlmeQotLy8gU3BlYyBpcyBhbWJpZ2lvdXMg
YXMgdG8gaWYgd2Ugc2hvdWxkIHRocm93IGhlcmUgb3Igbm90LiAgSSd2ZSByZXF1ZXN0ZWQgY2xh
cmlmaWNhdGlvbjoKLS8vIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1k
b20vMjAwOEphbk1hci8wMDA5Lmh0bWwKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2Uubm9k
ZVZhbHVlID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwg
Im51bGwiKTsKLQotc2hvdWxkVGhyb3coImVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyIp
Owotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5wcmVmaXgiLCAibnVsbCIpOwotCi1zaG91bGRU
aHJvdygiZW50aXR5UmVmZXJlbmNlLnRleHRDb250ZW50ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJl
bnRpdHlSZWZlcmVuY2UudGV4dENvbnRlbnQiLCAiJz4nIik7Ci0KLXZhciBjaGlsZHJlbkJlZm9y
ZUZhaWxlZEFwcGVuZCA9IGVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3Vs
ZEJlKCJjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCIsICIxIik7Ci12YXIgdGV4dCA9IGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJGQUlMIik7Ci1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNl
LmFwcGVuZENoaWxkKHRleHQpIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9k
ZXMubGVuZ3RoIiwgImNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIik7Ci0KLWNoaWxkcmVuQmVm
b3JlRmFpbGVkQXBwZW5kID0gZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hv
dWxkQmUoImNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIiwgIjEiKTsKLXNob3VsZFRocm93KCJl
bnRpdHlSZWZlcmVuY2UuaW5zZXJ0QmVmb3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENo
aWxkKSIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCIsICJj
aGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vTm9kZS9pbml0aWFsLXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dAppbmRleCAyNmYwZWMyYTNkZWJm
ZTdhN2VkZWIwOGUyZDEwMWE3NDE1ZGNkZmI1Li4xYzk4MWZiM2I1ZDg5MjdkNWE4NDMzOGYzNzEy
NDUzYTYwY2U4MWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRp
YWwtdmFsdWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2lu
aXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dApAQCAtMTEzLDEyICsxMTMsNiBAQCBQQVNTIGVsZW1l
bnQubmFtZXNwYWNlVVJJIGlzICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwogUEFTUyBl
bGVtZW50LnByZWZpeCBpcyAnaHRtbCcKIFBBU1MgZWxlbWVudC5ub2RlVmFsdWUgaXMgbnVsbAog
UEFTUyBlbGVtZW50LmF0dHJpYnV0ZXMudG9TdHJpbmcoKSBpcyAnW29iamVjdCBOYW1lZE5vZGVN
YXBdJwotUEFTUyBkb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoJ2d0JykgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBl
bnRpdHlSZWZlcmVuY2Uubm9kZU5hbWUgaXMgJ2d0JwotUEFTUyBlbnRpdHlSZWZlcmVuY2UubG9j
YWxOYW1lIGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5hbWVzcGFjZVVSSSBpcyBudWxs
Ci1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVu
Y2Uubm9kZVZhbHVlIGlzIG51bGwKIFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5vZGVOYW1l
IGlzICd4bWwtc3R5bGVzaGVldCcKIFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLmxvY2FsTmFt
ZSBpcyBudWxsCiBQQVNTIHByb2Nlc3NpbmdJbnN0cnVjdGlvbi5uYW1lc3BhY2VVUkkgaXMgbnVs
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5p
dGlhbC12YWx1ZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9p
bml0aWFsLXZhbHVlcy5qcwppbmRleCA3MzFhODA2MzkwODY5OGI0Njk1YjI4YzM2Yjc3M2E3ZGQx
YTMwMzU0Li45YjEyYTk3OTAxYzAzOTQzMjMzMmQzM2RmY2FkYzk4MjdmYjZhYWZhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVl
cy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFs
LXZhbHVlcy5qcwpAQCAtMTU2LDE2ICsxNTYsNiBAQCBzaG91bGRCZSgiZWxlbWVudC5wcmVmaXgi
LCAiJ2h0bWwnIik7CiBzaG91bGRCZSgiZWxlbWVudC5ub2RlVmFsdWUiLCAibnVsbCIpOwogc2hv
dWxkQmUoImVsZW1lbnQuYXR0cmlidXRlcy50b1N0cmluZygpIiwgIidbb2JqZWN0IE5hbWVkTm9k
ZU1hcF0nIik7CiAKLS8vIE5vdCBwb3NzaWJsZSB0byBjcmVhdGUgRW50aXR5IG5vZGVzIHZpYSB0
aGUgRE9NLCBXZWJLaXQgZG9lc24ndCBjcmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKLQotc2hvdWxk
VGhyb3coImRvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgnZ3QnKSIpOwotdmFyIGVudGl0
eVJlZmVyZW5jZSA9IHhtbERvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci1zaG91bGRC
ZSgiZW50aXR5UmVmZXJlbmNlLm5vZGVOYW1lIiwgIidndCciKTsKLXNob3VsZEJlKCJlbnRpdHlS
ZWZlcmVuY2UubG9jYWxOYW1lIiwgIm51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uu
bmFtZXNwYWNlVVJJIiwgIm51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UucHJlZml4
IiwgIm51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwi
KTsKLQogLy8gTm90IHBvc3NpYmxlIHRvIGNyZWF0ZSBOb3RhdGlvbiBub2RlcyB2aWEgdGhlIERP
TSwgV2ViS2l0IGRvZXNuJ3QgY3JlYXRlIHRoZW0gZnJvbSBwYXJzaW5nCiAKIHZhciBwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24gPSBkb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3ht
bC1zdHlsZXNoZWV0JywgJ3R5cGU9XCJ0ZXh0L3hzbFwiIGhyZWY9XCJtaXNzaW5nLnhzbFwiJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDc3MTNmYzljZjQ4N2Y2OTc5ODE4NzQyMmUxMjcx
YWE4NjJiZTYyNTcuLjc0N2NkN2U2MjU5Y2RkY2EwYmUyNWNlZTRiNWNjMmEwMWY3MGNmMjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0zMyw4ICszMyw2IEBAIFBBU1M6IGNhbkdldCgnRG9j
dW1lbnRUeXBlJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0RvY3Vt
ZW50VHlwZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFbGVtZW50
Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0VsZW1lbnQnKSBzaG91
bGQgYmUgJ3RydWUnIGFuZCBpcy4KLVBBU1M6IGNhbkdldCgnRW50aXR5UmVmZXJlbmNlJykgc2hv
dWxkIGJlICd0cnVlJyBhbmQgaXMuCi1QQVNTOiBjYW5TZXQoJ0VudGl0eVJlZmVyZW5jZScpIHNo
b3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFdmFsRXJyb3InKSBzaG91bGQg
YmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhblNldCgnRXZhbEVycm9yJykgc2hvdWxkIGJlICd0
cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ0V2ZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQg
aXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9w
ZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0
aWVzLmh0bWwKaW5kZXggZmZmNWM0YWQwODE0YWI5YzFjYzA0NmFmZWJiMThjOWQ3OGJjNjc0MC4u
NDQzMTZhYzc4ZjEzODc4MDQ5MGU0ZTU2MTJhYjJhZDhmYjdlMDllYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbApAQCAtODQs
NyArODQsNiBAQCB2YXIgd2luZG93UmVhZFdyaXRlUHJvcGVydGllcyA9IFsKICAgICAiRG9jdW1l
bnRGcmFnbWVudCIsIAogICAgICJEb2N1bWVudFR5cGUiLCAKICAgICAiRWxlbWVudCIsIAotICAg
ICJFbnRpdHlSZWZlcmVuY2UiLCAKICAgICAiRXZhbEVycm9yIiwgCiAgICAgIkV2ZW50IiwgCiAg
ICAgIkhUTUxBbmNob3JFbGVtZW50IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy93aW5kb3ctcHJvcGVydGllcy5qcwppbmRleCBmOWM3MDky
OTI5Mjk4Yzc2Zjc5Y2U1ZjZhNmFlNTJmYzljZWMwZGY1Li45ZDQzMGVjZWIyZWFjN2E1NzE4YjM3
ZmQ2M2RlN2NlMjRhYmExYjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9yZXNvdXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMKQEAgLTU2LDcgKzU2LDYg
QEAgdmFyIHByb3BlcnR5SW5mbyA9IFsKICAgICBbIkRvY3VtZW50RnJhZ21lbnQiLCAib2JqZWN0
Il0sCiAgICAgWyJEb2N1bWVudFR5cGUiLCAib2JqZWN0Il0sCiAgICAgWyJFbGVtZW50IiwgIm9i
amVjdCJdLAotICAgIFsiRW50aXR5UmVmZXJlbmNlIiwgIm9iamVjdCJdLAogICAgIFsiRXZlbnQi
LCAib2JqZWN0Il0sCiAgICAgWyJFdmVudEV4Y2VwdGlvbiIsICJvYmplY3QiXSwKICAgICBbIkhU
TUxBbmNob3JFbGVtZW50IiwgIm9iamVjdCJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVk
LnR4dAppbmRleCA2N2QzMDJjZWVkNTIwNTYzZGZlMWRiZjdmNzkwMGQyMGZkODQ4OGIwLi4xMTIy
MTRhNzdiZjUzZjBjMTJmZjNhYmEzZTcwN2VmMTMwN2U2YWI3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRl
bmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5
cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mg
d2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0n
IGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVj
dG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29u
c3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmpl
Y3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5
UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0
cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMg
dHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKIFBBU1Mgd2luWydFdmVudEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0
aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50
eHQKaW5kZXggMzAyYTA5Yjg2YTViZjJlNzk5ZDI0YzhlNjllMTMwN2UxYTRkMjZkMS4uYWJmNjdh
ZDJlOWFmNjE4Y2FmODU3NzcwYmEwOTExNDRhMTcyNDRhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93
aW5nLWV4cGVjdGVkLnR4dApAQCAtOTYsOCArOTYsNiBAQCBQQVNTOiBDb21tZW50IHN1Y2Nlc3Nm
dWxseSBzaGFkb3dlZAogUEFTUzogQ0RBVEFTZWN0aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAog
UEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogTm90YXRpb24g
c3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1QQVNTOiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
Ci1QQVNTOiBFbnRpdHlSZWZlcmVuY2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRG9jdW1l
bnQgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRWxlbWVudCBzdWNjZXNzZnVsbHkg
c2hhZG93ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydHktc2hhZG93aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnR5LXNoYWRvd2luZy5odG1sCmluZGV4IDliNDZlYWNlMDEzNzBjNTUyNjJkMGVm
NjRkNjgxYWU1NmVhYmMwMmMuLmNiNzRmYjA0YTA3MjUyZjEwYjVkYzYzZjljNjA0YjE1MTkwYzVk
OWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dHktc2hhZG93aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0eS1zaGFkb3dpbmcuaHRtbApAQCAtMjE1LDEwICsyMTUsNiBAQAogICAgICAgICBs
b2coRG9jdW1lbnRUeXBlID09IDEgPyAiUEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBz
aGFkb3dlZCIgOiAiRkFJTDogRG9jdW1lbnRUeXBlIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAg
ICAgdmFyIE5vdGF0aW9uID0gMTsKICAgICAgICAgbG9nKE5vdGF0aW9uID09IDEgPyAiUEFTUzog
Tm90YXRpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBOb3RhdGlvbiB3YXMgbm90
IHNoYWRvd2VkIik7Ci0gICAgICAgIHZhciBFbnRpdHkgPSAxOwotICAgICAgICBsb2coRW50aXR5
ID09IDEgPyAiUEFTUzogRW50aXR5IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRW50
aXR5IHdhcyBub3Qgc2hhZG93ZWQiKTsKLSAgICAgICAgdmFyIEVudGl0eVJlZmVyZW5jZSA9IDE7
Ci0gICAgICAgIGxvZyhFbnRpdHlSZWZlcmVuY2UgPT0gMSA/ICJQQVNTOiBFbnRpdHlSZWZlcmVu
Y2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBFbnRpdHlSZWZlcmVuY2Ugd2FzIG5v
dCBzaGFkb3dlZCIpOwogICAgICAgICB2YXIgUHJvY2Vzc2luZ0luc3RydWN0aW9uID0gMTsKICAg
ICAgICAgbG9nKFByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9PSAxID8gIlBBU1M6IFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiB3YXMgbm90IHNoYWRvd2VkIik7CiAgICAgICAgIHZhciBIVE1MRG9jdW1lbnQgPSAx
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVk
LnR4dAppbmRleCA0YTE4YWRmN2JhZjY2OWM3NjFkNTE5N2IxMzRkYTBiZmVlODcyZTg2Li4zN2Mz
NTQxOTM4ZjExMDdkNjZjYzkzMTUwYzFiMTQzNjVmNWVhOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDYg
QEAgUEFTUyBUcnlBbGxvY2F0ZSgnQ2hhcmFjdGVyRGF0YScpIGlzICdleGNlcHRpb24nCiBQQVNT
IFRyeUFsbG9jYXRlKCdDREFUQVNlY3Rpb24nKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxv
Y2F0ZSgnRG9jdW1lbnRUeXBlJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0Vs
ZW1lbnQnKSBpcyAnZXhjZXB0aW9uJwotUEFTUyBUcnlBbGxvY2F0ZSgnRW50aXR5UmVmZXJlbmNl
JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0V2ZW50VGFyZ2V0JykgaXMgJ2V4
Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0hUTUxEb2N1bWVudCcpIGlzICdleGNlcHRpb24n
CiBQQVNTIFRyeUFsbG9jYXRlKCdOb2RlJykgaXMgJ2V4Y2VwdGlvbicKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbAppbmRleCBmMjQ5OWRjMDQ2NTM3NzM3NmZhODg2
YjJjYmIzYmQwYTlkODZlNDIxLi43OTUzYjYxYTI1ZDIxMDczN2JiY2Y2YTQwODE2ZTFhZmM1MGNk
YmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCkBAIC0x
OCw3ICsxOCw2IEBAIHZhciBvYmplY3RzX2V4Y2VwdGlvbiA9IFsKICAgICAnQ0RBVEFTZWN0aW9u
JywKICAgICAnRG9jdW1lbnRUeXBlJywKICAgICAnRWxlbWVudCcsCi0gICAgJ0VudGl0eVJlZmVy
ZW5jZScsCiAgICAgJ0V2ZW50VGFyZ2V0JywKICAgICAnSFRNTERvY3VtZW50JywKICAgICAnTm9k
ZScsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVk
LnR4dAppbmRleCA3ODhjYWJlNWQwM2I1MWZmYmM0MGZmMzYzY2FkNmNhMDZhYjg1ZDQ5Li42OTJi
YTcwNWZlZDgzYjI5NWEyNzA4ZDVlNzM2MDZiMGU2YTAxYTAyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQKQEAgLTQ3LDkgKzQ3LDYg
QEAgUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKS5j
b25zdHJ1Y3RvcikgaXMgJ0NEQVRBU2VjdGkKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpKSBpcyAnRWxlbWVudCcKIFBBU1MganNX
cmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLl9f
cHJvdG9fXykgaXMgJ0VsZW1lbnRQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERv
Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKS5jb25zdHJ1Y3RvcikgaXMgJ0Vs
ZW1lbnRDb25zdHJ1Y3RvcicKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCkpIGlzICdFbnRpdHlSZWZlcmVuY2UnCi1QQVNTIGpzV3JhcHBlckNs
YXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpLl9fcHJvdG9fXykgaXMgJ0Vu
dGl0eVJlZmVyZW5jZVByb3RvdHlwZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCkuY29uc3RydWN0b3IpIGlzICdFbnRpdHlSZWZlcmVuY2VD
b25zdHJ1Y3RvcicKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vz
c2luZ0luc3RydWN0aW9uKCkpIGlzICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nCiBQQVNTIGpzV3Jh
cHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLl9fcHJv
dG9fXykgaXMgJ1Byb2Nlc3NpbmdJbnN0cnVjdGlvblByb3RvdHlwZScKIFBBU1MganNXcmFwcGVy
Q2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuY29uc3RydWN0
b3IpIGlzICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Db25zdHJ1Y3RvcicKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKaW5kZXggOGJlOGZlM2JmMGMyM2MwMzRhMDc3ODIz
NTUwZDY3M2RmZTEwZWRjNy4uZmY4MWQ4ZjkwNTA0NDBkYzFlMzFkMzA4MzM1NWM2NjMxMjljOTYz
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKQEAgLTkwLDcg
KzkwLDYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9j
dW1lbnQiKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJD
REFUQVNlY3Rpb24iKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gn
LCAneCcsICd4JykiLCAiRWxlbWVudCIpOwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgpIiwgIkVudGl0eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3Vt
ZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlv
biIpOwogCiAgICAgZGVidWcoJycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50
eHQKaW5kZXggNjNlMjQyYTJmYmUzMmI5ZDZiODNkNThjZWFkNTY0OWI0OTY3NDFiYi4uZDU5M2E1
ZWFiYThhOGUwOGUwMWMwOWMyMjQzMThkZTkwODYwY2Q4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXQtZXhwZWN0ZWQudHh0CkBAIC0xODcsNyArMTg3LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnIKIENPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9j
b2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
IGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3Qg
Y2hlY2tzIGNyb3NzLWZyYW1lIGFjY2VzcyBzZWN1cml0eSAocmRhcjovL3Byb2JsZW0vNTI1MTMw
OSkuCiAKIApAQCAtMjM1LDcgKzIzNCw2IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkRv
Y3VtZW50RnJhZ21lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQo
J3RhcmdldFdpbmRvdy5Eb2N1bWVudFR5cGUnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQ
QVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5k
IGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRW50aXR5Jykgc2hvdWxkIGJlICdmYWxz
ZScgYW5kIGlzLgotUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRW50aXR5UmVmZXJlbmNlJykg
c2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRXZh
bEVycm9yJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRX
aW5kb3cuRXZlbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3Rh
cmdldFdpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWdldC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtZ2V0Lmh0bWwKaW5kZXggMzgwMGEwYjVlODEyNGI5NDVkODEwMzkwYzNlOWI1
ZjkwZTU3ODM4ZC4uY2NlNWY3YTNmMjM0MWNhYjdmZjA5Y2JlNzViM2IyZTY5ZGVhNmNmOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nl
c3MtZ2V0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtZ2V0Lmh0bWwKQEAgLTIwLDcgKzIwLDYgQEAKICAgICAgICAgICAgICJEb2N1
bWVudFR5cGUiLCAKICAgICAgICAgICAgICJFbGVtZW50IiwgCiAgICAgICAgICAgICAiRW50aXR5
IiwgCi0gICAgICAgICAgICAiRW50aXR5UmVmZXJlbmNlIiwgCiAgICAgICAgICAgICAiRXZhbEVy
cm9yIiwgCiAgICAgICAgICAgICAiRXZlbnQiLCAKICAgICAgICAgICAgICJIVE1MQW5jaG9yRWxl
bWVudCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blBy
b3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQKaW5kZXggZTQ1ODVhYmQ1MTYwNWMxZTJkOWU4
YjlmMmNkODhhYmNkNWNhZDJlMC4uMWVhNWJkYzZkOTQ5NzQ2ZTFlOWMyNTM1NjY0NjVjNDBiMzli
ODVjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CkBAIC03OCw3ICs3OCw2IEBAIFBBU1M6IGNh
bkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRG9jdW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNl
JyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0RvY3VtZW50
RnJhZ21lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlw
dG9yKHRhcmdldFdpbmRvdywgJ0RvY3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBp
cy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRWxlbWVudCcpIHNob3Vs
ZCBiZSAnZmFsc2UnIGFuZCBpcy4KLVBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93
LCAnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2Fu
R2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ2ZhbHNl
JyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0V2ZW50Jykg
c2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRX
aW5kb3csICdIVE1MQW5jaG9yRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0
bWwKaW5kZXggZGVhMDE3ZDY3OGExNWZkZDEzYzc3YTkyYWU1MTVjNzA4ZTdiZDNhYy4uMzA2NmIz
YTJhZmNiNWQ1ZDIzOTFmY2Y0OTlkMWUzNDk0NjUxNTQxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKQEAgLTE5LDcgKzE5
LDYgQEAKICAgICAgICAgICAgICJEb2N1bWVudEZyYWdtZW50IiwgCiAgICAgICAgICAgICAiRG9j
dW1lbnRUeXBlIiwgCiAgICAgICAgICAgICAiRWxlbWVudCIsIAotICAgICAgICAgICAgIkVudGl0
eVJlZmVyZW5jZSIsIAogICAgICAgICAgICAgIkV2YWxFcnJvciIsIAogICAgICAgICAgICAgIkV2
ZW50IiwgCiAgICAgICAgICAgICAiSFRNTEFuY2hvckVsZW1lbnQiLCAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1wdXQtZXhwZWN0ZWQudHh0CmluZGV4IDQ3ZmQ1NDM5ZDM3ZDc2ZDEwNjU0OWE3MTliYjVh
YzkyMjkyM2NiZWMuLjg1YjBhYmExYjE1YjQ2ZWFlYmEwNjBmYmQ1NWUyOTI5ZjQxMjUyZDYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLXB1dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxNTQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1MjogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCiBBTEVSVDogUEFTUzogd2luZG93LkF0dHIgc2hvdWxkIGJlICdb
b2JqZWN0IEF0dHJDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQ0RB
VEFTZWN0aW9uIHNob3VsZCBiZSAnW29iamVjdCBDREFUQVNlY3Rpb25Db25zdHJ1Y3Rvcl0nIGFu
ZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQ2hhcmFjdGVyRGF0YSBzaG91bGQgYmUgJ1tvYmpl
Y3QgQ2hhcmFjdGVyRGF0YUNvbnN0cnVjdG9yXScgYW5kIGlzLgpAQCAtMTQsOCArMTQsNiBAQCBB
TEVSVDogUEFTUzogd2luZG93LkRPTUV4Y2VwdGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgRE9NRXhj
ZXB0aW9uQ29uc3RydWN0b3JdJyBhbgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5ET01JbXBsZW1lbnRh
dGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgRE9NSW1wbGVtZW50YXRpb25Db25zdHJ1Y3Rvcl0nIGFu
ZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRE9NUGFyc2VyIHNob3VsZCBiZSAnW29iamVjdCBE
T01QYXJzZXJDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRWxlbWVu
dCBzaG91bGQgYmUgJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgYW5kIGlzLgotQUxFUlQ6
IFBBU1M6IHdpbmRvdy5FbnRpdHkgc2hvdWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KLUFMRVJU
OiBQQVNTOiB3aW5kb3cuRW50aXR5UmVmZXJlbmNlIHNob3VsZCBiZSAnW29iamVjdCBFbnRpdHlS
ZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRXZhbEVy
cm9yIHNob3VsZCBiZSAnZnVuY3Rpb24gRXZhbEVycm9yKCkgeyAgICBbbmF0aXZlIGNvZGVdfScg
YW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FdmVudCBzaG91bGQgYmUgJ1tvYmplY3QgRXZl
bnRDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuSFRNTEFuY2hvckVs
ZW1lbnQgc2hvdWxkIGJlICdbb2JqZWN0IEhUTUxBbmNob3JFbGVtZW50Q29uc3RydWN0b3JdJyBh
bmQgaXMuCkBAIC0yNzQsMTUgKzI3MiwxNSBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIwOiBC
bG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEyMTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3Qg
bWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQg
cG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMjM6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyNDog
QmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20g
YWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFBy
b3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTMzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAxMzU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM0OiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzY6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90
b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDEzNzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTM4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMzk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0
cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0MDogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlu
cywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQxOiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9j
b2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNDI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE0MzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNDU6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0NjogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNz
aW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29s
cywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0zMjEsNyArMzE5LDcgQEAgQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE3ODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNzk6IEJsb2NrZWQg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2lu
ZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMs
IGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4
MDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTgxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxODI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NDogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg1OiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODY6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE4NzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0z
MzcsNyArMzM1LDcgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5NjogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTog
bGluZSAxOTc6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE5ODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0
Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk5OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMDA6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMjogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjAzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUg
TUVTU0FHRTogbGluZSAyMDQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwNTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCkBAIC0zNzAsNyArMzY4LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIz
MTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYK
IENPTlNPTEUgTUVTU0FHRTogbGluZSAyMzI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzMzogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjM0OiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Np
bmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xz
LCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAy
MzU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogVGhpcyB0ZXN0IGNo
ZWNrcyBjcm9zcy1mcmFtZSBhY2Nlc3Mgc2VjdXJpdHkgb2Ygd2luZG93IGF0dHJpYnV0ZSBzZXR0
ZXJzIChyZGFyOi8vcHJvYmxlbS81MzI2NzkxKS4KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCmlu
ZGV4IGFjMDI0Zjg1NWFhODY2ZTY3MTdiOTdmZmIxYjc0OTU2YjNjNWQ3M2MuLmEyYjZiODcwYTE4
YzczOTI1NDhjMWVhOWQ4NTkyMjc4MjljYjZlMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCkBA
IC01MCw3ICs1MCw2IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVy
dHkodGFyZ2V0V2luZG93LCAiRE9NSW1wbGVtZW50YXRpb24iKTsKICAgICBzZXRGb3JiaWRkZW5Q
cm9wZXJ0eSh0YXJnZXRXaW5kb3csICJET01QYXJzZXIiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9w
ZXJ0eSh0YXJnZXRXaW5kb3csICJFbGVtZW50Iik7Ci0gICAgc2V0Rm9yYmlkZGVuUHJvcGVydHko
dGFyZ2V0V2luZG93LCAiRW50aXR5UmVmZXJlbmNlIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVy
dHkodGFyZ2V0V2luZG93LCAiRXZhbEVycm9yIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHko
dGFyZ2V0V2luZG93LCAiRXZlbnQiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRX
aW5kb3csICJIVE1MQW5jaG9yRWxlbWVudCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVz
dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mt
ZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1sCmluZGV4IDM2ZjgyNmJkOTA1ZjA1Nzc4MGI4
YjYzODY5NmY3OTM3ZTVjNGM4OGYuLmI2N2RmYzM5ZmIwMjNiMGM5NzdlZWM4M2M5NjY2MWI4YzE5
OGUwZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3Vy
Y2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1
dC10ZXN0Lmh0bWwKQEAgLTU4LDggKzU4LDYgQEAKICAgICAgICAgdmFyIERPTUltcGxlbWVudGF0
aW9uT2xkID0gd2luZG93LkRPTUltcGxlbWVudGF0aW9uOwogICAgICAgICB2YXIgRE9NUGFyc2Vy
T2xkID0gd2luZG93LkRPTVBhcnNlcjsKICAgICAgICAgdmFyIEVsZW1lbnRPbGQgPSB3aW5kb3cu
RWxlbWVudDsKLSAgICAgICAgdmFyIEVudGl0eU9sZCA9IHdpbmRvdy5FbnRpdHk7Ci0gICAgICAg
IHZhciBFbnRpdHlSZWZlcmVuY2VPbGQgPSB3aW5kb3cuRW50aXR5UmVmZXJlbmNlOwogICAgICAg
ICB2YXIgRXZhbEVycm9yT2xkID0gd2luZG93LkV2YWxFcnJvcjsKICAgICAgICAgdmFyIEV2ZW50
T2xkID0gd2luZG93LkV2ZW50OwogICAgICAgICB2YXIgSFRNTEFuY2hvckVsZW1lbnRPbGQgPSB3
aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQ7CkBAIC0yNjEsOCArMjU5LDYgQEAKICAgICAgICAgICAg
IHNob3VsZEJlKCJ3aW5kb3cuRE9NSW1wbGVtZW50YXRpb24iLCAiRE9NSW1wbGVtZW50YXRpb25P
bGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRE9NUGFyc2VyIiwgIkRPTVBhcnNl
ck9sZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbGVtZW50IiwgIkVsZW1lbnRP
bGQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRW50aXR5IiwgIkVudGl0eU9sZCIp
OwotICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbnRpdHlSZWZlcmVuY2UiLCAiRW50aXR5
UmVmZXJlbmNlT2xkIik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkV2YWxFcnJvciIs
ICJFdmFsRXJyb3JPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZlbnQiLCAi
RXZlbnRPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuSFRNTEFuY2hvckVsZW1l
bnQiLCAiSFRNTEFuY2hvckVsZW1lbnRPbGQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9y
aWNhbC1leHBlY3RlZC50eHQKaW5kZXggOWJlYTJhM2Q2NjY2ZDBkOTM2YzEwY2ZiMTE2OTFhMTk2
YjRhZGI4My4uOWJhYzg3NmI0MDlhNDc4ZGRlZmViYjA5NWY2NjQwZDQ0MmRjMDNiNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlz
dG9yaWNhbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKQEAgLTksNyArOSw3IEBA
IFBBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01Mb2NhdG9y
CiBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NT2JqZWN0
IAogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTVVzZXJE
YXRhIAogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0
eSAKLUZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlS
ZWZlcmVuY2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9y
XSIKK1BBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlS
ZWZlcmVuY2UgCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDog
RXZlbnRFeGNlcHRpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3Ry
dWN0b3JdIgogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5h
bWVMaXN0IAogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5v
dGF0aW9uIApAQCAtMTksOSArMTksNyBAQCBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11
c3QgYmUgcmVtb3ZlZDogUmFuZ2VFeGNlcHRpb24KIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVy
ZXMgbXVzdCBiZSByZW1vdmVkOiBjcmVhdGVDREFUQVNlY3Rpb24gYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gY3JlYXRlQ0RBVEFTZWN0aW9uKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iCi1G
QUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogY3JlYXRlRW50aXR5
UmVmZXJlbmNlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBi
dXQgZ290IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIGNyZWF0ZUVudGl0eVJlZmVyZW5j
ZSgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IgorUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJl
cyBtdXN0IGJlIHJlbW92ZWQ6IGNyZWF0ZUVudGl0eVJlZmVyZW5jZSAKIEZBSUwgSGlzdG9yaWNh
bCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxFbmNvZGluZyBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBudWxsCiBG
QUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogeG1sU3RhbmRhbG9u
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAo
Ym9vbGVhbikgZmFsc2UKIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1v
dmVkOiB4bWxWZXJzaW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVm
aW5lZCBidXQgZ290IChvYmplY3QpIG51bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5k
ZXggMmQ4ZGM4ZTE5ODU5NzQ1OGM5MzE0ZGVkYmVlMjdjZjM2MWQ2ZTM4ZC4uNzk4OTU4MmFiM2Vi
OGFjMDUwYTNkOGE3NWRhZWM0MjY4YmRlZDdmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQKQEAgLTMxMywxMSArMzEzLDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlz
IHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRp
dHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9w
ZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlS
ZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRy
dWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2
ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2
ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYmFhYjQ5ODIwZjRkYTlmMzM5
MzBiMmI3OTk0MmU5MzMxMDVlOGY3MC4uNDU3ZTk5MDE0ZDQzODkzMmNhNDYzMjc4NGM5YjZjYTU3
ODlkMmUyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dApAQCAtMzEzLDExICszMTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFi
bGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093
blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vu
dGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUg
aXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vy
cm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vy
cm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCBlZGI3NTUw
NzYyOWM3YzBkYzYyMDdiZjA0OTQ2MGE0ZDU3ODk0YTgyLi44MmIwMjRhODY2YTQwZDMyOTFjNjVj
NzNhZmNmOWJjMjQzYTk3NDVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3Vw
LXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CkBAIC0xMTQsOCArMTE0LDYgQEAgUEFTUyB3aW5bJ0Rv
Y3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1
ZQogUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0
cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50
Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVs
ZW1lbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9
PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2lu
WydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rv
cl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0
b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVj
dG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50RXhjZXB0aW9uJ10gPT0gJ1tvYmplY3QgRXZl
bnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0nIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBhMGM2ZmY0Zjg3OWM1OTljNjAwN2U2
N2U2OTViMjFhNTYyZTI2OTlmLi5lNjgxYTQ2YTRmOGU2ZWQ1ZTI0Yjc3YTE3OTMwYWM1MTVlOGU2
NGQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0CkBAIC0zMTgsMTEgKzMxOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blBy
b3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBp
cyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50
aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0
cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JF
dmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JF
dmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlj
a3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5k
ZXggYzE1YjY2NWEwZmZhYjY3NmMwZmU4ZDk3NWY4MzhiNzdkODk4OWJjOC4uZTE4NDI5NWMwZWMx
M2M4MDNkM2JmNTk1MDQxNzhhY2Y1M2NhNmVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgs
MTEgKzMwOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQn
KSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNl
JykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcp
IGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJyku
ZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVl
IGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAwZmJjNGIwMjhk
OTJlNmFkZmE2NjM3NmU4ZWUyYmY2N2VjNGZjZjMuLjk0ZDc4MTI2MjkwZDBiM2YwMzdhNDk2NWZh
NWRmN2RhM2RjMjg3NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3Nl
bWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4LDYgQEAgUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1l
cmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRp
dHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2Un
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQn
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1l
eHBlY3RlZC50eHQKaW5kZXggOTNkYWRjMDMxZjYyZjM2NjNhODk2NjAzYTNkYWIxOGVlMjY0MzJh
NC4uMTYyZjQ4ZmM1NmI5ODc5YjNhOWIxMzZiOGI3MWIyZWY5YTg3YTJlZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXBy
ZWNlZGVuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0
LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVu
dFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAn
W29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVt
ZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5b
J0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNT
IHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3Ry
dWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3Qg
RW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9
PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10g
PT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudEV4
Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1j
bGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
ZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dAppbmRleCBjMmNmZmUxNGJkM2Uy
MGNhZTUzM2ZjOTBjZDdhNzVkZGVmNTRhYjE3Li43YzJiMTczMTE0NDVmM2M3ZDQzNzBlODRjMDc2
ODFmZDM5MmYyY2YyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9k
b20vd3JhcHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKQEAg
LTIxLDcgKzIxLDYgQEAgWE1MCiBQQVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQpIGlz
ICdET01Eb2N1bWVudCcKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVD
REFUQVNlY3Rpb24oKSkgaXMgJ0RPTUNEQVRBU2VjdGlvbicKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFz
cyh4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykpIGlzICdET01FbGVt
ZW50JwotUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgpKSBpcyAnRE9NRW50aXR5UmVmZXJlbmNlJwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHht
bERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpKSBpcyAnRE9NUHJvY2Vzc2lu
Z0luc3RydWN0aW9uJwogCiBFdmVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKaW5kZXggMGJiYjQ0
NWFjZjc1YTgwOTkyNGJiYzIyODk2ODIyODQ2YzNhM2MxYi4uZjM1OWQ5NDNkMDhkMGMwMDljY2I2
N2FiNzIyZTg2OGJkNjFiYWUzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKQEAgLTEwMyw3ICsx
MDMsNiBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB0ZXN0KCJ4bWxEb2N1bWVudCIsICJEb2N1
bWVudCIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpIiwgIkNE
QVRBU2VjdGlvbiIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcs
ICd4JywgJ3gnKSIsICJFbGVtZW50Iik7Ci0gICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCkiLCAiRW50aXR5UmVmZXJlbmNlIik7CiAgICAgdGVzdCgieG1sRG9jdW1l
bnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkiLCAiUHJvY2Vzc2luZ0luc3RydWN0aW9u
Iik7CiAKICAgICBkZWJ1ZygnJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKaW5kZXggMDQ0ZjE0ZjBlNTI5NmU2NzVkOGI0M2M4YjQzZDgwMmQy
Njk3NzExOC4uYzFhNDIyZjBhMTU1NzcxOGMxYTdlZDlmMTA0Zjg4Y2Q5NTBhNTYxNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4
LDExICszMDgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5j
ZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQn
KSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScp
LmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1
ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwODNhMDcxZjZjZTZlYjVlZDIxY2QwNDYwMWEz
YWJlNzYxOTMxZmJmLi42ZWJhYWFmNmNjY2EwMTBhOTJmZjcwN2YxOTI0MWRjODU1N2NlZjhhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBA
IC0yMzgsMTEgKzIzOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHko
J2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJl
bmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
LnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
Lmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261553</attachid>
            <date>2015-09-18 18:24:02 -0700</date>
            <delta_ts>2015-09-19 17:00:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150918182348.patch</filename>
            <type>text/plain</type>
            <size>451979</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk5NmQ3ZGYyOTlhMjQ1
NGI2NmI5NDc0MDlkN2U3MDUxNTI2MzYwZi4uODEyM2MxNmE0YzhiNmVjZDA2NGQ2YTkzMjE0MmI1
M2VlN2NiODViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wOS0xOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKIDIwMTUtMDktMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlck1lZGlhQ2xpZW50TW9jayBsZWFrcyBldmVyeSB0
ZXN0IHJ1bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDZlNTQxMDYwMWU3MjIxZDQyM2Q3YmJjOTcxZGViYzRmM2M0
YjQxNWYuLmFiZmNjMDhlZjQ5MThhM2UxMWQ0YTRkNjc1MDdiZjMzNDk0MDc3MGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wOS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5IEVudGl0eVJlZmVyZW5j
ZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEcm9wIGhhbmRsaW5nIEVudGl0eVJlZmVyZW5jZSBOb2Rlcy4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V0tET01Ob2RlQ2xhc3MpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6aXNBc3Np
c3RhYmxlRWxlbWVudCk6CisKIDIwMTUtMDktMTggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIGRpZHtTdGFydCxGaW5pc2h9TG9hZEZvclF1aWNrTG9va0Rv
Y3VtZW50SW5NYWluRnJhbWUgaXMgbmV2ZXIgY2FsbGVkIG9uIFdLTmF2aWdhdGlvbkRlbGVnYXRl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDNjMTQ3ZWY3MzcxNGVkMzcwNWVjODZhMGU1OGJhM2Ni
MjFmMzYxOTcuLjRiMjU5NjAyYzI3OWQwNjgwYTkzM2ZkOTI2NzZkNzBjMDAzYTNlYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0zOTEsNyArMzkxLDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19J
RExfRklMRVMKICAgICBkb20vRG9jdW1lbnRGcmFnbWVudC5pZGwKICAgICBkb20vRG9jdW1lbnRU
eXBlLmlkbAogICAgIGRvbS9FbGVtZW50LmlkbAotICAgIGRvbS9FbnRpdHlSZWZlcmVuY2UuaWRs
CiAgICAgZG9tL0Vycm9yRXZlbnQuaWRsCiAgICAgZG9tL0V2ZW50LmlkbAogICAgIGRvbS9FdmVu
dEV4Y2VwdGlvbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCBkM2ViNTE3MzFl
MDYwMDJlMTM0MzhkYWNiZjU3ZWE0N2FkZGM0MzFjLi4zNDNhODAxMjVmNDJmOGQ5ODI4NzBjMzdi
NDUyNDE0YmY4OGY1Yzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0xNDksNyAr
MTQ5LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5jcHAiCiAjaW5jbHVkZSAiSlNET01XaW5k
b3dDU1MuY3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudC5jcHAiCi0jaW5jbHVkZSAiSlNFbnRpdHlS
ZWZlcmVuY2UuY3BwIgogI2luY2x1ZGUgIkpTRXJyb3JFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNF
dmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEV4Y2VwdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
R1RLLmNtYWtlCmluZGV4IGI5MjQxZGEzOTVkODIwZTE3YmMwZjE1NGRjNTc2OWQ2NWNmYTMxMmEu
LjY5NDNiNmQ5ZTE2Yjg2ZDFkNDlmMzdmOGE2ZmZhMmVkZDgzNWVjODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtR1RLLmNtYWtlCkBAIC01ODMsNyArNTgzLDYgQEAgbGlzdChBUFBFTkQgR09iamVjdERPTUJp
bmRpbmdzU3RhYmxlX0lETF9GSUxFUwogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50LmlkbAogICAg
IGRvbS9Eb2N1bWVudFR5cGUuaWRsCiAgICAgZG9tL0VsZW1lbnQuaWRsCi0gICAgZG9tL0VudGl0
eVJlZmVyZW5jZS5pZGwKICAgICBkb20vRXZlbnQuaWRsCiAgICAgZG9tL0tleWJvYXJkRXZlbnQu
aWRsCiAgICAgZG9tL01vdXNlRXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAwOGM0NDk2NjhhYTI4ZDYwZTU1M2Y5NWUyNjIy
ZmYwMjA1MWY2YjUwLi4wNzdkNzQ2MTI2NmY4OWM3ZDY0MTJiOTcxMDFhZDNhYTcyYmY0MzY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAg
LTE4MzIsMjAgKzE4MzIsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRXJyb3JFdmVudC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgpAQCAtMTk4NTksNyArMTk4NDUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRE9NVVJMLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVy
ZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01XaW5kb3cuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3Jt
QXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuaCIg
Lz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vu
dGl0eVJlZmVyZW5jZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJl
KVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0V2ZW50RXhjZXB0aW9uLmgiIC8+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKaW5kZXggOTc4N2JjODA1YjNiMTkxYzA0OTE5MzJjZTQ3ZjY1N2RkOTAwOWIzNy4u
OGJlZTJhZjkyMTg3YmI2NjQwYjc0MzAzNWFiMDFjYWU3OGUyNGRlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpA
QCAtNTI1Nyw5ICs1MjU3LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJj
ZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEZp
bHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAi
PgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpAQCAtMTI2NDYsOSArMTI2NDMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTRWxlbWVudC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNv
dXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIj4KLSAgICAgIDxG
aWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJj
aGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vycm9yRXZlbnQuaCI+
CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNzg0YjAzMjIzYTYyODJjNDMxZjQxNDUyYzk1ODM0OTdlZjJhOWEzZi4uNTZiNjk5OWJk
ZGRiODBjODMwNzE1MGY3NDViMTJhMTEyNTFjYmNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzU4Nyw4ICszNTg3LDYgQEAK
IAkJOTNGOUI2NTgwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlC
NjU1MEJBMEYzNUUwMDg1NDA2NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggKi87
IH07CiAJCTkzRjlCNkUwMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2REUwQkEwRkI3MjAw
ODU0MDY0IC8qIEpTQ29tbWVudC5jcHAgKi87IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2
NCAvKiBKU0NvbW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKLQkJ
OTNGOUI3NzQwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzcyMEJBNUZEREMw
MDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAgKi87IH07Ci0JCTkzRjlCNzc1MEJBNUZE
REQwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50
aXR5UmVmZXJlbmNlLmggKi87IH07CiAJCTkzRjlCN0EwMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NE
QVRBU2VjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovOyB9
OwogCQk5M0Y5QjdBMTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzlGMEJBNjAzMjYw
MDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5oICovOyB9OwogCQk5M0ZEQUZDQTBCMTEzMDc0MDBF
Mjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5z
ZXJ0QWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTEwOTU5LDggKzEwOTU3LDYgQEAKIAkJOTNGOUI2NTUwQkEwRjM1RTAwODU0MDY0IC8q
IERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NSFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0Y5QjZERTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29tbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0Nv
bW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21tZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBK
U0VudGl0eVJlZmVyZW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0VudGl0eVJlZmVyZW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkz
RjlCNzczMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGl0eVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDREFUQVNlY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RjBCQTYwMzI2MDA4
NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNDREFUQVNlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREFG
QzkwQjExMzA3NDAwRTI3NDZGIC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMDA0Nyw4ICsyMDA0Myw2IEBACiAJCQkJQkM2NDY0OTYxMUQ4MjM0
OTAwNjQ1NUIwIC8qIEpTRE9NU3RyaW5nTWFwLmggKi8sCiAJCQkJNjVERjMxRTUwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTRWxlbWVudC5jcHAgKi8sCiAJCQkJNjVERjMxRTYwOUQxQ0M2MDAwMEJFMzI1
IC8qIEpTRWxlbWVudC5oICovLAotCQkJCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0Vu
dGl0eVJlZmVyZW5jZS5jcHAgKi8sCi0JCQkJOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpT
RW50aXR5UmVmZXJlbmNlLmggKi8sCiAJCQkJRkU4MERBNUYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpT
R2VvbG9jYXRpb24uY3BwICovLAogCQkJCUZFODBEQTYwMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dl
b2xvY2F0aW9uLmggKi8sCiAJCQkJRkU4MERBNjEwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9z
aXRpb24uY3BwICovLApAQCAtMjU1NzksNyArMjU1NzMsNiBAQAogCQkJCUZENzg2OEJBMTM2Qjk5
OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTY1REYzMUZBMDlEMUNDNjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUFERUM3OEY4MThFRTUzMDgwMDEzMTVDMiAvKiBKU0VsZW1lbnRDdXN0b20uaCBpbiBI
ZWFkZXJzICovLAotCQkJCTkzRjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVy
ZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVDRjdBREQxMDE2MkIzODAwNDI3REU3IC8qIEpT
RXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEU4Mzc4RTA5Rjg1RDRG
MDBCODVBRTQgLyogSlNFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTE0MCw3ICsyOTEzMyw2
IEBACiAJCQkJRkQ3ODY4QjkxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29y
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGOTA5RDFDQzYwMDAwQkUzMjUgLyog
SlNFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMkVENTU1MEM2QjlCRDMwMDkyMEJG
RiAvKiBKU0VsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGOUI3NzQwQkE1
RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJFQ0Y3QURDMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTE0RTgzNzg0MDlGODVEMUMwMEI4NUFFNCAvKiBKU0V2ZW50LmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC9XZWJLaXRET01Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAKaW5kZXggNTljZjY4YzEyOTBhN2FiMDI2ZTMxZTMyNjFi
MDY4YTQzZDM2NjA5My4uYWNhMWY5OGFjOTk0ODkwYzcwMjg3NmIxYThjZWI3MGI5N2JmYWJlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2
YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVBy
aXZhdGUuY3BwCkBAIC00Nyw3ICs0Nyw2IEBACiAjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRUeXBlUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdERPTUVsZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRW50
aXR5UmVmZXJlbmNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUV2ZW50UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdERPTUV2ZW50VGFyZ2V0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldl
YktpdERPTUZpbGVQcml2YXRlLmgiCkBAIC05Myw4ICs5Miw2IEBAIFdlYktpdERPTU5vZGUqIHdy
YXAoTm9kZSogbm9kZSkKICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwVGV4dChk
b3duY2FzdDxUZXh0Pihub2RlKSkpOwogICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RF
OgogICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBDREFUQVNlY3Rpb24oc3RhdGlj
X2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpKTsKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZF
UkVOQ0VfTk9ERToKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRW50aXR5UmVm
ZXJlbmNlKHN0YXRpY19jYXN0PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKSk7CiAgICAgY2FzZSBO
b2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIHJldHVybiBXRUJLSVRf
RE9NX05PREUod3JhcFByb2Nlc3NpbmdJbnN0cnVjdGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24qPihub2RlKSkpOwogICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC93ZWJraXRkb20uc3ltYm9s
cyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0ZG9tLnN5bWJvbHMKaW5k
ZXggY2ZkYWZlYzkwM2Y4ZTA2OGJjYTQ1MWJiMDc3YjQ5ZjE2NjMzNWNmYy4uOTI1NDAxMjExMDVj
NDIzYTlkY2YyZGJiNmZjZWViOTMwMTI0MjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC93ZWJraXRkb20uc3ltYm9scworKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L3dlYmtpdGRvbS5zeW1ib2xzCkBAIC02OCw3ICs2OCw2IEBAIFdlYktp
dERPTUVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2VsZW1lbnQoV2ViS2l0RE9N
RG9jdW1lbnQqLCBjb25zdCBnCiBXZWJLaXRET01UZXh0KiB3ZWJraXRfZG9tX2RvY3VtZW50X2Ny
ZWF0ZV90ZXh0X25vZGUoV2ViS2l0RE9NRG9jdW1lbnQqLCBjb25zdCBnY2hhciopCiBXZWJLaXRE
T01FdmVudCogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZXZlbnQoV2ViS2l0RE9NRG9jdW1l
bnQqLCBjb25zdCBnY2hhciosIEdFcnJvcioqKQogV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9ub2RlX2l0ZXJhdG9yKFdlYktpdERPTURvY3VtZW50Kiwg
V2ViS2l0RE9NTm9kZSosIGd1bG9uZywgV2ViS2l0RE9NTm9kZUZpbHRlciosIGdib29sZWFuLCBH
RXJyb3IqKikKLVdlYktpdERPTUVudGl0eVJlZmVyZW5jZSogd2Via2l0X2RvbV9kb2N1bWVudF9j
cmVhdGVfZW50aXR5X3JlZmVyZW5jZShXZWJLaXRET01Eb2N1bWVudCosIGNvbnN0IGdjaGFyKiwg
R0Vycm9yKiopCiBXZWJLaXRET01SYW5nZSogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfcmFu
Z2UoV2ViS2l0RE9NRG9jdW1lbnQqKQogV2ViS2l0RE9NQXR0ciogd2Via2l0X2RvbV9kb2N1bWVu
dF9jcmVhdGVfYXR0cmlidXRlKFdlYktpdERPTURvY3VtZW50KiwgY29uc3QgZ2NoYXIqLCBHRXJy
b3IqKikKIFdlYktpdERPTUF0dHIqIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2F0dHJpYnV0
ZV9ucyhXZWJLaXRET01Eb2N1bWVudCosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqLCBHRXJy
b3IqKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4
IGFlYWMwODdkOWRjZmE1MTEwNzkzZDJmZjJjOWFmYzIzZTEyYjgxNTIuLmIyN2E5ODFjN2QwOWZh
NTVjYmUyOTY5YmI3M2IyMWQ0MTQ0ODg0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50
RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbnRpdHku
aCIKLSNpbmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCiAjaW5jbHVkZSAiSFRNTEF1ZGlvRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNF
bGVtZW50LmgiCkBAIC01MSw3ICs1MCw2IEBACiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkpTRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnRUeXBlLmgi
Ci0jaW5jbHVkZSAiSlNFbnRpdHlSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVu
ZXIuaCIKICNpbmNsdWRlICJKU0hUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmgiCkBAIC0yMDksOSArMjA3LDYgQEAgc3RhdGljIEFMV0FZU19JTkxJ
TkUgSlNWYWx1ZSBjcmVhdGVXcmFwcGVySW5saW5lKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmoKICNlbmRpZgogICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQ
RVIoZ2xvYmFsT2JqZWN0LCBEb2N1bWVudEZyYWdtZW50LCBub2RlKTsKICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAg
ICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBFbnRpdHlSZWZl
cmVuY2UsIG5vZGUpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgTm9kZSwg
bm9kZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T00ubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQppbmRleCA4ZTFmYmUx
ZmNkN2MzN2M0NmU5MGMzM2NjMDQ0MjM0YTFhZTQ4NzgyLi5lODM5NjVkYmMzNGYyMWMzY2UzMTE2
MGQ0NzVhNmQyODJjYTNmYmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQpAQCAt
MzExLDggKzMxMSw2IEBAIENsYXNzIGtpdENsYXNzKFdlYkNvcmU6Ok5vZGUqIGltcGwpCiAgICAg
ICAgICAgICByZXR1cm4gW0RPTVRleHQgY2xhc3NdOwogICAgICAgICBjYXNlIFdlYkNvcmU6Ok5v
ZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKICAgICAgICAgICAgIHJldHVybiBbRE9NQ0RBVEFTZWN0
aW9uIGNsYXNzXTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpFTlRJVFlfUkVGRVJFTkNF
X05PREU6Ci0gICAgICAgICAgICByZXR1cm4gW0RPTUVudGl0eVJlZmVyZW5jZSBjbGFzc107CiAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgog
ICAgICAgICAgICAgcmV0dXJuIFtET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gY2xhc3NdOwogICAg
ICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNPTU1FTlRfTk9ERToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4
IGM1MTYzMWMwZjgxNGNjOThjZTg3NjBjZDRmNmU2MGU5NmJlYTNhOTAuLjY5MGFiODFlMzNjZjk2
MmY5Y2U3MDZmZGNmYmMzODcyYWQ5NGZiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAtNzYsNyArNzYs
NiBAQCBteSAldHJhbnNmZXJGdWxsVHlwZUhhc2ggPSAoIkF1ZGlvVHJhY2siID0+IDEsICJBdWRp
b1RyYWNrTGlzdCIgPT4gMSwgIkJhclByb3AiCiBteSAkY2FuQmVOdWxsUGFyYW1zID0gewogICAg
ICd3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9hdHRyaWJ1dGVfbnMnID0+IFsnbmFtZXNwYWNl
VVJJJ10sCiAgICAgJ3dlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2VsZW1lbnRfbnMnID0+IFsn
bmFtZXNwYWNlVVJJJ10sCi0gICAgJ3dlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2VudGl0eV9y
ZWZlcmVuY2UnID0+IFsnbmFtZSddLAogICAgICd3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9u
b2RlX2l0ZXJhdG9yJyA9PiBbJ2ZpbHRlciddLAogICAgICd3ZWJraXRfZG9tX2RvY3VtZW50X2Ny
ZWF0ZV90cmVlX3dhbGtlcicgPT4gWydmaWx0ZXInXSwKICAgICAnd2Via2l0X2RvbV9kb2N1bWVu
dF9ldmFsdWF0ZScgPT4gWydpblJlc3VsdCcsICdyZXNvbHZlciddLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCmlu
ZGV4IGFjN2I2NmY5OTcwNWQ4OTllZWNlM2MyODk0Zjg5ZTFmODA5ZDE1ZjguLjk2ZDdlZWQzYjBm
ZjIxNTU5YWRjMzM1ZTIwYTRjNDU5ZGYyMWJkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAgLTE0OCwx
MyArMTQ4LDcgQEAgUmVmPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0
YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIC8vIERPTSBTZWN0aW9uIDEuMS4xCiBi
b29sIEF0dHI6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBURVhUX05PREU6Ci0gICAgICAgIGNhc2UgRU5U
SVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIHJldHVybiB0eXBl
ID09IFRFWFRfTk9ERTsKIH0KIAogdm9pZCBBdHRyOjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hp
bGRDaGFuZ2UmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9BdHRyLmgKaW5kZXggMTI0YzZkN2EyYWEyODY4MzBmY2JhMjk2Mjg4ODhi
NzIwMjI5OTI4Ni4uZjZmMzYyMDc3MTdhMzVjMmIyNDNmYWFhOTY1ZGMzYWI3MmYyNmJjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQXR0ci5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENT
U1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOwogCi0vLyBB
dHRyIGNhbiBoYXZlIFRleHQgYW5kIEVudGl0eVJlZmVyZW5jZSBjaGlsZHJlbgorLy8gQXR0ciBj
YW4gaGF2ZSBUZXh0IGNoaWxkcmVuCiAvLyB0aGVyZWZvcmUgaXQgaGFzIHRvIGJlIGEgZnVsbGJs
b3duIE5vZGUuIFRoZSBwbGFuCiAvLyBpcyB0byBkeW5hbWljYWxseSBhbGxvY2F0ZSBhIHRleHRj
aGlsZCBhbmQgc3RvcmUgdGhlCiAvLyByZXN1bHRpbmcgbm9kZXZhbHVlIGluIHRoZSBhdHRyaWJ1
dGUgdXBvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGM5NjM0YjBjZTEw
MDM0ZTkyYjVjNTE2ZTEzMmQwYzQzNDMxN2E1MGQuLjNmNGZlMGY4MDM3NGM4MzcwMDk5MGVkNGI0
NWE0YTlkMjE5NDliYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTE4
MCw3ICsxODAsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGls
ZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogewogICAgIC8vIFVzZSBjb21t
b24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUuCiAgICAgaWYgKChuZXdDaGlsZC5pc0VsZW1l
bnROb2RlKCkgfHwgbmV3Q2hpbGQuaXNUZXh0Tm9kZSgpKSAmJiBuZXdQYXJlbnQuaXNFbGVtZW50
Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOwog
ICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgICAg
IEFTU0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpOwogICAgICAg
ICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50
KSkKQEAgLTE5Myw4ICsxOTIsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tB
Y2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogICAgIGlmIChu
ZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFV
RVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAg
cmV0dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICBpZiAoY29udGFpbnNDb25z
aWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKICAgICAgICAgcmV0dXJu
IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIApAQCAtMjA5LDcgKzIwNiw2IEBAIHN0YXRpYyBpbmxp
bmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUmIG5ld1BhcmVu
dCwgTm9kZSYgbmV3CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFu
dGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlQoIW5ld1BhcmVudC5pc1JlYWRPbmx5Tm9k
ZSgpKTsKICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAg
QVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgaWYg
KG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7CkBAIC01MjEsMTIgKzUxNyw2IEBAIGJv
b2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogCiAgICAgZWMgPSAwOwogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSOiBSYWlzZWQgaWYgdGhpcyBub2RlIGlzIHJlYWRvbmx5LgotICAgIGlmIChpc1JlYWRPbmx5
Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2Vk
IGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZS4KICAgICBpZiAob2xkQ2hp
bGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjE3OTNjMjJmMDUzZmI3YjA2NTY4MTdjZmM3ZGFi
MzE4NGFlOGJkNC4uNmNmMGVhZTQwNjQwZDBmMTFkNjE0NDQ3OTEwNDE3NjU3NDhhZDJiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC05MDksMTcgKzkwOSwxMCBAQCBSZWZQdHI8UHJvY2Vz
c2luZ0luc3RydWN0aW9uPiBEb2N1bWVudDo6Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKGNv
bnN0IFN0cmluZwogICAgIHJldHVybiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNyZWF0ZSgqdGhp
cywgdGFyZ2V0LCBkYXRhKTsKIH0KIAotUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6
OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQorUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIWlzVmFs
aWROYW1lKG5hbWUpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9DSEFSQUNURVJfRVJSOwotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgaWYgKGlzSFRNTERvY3VtZW50KCkpIHsK
LSAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotICAgIHJldHVybiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0ZSgqdGhpcywgbmFtZSk7
CisgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAog
UmVmPFRleHQ+IERvY3VtZW50OjpjcmVhdGVFZGl0aW5nVGV4dE5vZGUoY29uc3QgU3RyaW5nJiB0
ZXh0KQpAQCAtOTQ0LDcgKzkzNyw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6aW1wb3J0Tm9k
ZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wgZGVlcCwgRXhjZXB0aW9uQ29kZSYKICAgICBjYXNl
IEVMRU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIENEQVRBX1NFQ1RJ
T05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFBST0NF
U1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBjYXNlIENPTU1FTlRfTk9ERToKICAgICBjYXNl
IERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC05NzQsMTEgKzk2Niw2IEBAIFJlZlB0cjxOb2Rl
PiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKHNvdXJj
ZS0+aXNSZWFkT25seU5vZGUoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCiAgICAgRXZlbnRRdWV1
ZVNjb3BlIHNjb3BlOwogCiAgICAgc3dpdGNoIChzb3VyY2UtPm5vZGVUeXBlKCkpIHsKQEAgLTE3
MTAsNTIgKzE2OTcsNTIgQEAgUmVmPFJhbmdlPiBEb2N1bWVudDo6Y3JlYXRlUmFuZ2UoKQogICAg
IHJldHVybiBSYW5nZTo6Y3JlYXRlKCp0aGlzKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4g
RG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdo
YXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlS
ZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3Vt
ZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgV1RG
Ojptb3ZlKGZpbHRlciksIGVjKTsKK30KKworUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6
OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cs
IFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
aWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIE5vZGVJdGVyYXRvcjo6Y3JlYXRlKHJvb3QsIHdoYXRU
b1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICBy
ZXR1cm4gTm9kZUl0ZXJhdG9yOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZp
bHRlcikpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0
ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVG
aWx0ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2RlSXRlcmF0b3I+
IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3
aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlTm9kZUl0
ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBmYWxzZSwgZWMpOwor
ICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwg
ZWMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJh
dG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYg
ZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5v
ZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVOb2RlSXRl
cmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4g
Y3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIDB4RkZGRkZGRkYsIG51bGxwdHIsIGVjKTsKIH0KIAot
UmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiBy
b290LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3Jl
YXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0
cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAg
cmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBmYWxz
ZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIFdU
Rjo6bW92ZShmaWx0ZXIpLCBlYyk7CiB9CiAKLVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6
Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJl
ZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBF
eGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJl
ZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2Rl
RmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7
CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
Ci0gICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1v
dmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7Ci19Ci0KLVJlZlB0cjxUcmVlV2Fs
a2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYg
ZWMpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgV1RG
Ojptb3ZlKGZpbHRlciksIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0
ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSk7CiB9CiAKIFJlZlB0cjxUcmVl
V2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVU
cmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIG51bGxwdHIsIGZhbHNlLCBlYyk7CisgICAgcmV0
dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZWMpOwogfQog
CiBSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9v
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9v
dCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlVHJl
ZVdhbGtlcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBlYyk7CiB9CiAKIHZvaWQgRG9jdW1l
bnQ6OnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKQpAQCAtMzM0OCw3ICszMzM1LDYgQEAgYm9v
bCBEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNh
c2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfRlJBR01FTlRfTk9ERToK
ICAgICBjYXNlIERPQ1VNRU5UX05PREU6Ci0gICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6
CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2FzZSBYUEFUSF9OQU1FU1BBQ0VfTk9ERToKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzM3Niw3ICszMzYyLDYgQEAgYm9vbCBEb2N1bWVudDo6
Y2FuQWNjZXB0Q2hpbGQoY29uc3QgTm9kZSYgbmV3Q2hpbGQsIGNvbnN0IE5vZGUqIHJlZkNoaWxk
LCBBY2NlcHQKICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElP
Tl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVO
Q0VfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9O
T0RFOgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc0Y2Vh
YTk2YmM5MmY0NzgxN2NlYmI1ZjNjZjkzOTBhMTlhNzdkNjkuLjJjYWE4YjAwY2IyNGQ5MjVkMTE5
ODgxNjk5ZDY4MDc4N2M5OTZhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01MzUsMTIgKzUz
NSwxMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8UmFuZ2U+IGNyZWF0ZVJh
bmdlKCk7CiAKLSAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9k
ZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwg
Ym9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRy
PE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUm
KTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRl
Tm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRy
PE5vZGVGaWx0ZXI+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9y
PiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0
ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFJlZlB0cjxUcmVlV2Fs
a2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhj
ZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5v
ZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYs
IGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRy
PFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3
aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJl
ZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBj
cmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsCmluZGV4IDgxYjEwYWU2MDk5NTJlZjQwNjU4NGQwNzc2NTY2NGU2NzAxMWQ1MTQu
LmJhOWVjMzM2MDAyNWZhMWIwNzIyZDNmY2VkZDZmOWM1MmYxYTRlNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmlkbApAQCAtMzksNyArMzksMTAgQEAKICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJh
bWV0ZXJzLCBOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gUHJvY2Vzc2luZ0luc3RydWN0aW9u
IGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IERPTVN0cmluZyB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRl
ZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBkYXRhKTsKICAgICBbTmV3T2JqZWN0LCBSYWlzZXNF
eGNlcHRpb25dIEF0dHIgY3JlYXRlQXR0cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9u
YWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIFtOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gRW50
aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9w
dGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKworI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZF
X0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gRW50aXR5
UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlv
bmFsIERPTVN0cmluZyBuYW1lKTsKKyNlbmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpF
Q1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICBbSW1wbGVtZW50ZWRBcz1nZXRF
bGVtZW50c0J5VGFnTmFtZUZvck9iakNdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKFtE
ZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHRhZ25hbWUpOwpAQCAtOTIsMTQg
Kzk1LDIzIEBACiAKICAgICAvLyBET00gTGV2ZWwgMiBUcmFudmVyc2FsIGFuZCBSYW5nZSAoRG9j
dW1lbnRUcmF2ZXJzYWwgaW50ZXJmYWNlKQogCi0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1l
dGVycywgUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2Rl
SXRlcmF0b3IoTm9kZSByb290LAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYm
IExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywg
UmFpc2VzRXhjZXB0aW9uXSBOb2RlSXRlcmF0b3IgY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9v
dCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZG
RiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyLAogICAgICAgICBvcHRpb25h
bCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1l
ZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBUcmVlV2Fsa2VyIGNyZWF0
ZVRyZWVXYWxrZXIoTm9kZSByb290LAorICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMs
IFJhaXNlc0V4Y2VwdGlvbl0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwK
ICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwK
ICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyLAogICAgICAgICBvcHRpb25hbCBi
b29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworI2Vsc2UKKyAgICBbUmFpc2VzRXhjZXB0
aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290
LAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cgPSAweEZGRkZGRkZG
LAorICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIpOworICAgIFtSYWlzZXNFeGNl
cHRpb24sIE5ld09iamVjdF0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwK
KyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwK
KyAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8gZmlsdGVyKTsKKyNlbmRpZgogCiAgICAgLy8g
RE9NIExldmVsIDIgQWJzdHJhY3QgVmlld3MgKERvY3VtZW50VmlldyBpbnRlcmZhY2UpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCBmOWIzOGEwYmQyOGU4ZTNj
NjA5MzRhZmYxYTYwMDU5MjcwOTAzZmVjLi5hNjcwMDJjNGJmOTg3NDRhMjk1M2Y0OWUyNmU2MWJh
MGNhZDM3MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC02
MCw3ICs2MCw2IEBAIGJvb2wgRG9jdW1lbnRGcmFnbWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2Rl
VHlwZSB0eXBlKSBjb25zdAogICAgICAgICBjYXNlIENPTU1FTlRfTk9ERToKICAgICAgICAgY2Fz
ZSBURVhUX05PREU6CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgICAgICBj
YXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCmluZGV4IDlmNDE2YTZkZDhhNDdjZTVhNTVmN2ViYTE0ODNkMDQ2OGQyZDY0NzUuLjI5ZGJm
YjU1NmJjM2FjMzkxMmUxMDc3Yzc2MTIzN2IzYTcyZTc1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKQEAgLTE3NjQsNyArMTc2NCw2IEBAIGJvb2wgRWxlbWVudDo6Y2hpbGRUeXBlQWxsb3dlZChO
b2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09NTUVOVF9OT0RFOgogICAgIGNhc2UgUFJP
Q0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgot
ICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbnRpdHlSZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5j
ZS5jcHAKaW5kZXggN2U5MWE0NjJkYTgyMDlkOTIyYzQ1ZGM4NGM0MWEwODU1YWQ2YmUxYS4uZTU4
MjRmMTA4YmI2ZjU0M2I1YTA3NjdhZmUxZmE4NGEyZDQ4MWRjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VudGl0eVJlZmVyZW5jZS5jcHAKQEAgLTI1LDMwICsyNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotaW5saW5lIEVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKQoraW5saW5lIEVudGl0eVJlZmVy
ZW5jZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJikK
ICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQpCi0gICAgLCBtX2VudGl0eU5hbWUoZW50aXR5
TmFtZSkKIHsKIH0KIAotUmVmPEVudGl0eVJlZmVyZW5jZT4gRW50aXR5UmVmZXJlbmNlOjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGVudGl0eU5hbWUpCi17Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRW50aXR5UmVmZXJlbmNlKGRvY3VtZW50LCBlbnRpdHlOYW1l
KSk7Ci19Ci0KLVN0cmluZyBFbnRpdHlSZWZlcmVuY2U6Om5vZGVOYW1lKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9lbnRpdHlOYW1lOwotfQotCi1Ob2RlOjpOb2RlVHlwZSBFbnRpdHlSZWZlcmVu
Y2U6Om5vZGVUeXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRU5USVRZX1JFRkVSRU5DRV9OT0RF
OwotfQotCi1SZWY8Tm9kZT4gRW50aXR5UmVmZXJlbmNlOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCi17Ci0gICAgcmV0dXJuIGNy
ZWF0ZSh0YXJnZXREb2N1bWVudCwgbV9lbnRpdHlOYW1lKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaAppbmRleCA4NmRmZWIzOTgyNWIzNDUwZTc1
MzU5MjUwNjg1MTEwYjNhZjBjYThmLi4xOGMyZWMxYWZjZTU3MGU4MGU4NjVhMDg0NWJhYmQ4ODY2
Zjk2MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCkBAIC0yNiwxOCArMjYs
OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVudGl0eVJlZmVyZW5jZSBmaW5h
bCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEVudGl0
eVJlZmVyZW5jZT4gY3JlYXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKTsK
LQorY2xhc3MgRW50aXR5UmVmZXJlbmNlIDogcHVibGljIENvbnRhaW5lck5vZGUgewogcHJpdmF0
ZToKICAgICBFbnRpdHlSZWZlcmVuY2UoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGVudGl0eU5h
bWUpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9u
KSBvdmVycmlkZTsKLQotICAgIFN0cmluZyBtX2VudGl0eU5hbWU7CiB9OwogCiB9IC8vbmFtZXNw
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCmluZGV4IDZkMDUzNWY5YmMx
ZGFhNzkxNzgzMWVmZGJlNmFiZDA3YWU5YjdkYmEuLjI3MzFkN2E2NjA5NjM1YmQ2YzE2ZTZkMmM2
NmU2MDdlYmI4YzRjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZl
cmVuY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCkBA
IC0xNyw4ICsxNywxMiBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAor
I2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9D
CisKIFsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAog
XSBpbnRlcmZhY2UgRW50aXR5UmVmZXJlbmNlIDogTm9kZSB7CiB9OwogCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAppbmRleCA0MzYyZDY1NmRjNDdmZDY0MzM1YjQ2ODYxNGJlNzM2NTg4MTMwMmJhLi5k
ZWYyNGNlNjcwOTU1NjY0YmNiYTEzNTA0NzE2ZmM0MTdjYWY2MzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
CkBAIC0xMDMsNyArMTAzLDYgQEAgdm9pZCBOb2RlOjpkdW1wU3RhdGlzdGljcygpCiAgICAgc2l6
ZV90IHRleHROb2RlcyA9IDA7CiAgICAgc2l6ZV90IGNkYXRhTm9kZXMgPSAwOwogICAgIHNpemVf
dCBjb21tZW50Tm9kZXMgPSAwOwotICAgIHNpemVfdCBlbnRpdHlSZWZlcmVuY2VOb2RlcyA9IDA7
CiAgICAgc2l6ZV90IGVudGl0eU5vZGVzID0gMDsKICAgICBzaXplX3QgcGlOb2RlcyA9IDA7CiAg
ICAgc2l6ZV90IGRvY3VtZW50Tm9kZXMgPSAwOwpAQCAtMTY4LDEwICsxNjcsNiBAQCB2b2lkIE5v
ZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICAgICAgICAgICAgICArK2NvbW1lbnROb2RlczsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgRU5U
SVRZX1JFRkVSRU5DRV9OT0RFOiB7Ci0gICAgICAgICAgICAgICAgKytlbnRpdHlSZWZlcmVuY2VO
b2RlczsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGNhc2UgRU5USVRZX05PREU6IHsKICAgICAgICAgICAgICAgICArK2VudGl0eU5vZGVzOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjExLDcgKzIwNiw2IEBAIHZvaWQgTm9kZTo6ZHVtcFN0
YXRpc3RpY3MoKQogICAgIHByaW50ZigiICBOdW1iZXIgb2YgVGV4dCBub2RlczogJXp1XG4iLCB0
ZXh0Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgQ0RBVEFTZWN0aW9uIG5vZGVzOiAl
enVcbiIsIGNkYXRhTm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgQ29tbWVudCBub2Rl
czogJXp1XG4iLCBjb21tZW50Tm9kZXMpOwotICAgIHByaW50ZigiICBOdW1iZXIgb2YgRW50aXR5
UmVmZXJlbmNlIG5vZGVzOiAlenVcbiIsIGVudGl0eVJlZmVyZW5jZU5vZGVzKTsKICAgICBwcmlu
dGYoIiAgTnVtYmVyIG9mIEVudGl0eSBub2RlczogJXp1XG4iLCBlbnRpdHlOb2Rlcyk7CiAgICAg
cHJpbnRmKCIgIE51bWJlciBvZiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbm9kZXM6ICV6dVxuIiwg
cGlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBEb2N1bWVudCBub2RlczogJXp1XG4i
LCBkb2N1bWVudE5vZGVzKTsKQEAgLTM4NCwxNCArMzc4LDggQEAgU3RyaW5nIE5vZGU6Om5vZGVW
YWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12b2lkIE5vZGU6OnNldE5v
ZGVWYWx1ZShjb25zdCBTdHJpbmcmIC8qbm9kZVZhbHVlKi8sIEV4Y2VwdGlvbkNvZGUmIGVjKQor
dm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiAvKm5vZGVWYWx1ZSovLCBFeGNl
cHRpb25Db2RlJikKIHsKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNl
ZCB3aGVuIHRoZSBub2RlIGlzIHJlYWRvbmx5Ci0gICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkpIHsK
LSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KICAgICAvLyBCeSBkZWZhdWx0LCBzZXR0aW5nIG5vZGVWYWx1ZSBoYXMgbm8g
ZWZmZWN0LgogfQogCkBAIC04OTAsMTEgKzg3OCw2IEBAIHZvaWQgTm9kZTo6Y2hlY2tTZXRQcmVm
aXgoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAg
ZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KICAgICAvLyBGSVhNRTogUmFpc2UgTkFNRVNQQUNFX0VSUiBpZiBwcmVmaXggaXMgbWFsZm9y
bWVkIHBlciB0aGUgTmFtZXNwYWNlcyBpbiBYTUwgc3BlY2lmaWNhdGlvbi4KIAogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgbm9kZU5hbWVzcGFjZVVSSSA9IG5hbWVzcGFjZVVSSSgpOwpAQCAtMTQy
Miw3ICsxNDA1LDYgQEAgc3RhdGljIHZvaWQgYXBwZW5kVGV4dENvbnRlbnQoY29uc3QgTm9kZSog
bm9kZSwgYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5lcywgYm9vbCYKICAgICAgICAgfQogICAgICAg
ICBGQUxMVEhST1VHSDsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2Ug
Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJB
R01FTlRfTk9ERToKICAgICAgICAgaXNOdWxsU3RyaW5nID0gZmFsc2U7CiAgICAgICAgIGZvciAo
Tm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKSB7CkBAIC0xNDU4LDcgKzE0NDAsNiBAQCB2b2lkIE5vZGU6OnNldFRleHRD
b250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIGNhc2UgRUxFTUVOVF9OT0RFOgogICAgICAgICBjYXNlIEFUVFJJ
QlVURV9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAg
Y2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOiB7CiAgICAgICAgICAgICBSZWY8Q29udGFpbmVy
Tm9kZT4gY29udGFpbmVyKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKSk7CiAgICAgICAg
ICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRhaW5lcik7CkBAIC0xNDc4
LDcgKzE0NTksNiBAQCB2b2lkIE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIEVsZW1lbnQqIE5vZGU6OmFuY2VzdG9yRWxlbWVudCgp
IGNvbnN0CiB7Ci0gICAgLy8gSW4gdGhlb3J5LCB0aGVyZSBjYW4gYmUgRW50aXR5UmVmZXJlbmNl
IG5vZGVzIGJldHdlZW4gZWxlbWVudHMsIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9y
dGVkLgogICAgIGZvciAoQ29udGFpbmVyTm9kZSogYW5jZXN0b3IgPSBwYXJlbnROb2RlKCk7IGFu
Y2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnROb2RlKCkpIHsKICAgICAgICAgaWYg
KGlzPEVsZW1lbnQ+KCphbmNlc3RvcikpCiAgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8RWxl
bWVudD4oYW5jZXN0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMDRlMzhkMjViNDNiNDBmYmQ1YjM2NGNm
NDMzZTc3YzNjMTA3MzVjNC4uYTJmYzQzODg5NDBlMjJjZjc1YmY1OTViNzQ4OWRkODM5MmQ1MDFk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCkBAIC0xMjUsNyArMTI1LDYgQEAgcHVibGljOgogICAgICAgICBBVFRS
SUJVVEVfTk9ERSA9IDIsCiAgICAgICAgIFRFWFRfTk9ERSA9IDMsCiAgICAgICAgIENEQVRBX1NF
Q1RJT05fTk9ERSA9IDQsCi0gICAgICAgIEVOVElUWV9SRUZFUkVOQ0VfTk9ERSA9IDUsCiAgICAg
ICAgIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSA9IDcsCiAgICAgICAgIENPTU1FTlRfTk9E
RSA9IDgsCiAgICAgICAgIERPQ1VNRU5UX05PREUgPSA5LApAQCAtMTM0LDYgKzEzMyw3IEBAIHB1
YmxpYzoKICAgICAgICAgWFBBVEhfTkFNRVNQQUNFX05PREUgPSAxMywKICAgICB9OwogICAgIGVu
dW0gRGVwcmVjYXRlZE5vZGVUeXBlIHsKKyAgICAgICAgRU5USVRZX1JFRkVSRU5DRV9OT0RFID0g
NSwKICAgICAgICAgRU5USVRZX05PREUgPSA2LAogICAgICAgICBOT1RBVElPTl9OT0RFID0gMTIs
CiAgICAgfTsKQEAgLTQxNyw3ICs0MTcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luU2hhZG93
VHJlZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNJblNoYWRvd1RyZWVGbGFnKTsgfQogICAg
IGJvb2wgaXNJblRyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoc3RhdGljX2Nhc3Q8
Tm9kZUZsYWdzPihJbkRvY3VtZW50RmxhZyB8IElzSW5TaGFkb3dUcmVlRmxhZykpOyB9CiAKLSAg
ICBib29sIGlzUmVhZE9ubHlOb2RlKCkgY29uc3QgeyByZXR1cm4gbm9kZVR5cGUoKSA9PSBFTlRJ
VFlfUkVGRVJFTkNFX05PREU7IH0KICAgICBib29sIGlzRG9jdW1lbnRUeXBlTm9kZSgpIGNvbnN0
IHsgcmV0dXJuIG5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RFOyB9CiAgICAgdmlydHVh
bCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdW5zaWduZWQgY291bnRDaGlsZE5vZGVzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
SXRlcmF0b3IuY3BwCmluZGV4IDQ4YTBhMTkyYTdiZWUwY2ZmMjA5ZDVlYTRkODljOWMzMWEwNGM3
MDkuLmRhOWQwMjNiMjVlOGY5ZjJiZjU3YWM4ODEwMzhkNzI1ZDVlMWM2NWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC03Niw4ICs3Niw4IEBAIGJvb2wgTm9kZUl0ZXJhdG9y
OjpOb2RlUG9pbnRlcjo6bW92ZVRvUHJldmlvdXMoTm9kZSogcm9vdCkKICAgICByZXR1cm4gbm9k
ZTsKIH0KIAotTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxOb2RlPiByb290
Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0
ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uo
cm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzKQorTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxOb2RlPiByb290
Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0
ZXIpCisgICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1v
dmUoZmlsdGVyKSkKICAgICAsIG1fcmVmZXJlbmNlTm9kZShyb290KCksIHRydWUpCiB7CiAgICAg
cm9vdCgpLT5kb2N1bWVudCgpLmF0dGFjaE5vZGVJdGVyYXRvcih0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlSXRlcmF0b3IuaAppbmRleCA5NzE5Mjc0YTNkYTFiOTc1NDA2YWE3MWNjNWU5ZWFlNWYzYzdk
MzM1Li40ZjE1MDdkZTAzYWMzMDNlNWYxODBiMzMxMTI2ODA3NGM2OTgwODlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVJdGVyYXRvci5oCkBAIC0zNyw5ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgIGNsYXNzIE5vZGVJdGVyYXRvciA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1Ymxp
YyBSZWZDb3VudGVkPE5vZGVJdGVyYXRvcj4sIHB1YmxpYyBOb2RlSXRlcmF0b3JCYXNlIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUl0ZXJhdG9yPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9k
ZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKKyAgICAgICAg
c3RhdGljIFJlZjxOb2RlSXRlcmF0b3I+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2Rl
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUl0ZXJhdG9y
KHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVm
ZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUl0ZXJhdG9y
KHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkpOwogICAgICAgICB9CiAg
ICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIApAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYpOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVm
ZXJlbmNlcyk7CisgICAgICAgIE5vZGVJdGVyYXRvcihQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25l
ZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKIAogICAgICAgICBzdHJ1
Y3QgTm9kZVBvaW50ZXIgewogICAgICAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlSXRlcmF0b3IuaWRsCmluZGV4IDEyMDI1ZGU2YjhiNDk0NzNlZmQ3Zjc4NDAxMWY0
MWY3NjEzMDdiNjcuLjIzMTEyZDk5NDNmNTkzMzdhZmYxNWRhY2M3YzFlZTViN2E1Zjc5Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCkBAIC0yNiw3ICsyNiw5IEBACiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlRmlsdGVyIGZp
bHRlcjsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpF
Q1RJVkVfQwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVy
ZW5jZXM7CisjZW5kaWYKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByZWZlcmVuY2VOb2Rl
OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBvaW50ZXJCZWZvcmVSZWZlcmVuY2VO
b2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA1MmUyZjE5MzIxNjdhZmM4NWE1MTlkZTUwOWZk
NTFiYWYxNjA5NDkzLi44YzFlMmIwZDgyNDA3Y2RlMjMwNmFmZjM2YjE1YWE0OTE3NGEzNGY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5jcHAKQEAgLTU3Miw3ICs1NzIsNiBAQCBzdGF0aWMgaW5saW5lIHVuc2ln
bmVkIGxlbmd0aE9mQ29udGVudHNJbk5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PENoYXJhY3RlckRhdGE+KCpub2RlKS5sZW5ndGgoKTsKICAgICBjYXNlIE5vZGU6OkVM
RU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9k
ZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToK
ICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VN
RU5UX0ZSQUdNRU5UX05PREU6CkBAIC03MzMsNyArNzMyLDYgQEAgUmVmUHRyPE5vZGU+IFJhbmdl
Ojpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwgUGFzc1Jl
ZlB0cjwKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CiAgICAg
Y2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVO
Q0VfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpE
T0NVTUVOVF9UWVBFX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RF
OgpAQCAtODU2LDEzICs4NTQsNiBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8
Tm9kZT4gcHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNlZCBpZiBhbiBh
bmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVyIGJvdW5kYXJ5LXBvaW50IG9mCi0gICAgLy8gdGhl
IFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBpZiAoY29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0g
ICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCiAgICAgLy8gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBSYWlzZWQgaWYgdGhlIGNv
bnRhaW5lciBvZiB0aGUgc3RhcnQgb2YgdGhlIFJhbmdlIGlzIG9mIGEgdHlwZSB0aGF0CiAgICAg
Ly8gZG9lcyBub3QgYWxsb3cgY2hpbGRyZW4gb2YgdGhlIHR5cGUgb2YgbmV3Tm9kZSBvciBpZiBu
ZXdOb2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBjb250YWluZXIuCiAKQEAgLTEwMjIsNyArMTAx
Myw2IEBAIE5vZGUqIFJhbmdlOjpjaGVja05vZGVXT2Zmc2V0KE5vZGUqIG4sIGludCBvZmZzZXQs
IEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZS
QUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAg
Y2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVS
RU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOiB7CiAg
ICAgICAgICAgICBpZiAoIW9mZnNldCkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
QEAgLTEwNTIsNyArMTA0Miw2IEBAIHZvaWQgUmFuZ2U6OmNoZWNrTm9kZUJBKE5vZGUqIG4sIEV4
Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToK
ICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAgIGNhc2UgTm9k
ZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9E
RToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAg
ICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVT
UEFDRV9OT0RFOgpAQCAtMTA3Miw3ICsxMDYxLDYgQEAgdm9pZCBSYW5nZTo6Y2hlY2tOb2RlQkEo
Tm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGNhc2UgTm9kZTo6Q09N
TUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICAg
ICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JF
RkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05f
Tk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6
WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTQ5LDcgKzExMzcsNiBAQCB2b2lkIFJhbmdlOjpz
ZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAg
Y2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2Rl
OjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0g
ICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAg
IGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAgICAgICAgY2Fz
ZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFD
RV9OT0RFOgpAQCAtMTE2NSw3ICsxMTUyLDYgQEAgdm9pZCBSYW5nZTo6c2VsZWN0Tm9kZShOb2Rl
KiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5U
X05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgogICAgICAgICBj
YXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJF
TkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RF
OgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpYUEFU
SF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyMDQsNyArMTE5MCw2IEBAIHZvaWQgUmFuZ2U6OnNlbGVj
dE5vZGVDb250ZW50cyhOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAg
ICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RF
OgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAg
ICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgICAg
IGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1F
U1BBQ0VfTk9ERToKQEAgLTEyNDMsMjAgKzEyMjgsMTIgQEAgdm9pZCBSYW5nZTo6c3Vycm91bmRD
b250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJlbnQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAg
ICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2Rl
OjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9O
T0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBS
YWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVyIG9mIGVpdGhlciBib3VuZGFyeS1wb2ludCBv
ZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9ubHkuCi0gICAgaWYgKGNvbnRhaW5lZEJ5UmVh
ZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIFJhaXNlIGEgSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSIGlmIHN0YXJ0Q29udGFpbmVyKCkgZG9lc24ndCBhY2NlcHQgY2hpbGRyZW4gbGlrZSBuZXdQ
YXJlbnQuCiAgICAgTm9kZSogcGFyZW50T2ZOZXdQYXJlbnQgPSAmc3RhcnRDb250YWluZXIoKTsK
IApAQCAtMTMzMCwzNiArMTMwNywxNiBAQCB2b2lkIFJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3Qo
QWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGlmICghY29tbW9uQW5j
ZXN0b3JDb250YWluZXIoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKGFjdGlvbiAhPSBF
eHRyYWN0KQorICAgICAgICByZXR1cm47CisKICAgICBOb2RlKiBwYXN0TGFzdCA9IHBhc3RMYXN0
Tm9kZSgpOwogICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Tm9kZSgpOyBuICE9IHBhc3RMYXN0OyBu
ID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbikpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlO
b2RlKCkpIHsKLSAgICAgICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGFjdGlvbiA9PSBF
eHRyYWN0ICYmIG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFKSB7Cisg
ICAgICAgIGlmIChuLT5pc0RvY3VtZW50VHlwZU5vZGUoKSkgewogICAgICAgICAgICAgZWMgPSBI
SUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICB9Ci0KLSAgICBpZiAoY29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotfQotCi1i
b29sIFJhbmdlOjpjb250YWluZWRCeVJlYWRPbmx5KCkgY29uc3QKLXsKLSAgICBmb3IgKE5vZGUq
IG4gPSAmc3RhcnRDb250YWluZXIoKTsgbjsgbiA9IG4tPnBhcmVudE5vZGUoKSkgewotICAgICAg
ICBpZiAobi0+aXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLSAgICBmb3IgKE5vZGUqIG4gPSAmZW5kQ29udGFpbmVyKCk7IG47IG4gPSBuLT5wYXJlbnRO
b2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCiBOb2RlKiBSYW5nZTo6
Zmlyc3ROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggYzhmMjk5M2FkZDBkMTU5ZmFjNTJi
ZGFjN2YxY2M5MzBiZGU1ZjZlZS4uNGMxMTE2MjBhNzJkNzE3ODU4MjU1Y2Q5ZTAzNTFlMzRlZWJl
MjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTE2MSw3ICsxNjEsNiBAQCBwcml2YXRlOgogCiAgICAg
Tm9kZSogY2hlY2tOb2RlV09mZnNldChOb2RlKiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYp
IGNvbnN0OwogICAgIHZvaWQgY2hlY2tOb2RlQkEoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKSBjb25z
dDsKLSAgICBib29sIGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSBjb25zdDsKIAogICAgIGVudW0gQWN0
aW9uVHlwZSB7IERlbGV0ZSwgRXh0cmFjdCwgQ2xvbmUgfTsKICAgICB2b2lkIGNoZWNrRGVsZXRl
RXh0cmFjdChBY3Rpb25UeXBlLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5jcHAKaW5kZXggMDRjZWY1Y2ExZDE0ODM3YjI3YWY3Zjc0MjlkNjdkMmZjYjcwZjM4Ni4uNDU1
NDdmZWIyNGUyYmJjNTEyYzUyNGRmM2UzNjI3ZWQyZWVmMDc0NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcApAQCAtMTA5LDcgKzEwOSw2IEBAIGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBl
QWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09NTUVOVF9OT0RFOgogICAg
IGNhc2UgVEVYVF9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgIGNhc2Ug
RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0
OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCmluZGV4IDc0
YTkyOGY3Y2MwMjliNmYzM2NmZGNlNTFhMWYyYTNhMzFmZWRiNTIuLjNjNGE5NTViMTExMDZjZGEy
MjI4NWE5ZjUyNzE3MDdiMWQ5Yzc3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCkBAIC0z
MCwxOCArMzAsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Ob2RlSXRlcmF0b3JCYXNl
OjpOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZpbHRlciwgYm9vbCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQ
YXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0
cjxOb2RlRmlsdGVyPiYmIG5vZGVGaWx0ZXIpCiAgICAgOiBtX3Jvb3Qocm9vdE5vZGUpCiAgICAg
LCBtX3doYXRUb1Nob3cod2hhdFRvU2hvdykKICAgICAsIG1fZmlsdGVyKFdURjo6bW92ZShub2Rl
RmlsdGVyKSkKLSAgICAsIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlcyhleHBhbmRFbnRpdHlSZWZl
cmVuY2VzKQogewogfQogCiBzaG9ydCBOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2RlKE5vZGUq
IG5vZGUpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IFRvIGhhbmRsZSBYTUwgcHJvcGVybHkgd2Ug
d291bGQgaGF2ZSB0byBjaGVjayBtX2V4cGFuZEVudGl0eVJlZmVyZW5jZXMuCi0KICAgICAvLyBU
aGUgYml0IHR3aWRkbGluZyBoZXJlIGlzIGRvbmUgdG8gbWFwIERPTSBub2RlIHR5cGVzLCB3aGlj
aCBhcmUgZ2l2ZW4gYXMgaW50ZWdlcnMgZnJvbQogICAgIC8vIDEgdGhyb3VnaCAxNCwgdG8gd2hh
dFRvU2hvdyBiaXQgbWFza3MuCiAgICAgaWYgKCEoKCgxIDw8IChub2RlLT5ub2RlVHlwZSgpIC0g
MSkpICYgbV93aGF0VG9TaG93KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJh
dmVyc2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgKaW5kZXggZWQ2ZThkZGJk
MGMyNjYxNWUzMzdhMmU0MmM5YjlkOTM1OGY4ZmRkYS4uZmZiZDU0OWIxZGU4NDg2MDQzZWU0ZDBi
NDIwYTdkZGNhNzQ4ZmE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNh
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaApAQCAtMzgsMTcgKzM4LDE2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9kZSogcm9vdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcm9vdC5nZXQoKTsgfQogICAgICAgICB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3coKSBj
b25zdCB7IHJldHVybiBtX3doYXRUb1Nob3c7IH0KICAgICAgICAgTm9kZUZpbHRlciogZmlsdGVy
KCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXIuZ2V0KCk7IH0KLSAgICAgICAgYm9vbCBleHBhbmRF
bnRpdHlSZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbmRFbnRpdHlSZWZlcmVuY2Vz
OyB9CisgICAgICAgIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIE5vZGVJdGVyYXRvckJhc2UoUGFz
c1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRl
cj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAgICAgTm9kZUl0ZXJhdG9y
QmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxO
b2RlRmlsdGVyPiYmKTsKICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7CiAK
ICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290OwogICAgICAgICB1bnNp
Z25lZCBsb25nIG1fd2hhdFRvU2hvdzsKICAgICAgICAgUmVmUHRyPE5vZGVGaWx0ZXI+IG1fZmls
dGVyOwotICAgICAgICBib29sIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKICAgICB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKaW5kZXggYWQw
YWNlMTk5YjdkYTY5ZWVjYjIwNDNhMjhjOWVmNDRmYzA2M2Q0Ni4uODc3NDgyYWZmNDdhM2M1NDM0
YWY3NTMyZTZkYzA1M2QxNTEzY2QxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcApAQCAt
MzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRyZWVXYWxrZXI6OlRyZWVX
YWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNl
cykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92
ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorVHJlZVdhbGtlcjo6VHJlZVdhbGtl
cihQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJl
ZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKKyAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5v
ZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpKQogICAgICwgbV9jdXJyZW50KHJvb3Qo
KSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCmluZGV4IGJmNjliZGVjZTA5OWJjZDE0ZGJh
ZmQ1OGYwMTdjZmJkODdiNTE1NjMuLjIyOGYyM2Q0NzQ2YTIxNTliYjUwYmY2YWE2Mjc4OGI3MzM2
NGZiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUcmVlV2Fsa2VyIDogcHVibGljIFNjcmlwdFdyYXBw
YWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8VHJlZVdhbGtlcj4sIHB1YmxpYyBOb2RlSXRlcmF0b3JC
YXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRl
KFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVm
UHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCisg
ICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9v
dE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmls
dGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUcmVlV2Fs
a2VyKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHJlZVdhbGtl
cihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpKTsKICAgICAgICAgfSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICBOb2RlKiBjdXJyZW50Tm9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQpAQCAtNTQsNyArNTQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUqIG5leHROb2RlKCk7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hh
dFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNl
cyk7CisgICAgICAgIFRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3
aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAgIAogICAgICAgICBOb2Rl
KiBzZXRDdXJyZW50KFBhc3NSZWZQdHI8Tm9kZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5p
ZGwKaW5kZXggNDgwOWVlM2Q0ZjFkMWZkNDA4NWUxYTExOTczYThkZjQwMjBlNDcxNS4uYWQ1Y2I1
ZDY0MDMxMGY4YzAzODk2MWY1MTMyZDViZGRkMjM2NmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fs
a2VyLmlkbApAQCAtMjYsNyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJv
b3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdzsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7Ci0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAgICAgIAorI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKKyNlbmRpZgog
ICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2RlIGN1cnJlbnROb2RlOwog
CiAgICAgTm9kZSBwYXJlbnROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3Vw
QWNjdW11bGF0b3IuY3BwCmluZGV4IDgzNDU1NzIwNDk2YTBkMTBkZDA2ZmMwZWE0ZWViZjQzOGNi
NGVjMjYuLjcxMmFiZmFmOGNlY2NjOGYyNzc2ZWE1MDU4NmRjM2EwMTBhY2Y1N2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC01NzMsNyArNTcz
LDYgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXAoU3RyaW5nQnVp
bGRlciYgcmVzdWx0LCBjb25zdCBOb2RlJiBub2QKICAgICAgICAgYXBwZW5kQ0RBVEFTZWN0aW9u
KHJlc3VsdCwgZG93bmNhc3Q8Q0RBVEFTZWN0aW9uPihub2RlKS5kYXRhKCkpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9kZTo6RU5U
SVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwIGIvU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoVXRpbC5jcHAKaW5kZXggNmY2NjRkODQwMWZmNzE3MDUyNjg2MDNlMDQxZWJmNzdiNThm
M2M0NC4uYmVhZGI0ZGYyMGZlOGU0NDBhMjUzNGMyMTk0Y2M4ODdhNjQ3NjY5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hQYXRoVXRpbC5jcHAKQEAgLTcxLDcgKzcxLDYgQEAgYm9vbCBpc1ZhbGlkQ29udGV4dE5v
ZGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIE5v
ZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
VFlQRV9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAg
ICAgICAgICAgICByZXR1cm4gIShub2RlLT5wYXJlbnROb2RlKCkgJiYgbm9kZS0+cGFyZW50Tm9k
ZSgpLT5pc0F0dHJpYnV0ZU5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMu
bW0KaW5kZXggZTVjNmYwMmZjOGRjODExMDg4ODNlYWI3NTAyYzUyMzg4OGZlN2VlMy4uZDU3ZGZj
ZDNlYmEwZDI3NTQ2OTUxZmVmNGU0ODA0ZGJhMjI3ZTg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9X
S0RPTUludGVybmFscy5tbQpAQCAtNzYsNyArNzYsNiBAQCBzdGF0aWMgQ2xhc3MgV0tET01Ob2Rl
Q2xhc3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKICAgICAgICAgcmV0dXJuIFtXS0RPTVRleHQgY2xh
c3NdOwogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6QVRUUklCVVRFX05PREU6CiAgICAgY2FzZSBX
ZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgY2FzZSBXZWJDb3JlOjpOb2Rl
OjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9DRVNT
SU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDT01NRU5UX05P
REU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5k
ZXggODcxMDVhOGI2Y2Y2ZGE5OTkwMWMxMWQ3YWJhMDRhZmVkMmVmODNkMS4uODYzYTg1NGU5NmU0
ZmIyNWM0ZjQwOGE0NTZmMjFjZmI4OTllNGIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjMyNCwxMSArMjMyNCwx
MSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBc3Npc3RhYmxlRWxlbWVudChFbGVtZW50JiBub2Rl
KQogICAgIGlmIChpczxIVE1MU2VsZWN0RWxlbWVudD4obm9kZSkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIGlmIChpczxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKSkKLSAgICAgICAgcmV0
dXJuICFkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKS5pc1JlYWRPbmx5Tm9kZSgp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4obm9k
ZSkpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8
SFRNTElucHV0RWxlbWVudD4obm9kZSk7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGxhdW5kcnkg
bGlzdCBvZiB0eXBlcyBpcyBub3QgYSBnb29kIHdheSB0byBmYWN0b3IgdGhpcy4gTmVlZCBhIHN1
aXRhYmxlIGZ1bmN0aW9uIG9uIEhUTUxJbnB1dEVsZW1lbnQgaXRzZWxmLgotICAgICAgICByZXR1
cm4gIWlucHV0RWxlbWVudC5pc1JlYWRPbmx5Tm9kZSgpICYmIChpbnB1dEVsZW1lbnQuaXNUZXh0
RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNE
YXRlVGltZUxvY2FsRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNNb250aEZpZWxkKCkgfHwgaW5w
dXRFbGVtZW50LmlzVGltZUZpZWxkKCkpOworICAgICAgICByZXR1cm4gaW5wdXRFbGVtZW50Lmlz
VGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZUZpZWxkKCkgfHwgaW5wdXRFbGVtZW50
LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzTW9udGhGaWVsZCgpIHx8
IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpOwogICAgIH0KICAgICByZXR1cm4gbm9kZS5pc0Nv
bnRlbnRFZGl0YWJsZSgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQxMmRiOTVhNWY4NjYwNDAzYWJkZTAwODc0MjU3
OTAwY2U4OGFhMTEuLjMzYjY5NDlkNTZjZWFhNTAxNTYzYTg3ZjdiNjIwMGNjMzIzNzJjNzQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wOS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5IEVudGl0eVJlZmVyZW5j
ZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEcm9wIHNldmVyYWwgb3V0ZGF0ZWQgRE9NIGNvbXBsaWFuY2UgdGVzdHMuIFVwZGF0
ZSAvIFJlYmFzZWxpbmUgb3RoZXJzLgorCiAyMDE1LTA5LTE4ICBKYWtlIE5pZWxzZW4gIDxqYWNv
Yl9uaWVsc2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRzIG1vcmUgZmxha3kgdGVzdHMgdG8g
VGVzdEV4cGVjYXRpb25zIGZvciBpT1MgYW5kIFdLMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggMDNiNGUzYTVlMGMzNzgyMTZhMDBlMzA2NTFhZTliNzA1ZGVjYzE0Zi4uNWQ1Zjdl
ZDZlNDQ0YTk4MTNlNTVhYmQ4NTNhMGZhMGI0ZjkwZWZjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTUtMDktMTggIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRpdHlS
ZWZlcmVuY2UgRE9NIE5vZGUgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXM0MgRE9NIHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVj
a3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3Rv
cmljYWwtZXhwZWN0ZWQudHh0OgorCisyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKICAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBFbnRpdHkgTm9kZSB0eXBlCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkyMzkKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlv
bmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDEyYThlNDY2MTI0YjE4ZmY0YzViNjQ3ZWFiZmE3NzAxNTQ0ZDgxZDcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2
ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdDoJaHR0cDovL3d3
dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZl
bDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2I1OWFjMzY2OWEwY2Q2NzZiNDZlNGQ5
ZmNiNzRmYjYxNmIxODNhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9F
TiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0g
VGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRs
ZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2Vs
Zmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYuanMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9h
ZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+
TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAg
ICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIg
MiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVm
ZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwv
YWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5v
cjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255
bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3Jl
L2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U3ZTEy
Nzg0MWVmOTg2ZDYxNjg2OWEyMjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29y
ZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0
IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRp
Y3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2
ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBM
aWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29m
dHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlk
ZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0
Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotICAgICAgIGNoZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotICAgIFRoZSAiY3JlYXRlRW50
aXR5UmVmZXJlbmNlKHRhZ05hbWUpIiBtZXRob2QgcmFpc2VzIGFuCi0gICBJTlZBTElEX0NIQVJB
Q1RFUl9FUlIgRE9NRXhjZXB0aW9uIGlmIHRoZSBzcGVjaWZpZWQKLSAgIHRhZ05hbWUgY29udGFp
bnMgYW4gaW52YWxpZCBjaGFyYWN0ZXIuIAotCi0qIEBhdXRob3IgTklTVAotKiBAYXV0aG9yIE1h
cnkgQnJhZHkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwt
MS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25z
dGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53
My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQt
MzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwt
MS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlz
ZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZv
cmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5Ci0qLwotZnVuY3Rpb24gZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCkgewotICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZh
ciBkb2M7Ci0gICAgICB2YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRl
bnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7
Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJmb28iKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9
ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQot
CQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0J
fQotCQotCQllbHNlIHsKLQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAg
ICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiaW52YWxp
ZF5OYW1lIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlw
ZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJYXNz
ZXJ0VHJ1ZSgidGhyb3dfSU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQkJ
fQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWFlYmU0MDQ0NzhkOGIw
MjViNTFjNmFlM2MzNjY1ZDVhMzcwMzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlv
bmNyZWF0ZWVudHJlZjEKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMS5odG1sIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzYjZkMDljZGFiYzIwYzE3MjY1YWFmMjU5NzZlMzMyNDlmNWQx
Yjk0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZjEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0
dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21t
ZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwv
dGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwv
c2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIj48L3Nj
cmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxz
dXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4K
LSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMg
aXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQy
OwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBh
IHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+
Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+
Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVzdHMvZG9t
L2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRl
ZW50cmVmMS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjRkMWVjOTc1MzI5YjE3
ZDcyM2NlM2MwZTk3OWU1ZDVmOTBmNDBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMTQwICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBX
aWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9s
b2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBN
YXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlz
IHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBb
MV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRw
Oi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIw
MDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVz
IHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICov
Ci1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEw
MDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMg
Y2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0
aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4
Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3Rh
cnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0
ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVu
IGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgp
IHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0g
ICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRp
b24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0g
ICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkgcmVmZXJl
bmNlIHdpdGggYW4gZW1wdHkgbmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJf
RVJSLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihp
ZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10p
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEw
MDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihp
ZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9k
ZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkK
LSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1
Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50
cmVmMSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAh
PSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0J
aWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkK
LQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJl
ZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURf
RVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNz
ID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCIiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3Vj
Y2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsK
LQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3Mp
OwotCX0KLQotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTA4MmNi
ZWFlNGY2ZDg4ZGZkMDY0ZWRiNGMyZDlhYWI5NjE1YzNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3Jl
L2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9j
b3JlL2hjX2F0dHJnZXR2YWx1ZTIKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sIGIvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmI3YmI4YzgxMDljZjU5M2RmZWY4NWJjOWNkMzRhZTRj
YjI4OGQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzND
Ly9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0
cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRG
LTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpzIj48L3Nj
cmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxz
dXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4K
LSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMg
aXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQy
OwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBh
IHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+
Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+
Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0
dmFsdWUyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZh
bHVlMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjYzJhZTM1ZTI3YjQ5NDQ4
ZDA3ZDYxNjRiNDliMGE5ODMwY2NmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0
dmFsdWUyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2Nv
cmUvaGNfYXR0cmdldHZhbHVlMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7
Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVz
dCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlv
bnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4g
IE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQg
dGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVy
aW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAg
IHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8v
ICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAg
ICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAg
Y2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAg
CWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRo
b2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9u
b3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5j
aHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ug
c3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0
ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgr
K2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0
ZSB0aGF0IGNvbnRhaW5zIGVudGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5v
bGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4
MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0
dmFsdWUyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihi
dWlsZGVyLCAiaGNfYXR0cmdldHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGFjcm9ueW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFy
IGF0dHJpYnV0ZXM7Ci0gICAgICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVlOwotICAg
ICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxk
OwotICAgICAgdmFyIGFscGhhUmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJhY3JvbnltIik7Ci0gICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0g
ICAgICBhdHRyaWJ1dGVzID0gdGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRy
ID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQko
YnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAg
ICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09
IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNz
KTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENo
aWxkOwotCi0gICAgICByZXR2YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZp
cnN0Q2hpbGQpOwotICAgICAgdmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2Vy
dEVxdWFscygiYXR0clZhbHVlMSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0K
LQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1
ZTAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25v
ZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzcw
YzdjM2RiMWRmZTc4ZDg3YTUxYzRiYWQxMTZkMjk4MzhmMWMwZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEv
Y29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICsw
LDAgQEAKLVRlc3Q6CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwx
L2NvcmUvaGNfbm9kZXZhbHVlMDMKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbCBiL0xheW91dFRl
c3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI4MDQ2ZjEyZmI4OGIyZWI5Y2U2NmY5NjBmMmIyYmQxOWE0Nzdh
OWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQg
SFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5k
dGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJoY19ub2RldmFsdWUwMy5qcyI+PC9zY3JpcHQ+PHNj
cmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3Rh
cnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+
Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMw
IE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0g
IDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RB
VEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMg
aXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFt
cDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8
cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4K
LSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4K
LSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+
UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2Rl
PlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAg
PGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29k
ZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFy
Pm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIEly
dmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMg
Yi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTYxNjcxYWE0YjM4YTY1YTFjZWQ0Zjk1OWE4YjE0
NjM1ZjMxMjU4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1
ZTAzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0g
bnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rpbmcg
ZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8v
ICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3Vz
Ci0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUg
c3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlz
IGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2Yg
dGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3Qg
ZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWls
ZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1BbiBlbnRpdHkgcmVmZXJlbmNlIGlzIGNy
ZWF0ZWQsIHNldE5vZGVWYWx1ZSBpcyBjYWxsZWQgd2l0aCBhIG5vbi1udWxsIGFyZ3VtZW50LCBi
dXQgZ2V0Tm9kZVZhbHVlCi1zaG91bGQgc3RpbGwgcmV0dXJuIG51bGwuCi0KLSogQGF1dGhvciBD
dXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZl
bC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELUY2OEQwODAKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJ
RC0xMUM5ODQ5MAotKi8KLWZ1bmN0aW9uIGhjX25vZGV2YWx1ZTAzKCkgewotICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfbm9kZXZhbHVlMDMi
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdOb2RlOwotICAg
ICAgdmFyIG5ld1ZhbHVlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0
L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICBuZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJ
bmV3Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIGFzc2Vy
dE5vdE51bGwoImNyZWF0ZWRFbnRSZWZOb3ROdWxsIixuZXdOb2RlKTsKLW5ld1ZhbHVlID0gbmV3
Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51bGwoImluaXRpYWxseU51bGwiLG5ld1Zh
bHVlKTsKLSAgICBuZXdOb2RlLm5vZGVWYWx1ZSA9ICJUaGlzIHNob3VsZCBoYXZlIG5vIGVmZmVj
dCI7Ci0KLSAgICAgIG5ld1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2Vy
dE51bGwoIm51bGxBZnRlckF0dGVtcHRlZENoYW5nZSIsbmV3VmFsdWUpOwotICAgIAotCQl9Ci0J
Ci19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19ub2RldmFsdWUwMygpOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFs
dWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBP
UlRFRF9FUlItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzhj
ZWMwYTg5ZDRhNWZhY2U2YjNjYjI0MDM2OTg3ZDc5OGI2Zjg3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hw
YXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05P
VF9TVVBQT1JURURfRVJSOiBTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3Zn
L2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5q
cyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1
YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
YmUwMThjOGE2NjMwNTQ5Njc4M2QxYjc1YWMwZTc0YmYyMjM3ZGZmLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwz
L3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLS8vIGV4cG9zZSB0ZXN0IGZ1bmN0aW9uIG5hbWVzCi1m
dW5jdGlvbiBleHBvc2VUZXN0RnVuY3Rpb25OYW1lcygpCi17Ci1yZXR1cm4gWydYUGF0aEV2YWx1
YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUiddOwotfQotCi12YXIgZG9jc0xvYWRlZCA9
IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5p
bmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlv
biBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlz
IHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29t
cGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQg
d2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBh
Z2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAv
LwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhj
ZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAic3RhZmZOUyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qICAg
ICAgIAotICAgICAgVGVzdCBpZiBYUGF0aEV2YWx1YXRvci5ldmFsdWF0ZSBwcm9wZXJseSB0aHJv
d3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBlIExlIEjDqWdh
cmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
My9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV2YWx1YXRvci1ldmFs
dWF0ZQotKi8KLWZ1bmN0aW9uIFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURf
RVJSKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWls
ZGVyLCAiWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIiKSAhPSBudWxs
KSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRvcjsKLSAgICAgIHZh
ciByZXN1bHQ7Ci0gICAgICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwotCi0gICAgICB2YXIg
bnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
YyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVhdG9yID0g
Y3JlYXRlWFBhdGhFdmFsdWF0b3IoZG9jKTsKLWNvbnRleHROb2RlID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZW50aXR5bmFtZSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7
Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXN1bHQgPSB4cEV2YWx1YXRvci5ldmFsdWF0ZSgiLy9m
b286YmFyIixjb250ZXh0Tm9kZSxudWxsTlNSZXNvbHZlciwwLG51bGxSZXN1bHQpOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
VF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgIFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2
YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcgYi9MYXlvdXRUZXN0cy9kb20v
c3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VS
Ui5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YjhiZGMxYzZkNDA5NTk2ZTJh
ZTQ4NDIwZDdiZTdjZTkxODJlOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0
b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6bmlz
dD0iaHR0cDovL3d3dy5uaXN0LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVp
Z2h0PSIxMDAiLz4NCi08c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiBzcmM9IlhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIi8+DQot
PHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJzdmd1bml0
LmpzIi8+DQotPC9zdmc+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9l
dmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDEwYTdkY2M2YTY0MGY3ZjZmMDZjY2JmNGJlMDcwNjA1MjU1OTQ3ODAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JU
RURfRVJSLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQYXRoRXhw
cmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUjogU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRl
X05PVF9TVVBQT1JURURfRVJSLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgv
WFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhY2Y2MTQ2NjEwOTNjY2ZjYzUxNzhiODY0YTZhMmMwYjI5ZGY4
Njk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1Rf
U1VQUE9SVEVEX0VSUi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0vLyBleHBvc2Ug
dGVzdCBmdW5jdGlvbiBuYW1lcwotZnVuY3Rpb24gZXhwb3NlVGVzdEZ1bmN0aW9uTmFtZXMoKQot
ewotcmV0dXJuIFsnWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSJ107
Ci19Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0K
LS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29y
ayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRo
ZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAg
ICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwot
Ly8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlh
dGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0
LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5u
aW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50
IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNy
ZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogICAgICAgCi0gICAgICBUZXN0IGlmIFhQYXRoRXhwcmVzc2lv
bi5ldmFsdWF0ZSBwcm9wZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAgIAotKiBA
YXV0aG9yIFBoaWxpcHBlIExlIEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAzMDMzMS94
cGF0aCNYUGF0aEV4cHJlc3Npb24tZXZhbHVhdGUKLSovCi1mdW5jdGlvbiBYUGF0aEV4cHJlc3Np
b25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBp
ZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVf
Tk9UX1NVUFBPUlRFRF9FUlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAg
IHZhciB4cEV2YWx1YXRvcjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAgICB2YXIgbnVsbE5TUmVz
b2x2ZXIgPSBudWxsOwotCi0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAgICAgIHZh
ciBjb250ZXh0Tm9kZTsKLSAgICAgIHZhciB4cGF0aEV4cHJlc3Npb247Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Mg
PSBsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICB4cEV2YWx1YXRvciA9IGNy
ZWF0ZVhQYXRoRXZhbHVhdG9yKGRvYyk7Ci14cGF0aEV4cHJlc3Npb24gPSB4cEV2YWx1YXRvci5j
cmVhdGVFeHByZXNzaW9uKCIvL2ZvbyIsbnVsbE5TUmVzb2x2ZXIpOwotICAgICAgY29udGV4dE5v
ZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnRpdHluYW1lIik7Ci0gICAgICAKLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHhwYXRo
RXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0Tm9kZSwwLG51bGxSZXN1bHQpOwotICAgICAgICB9
Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5k
ZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9T
VVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgIFhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHBy
ZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3RzL2RvbS9z
dmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VS
Ui5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmODZkNzUwYTM5ZGFhZjQ2Y2Iw
NGQ5ZjEzYTI3MGNmMjU1Y2NjZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNz
aW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDQg
KzAsMCBAQAotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOm5p
c3Q9Imh0dHA6Ly93d3cubmlzdC5nb3YiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIi8+DQotPHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCIgc3JjPSJYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMiLz4N
Ci08c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9InN2Z3Vu
aXQuanMiLz4NCi08L3N2Zz4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmQ2ZDE3NzBhMTI3ODk5YTIyYWFjZjM2ZmNmOTg2MTI2
MDc3M2FmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiAr
MCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmCi1TdGF0
dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3Jl
L2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlN2Ux
Mjc4NDFlZjk4NmQ2MTY4NjlhMjI0MTQ4MTYxYTM5MTcwMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9j
b3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDE0MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9h
ZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAg
cnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1
cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRp
bmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0
byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJh
aXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNl
dFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0g
ICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJv
dyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWls
ZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJjcmVhdGVF
bnRpdHlSZWZlcmVuY2UodGFnTmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFMSURfQ0hB
UkFDVEVSX0VSUiBET01FeGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFtZSBjb250
YWlucyBhbiBpbnZhbGlkIGNoYXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBhdXRob3Ig
TWFyeSBCcmFkeQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZl
bC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2Nv
bnN0YW50W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJ
RC0zOTJCNzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZl
bC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3Jh
aXNlcy9leGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJl
Zm9yZSguLCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlvbiBkb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAg
dmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRv
Y1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29u
dGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxz
ZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlS
ZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNz
ID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9
Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0K
LQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0g
ICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJpbnZh
bGlkXk5hbWUiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0
eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlh
c3NlcnRUcnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
CQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODEwOTgzMzIxMDRmMTBhOWEwNzNhZDAxZTRl
NGExM2I4YTFlMzhjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCAr
MCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9D
VFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgot
ICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAg
IDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAg
IDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4K
LSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVC
TElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90
YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgot
PCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIi8+PHNjcmlwdCB0eXBl
PSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7
IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2
ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9u
IHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9z
dHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVt
PkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+
RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4m
ZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3
IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2Fk
LiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRl
ciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhh
cyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjNiYzk5ODVi
NWMyYjdmNjAxYTEwZjg0ZTM5ZTY1MzY4MTM0Njg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9k
b2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmMS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9k
b2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGQxZWM5NzUzMjliMTdkNzIzY2UzYzBlOTc5ZTVkNWY5
MGY0MGEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAK
LQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVt
LCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNl
YXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBV
bml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25z
b3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQot
ICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICog
IEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJn
ZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRl
ZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJl
KCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9h
ZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAg
ICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlh
bGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVk
IG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3Rh
cnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2Fk
ZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNo
YW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4
ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1wdHkg
bmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRob3Ig
Q3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2
ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9j
b25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUj
SUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2
ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9y
YWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1i
ZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24gZG9j
dW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIu
Y29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRp
dHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNj
ZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwot
CQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9
Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7
Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCIi
KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVl
KCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODNiYWI5ODRhZTdjYTJhZmViY2EwMjRlYzNkODBiODdk
NDhmZTg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBA
QAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUg
aHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4
aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVO
VElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVO
VElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAi
bm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9u
MkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4KLTwhLS0g
VGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMiLz48c2NyaXB0IHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwv
c2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBE
YWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8
L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0
aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2Vu
dCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBh
cnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0
YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2
aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9l
bT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERp
cmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwv
ZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNw
ZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMjA5YzNlNDM2NGVkYzQ1
NWQ1NGQ0MTUyMDk0ZTJlNjZhYWQ3NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJn
ZXR2YWx1ZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0
cmdldHZhbHVlMgotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJYXR0clZhbHVlMTogYXNzZXJ0RXF1
YWxzIGZhaWxlZCwgYWN0dWFsIFnOsSwgZXhwZWN0ZWQgzrFZzrEuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGNjMmFlMzVlMjdiNDk0NDhkMDdkNjE2NGI0OWIwYTk4
MzBjY2YxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZh
bHVlMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJY
TUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5z
IGVudGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0
cmdldHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFj
cm9ueW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0g
ICAgICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2Rl
OwotICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFs
cGhhUmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7
Ci0gICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVz
ID0gdGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5n
ZXROYW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50
VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJhbHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0J
Ci0JCWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBo
YSIpOwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICBy
ZXR2YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAg
ICAgdmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZh
bHVlMSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnhodG1sIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMmU0MDEzOGM1NTA4NDlkNzlkMTdhODRh
OWU0MjdiMjg1ZWVmYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaGNfYXR0cmdldHZhbHVlMi5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBB
dmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlv
biB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFk
amFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZi
ZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAy
NyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25u
ZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9h
ZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0
ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDdiMWEyNjJmYTg4MTZl
OTcxZWMzMDc5NmQ3NjU5OTRlZjk4ZTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2Rl
dmFsdWUwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19ub2Rl
dmFsdWUwMwotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGU2MTY3MWFhNGIzOGE2NWExY2VkNGY5NTlhOGIxNDYzNWYzMTI1ODUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMiOwotICAgfQotCi12YXIgZG9j
c0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlz
IGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAg
ICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29u
ZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBs
b2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBz
ZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAg
ICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlv
biBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkg
ewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkg
dGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVk
QnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQg
Kz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAg
aWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXph
dGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24g
dGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVk
IGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBk
b2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdl
ZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0
ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LS8qKgotKiAKLUFuIGVudGl0eSByZWZlcmVuY2UgaXMgY3JlYXRlZCwgc2V0Tm9kZVZhbHVlIGlz
IGNhbGxlZCB3aXRoIGEgbm9uLW51bGwgYXJndW1lbnQsIGJ1dCBnZXROb2RlVmFsdWUKLXNob3Vs
ZCBzdGlsbCByZXR1cm4gbnVsbC4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0
cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25l
LWNvcmUjSUQtRjY4RDA4MAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURP
TS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELTExQzk4NDkwCi0qLwotZnVuY3Rp
b24gaGNfbm9kZXZhbHVlMDMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRp
YWxpemF0aW9uKGJ1aWxkZXIsICJoY19ub2RldmFsdWUwMyIpICE9IG51bGwpIHJldHVybjsKLSAg
ICB2YXIgZG9jOwotICAgICAgdmFyIG5ld05vZGU7Ci0gICAgICB2YXIgbmV3VmFsdWU7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYo
Ci0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIG5ld05vZGUgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsK
LSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNv
ZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1
Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQluZXdOb2RlID0gZG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgiY3JlYXRlZEVudFJl
Zk5vdE51bGwiLG5ld05vZGUpOwotbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAg
ICAgYXNzZXJ0TnVsbCgiaW5pdGlhbGx5TnVsbCIsbmV3VmFsdWUpOwotICAgIG5ld05vZGUubm9k
ZVZhbHVlID0gIlRoaXMgc2hvdWxkIGhhdmUgbm8gZWZmZWN0IjsKLQotICAgICAgbmV3VmFsdWUg
PSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgibnVsbEFmdGVyQXR0ZW1w
dGVkQ2hhbmdlIixuZXdWYWx1ZSk7Ci0gICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIGhjX25vZGV2YWx1ZTAzKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNzY1MWVjODlmYTg4MGJiNTI0Y2EyNGJhZjllMWM1Mjgx
ZmQyZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNU
WUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRN
TCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkg
Z2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZ
IGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5v
dGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGly
IENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0
bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+
PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9ImhjX25vZGV2YWx1ZTAzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAx
PC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3Vu
dGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBU
ZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAg
PHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5
UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFT
ZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxj
b2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywg
JmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2Vt
PgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBN
YW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4
YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxz
dHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rvcjwv
Y29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNy
b255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzc5M2UwNGNiNjRkOWJlOGFm
NWYwNmI3ZTUzODZjZjI0NmFiYzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFk
b3B0bm9kZTA2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3Vt
ZW50YWRvcHRub2RlMDYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcyBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4MDRiOTQ4MTUyOGZlMjA4MWZiM2E0ZGMzZDQ5ZDI1ZDA1NWE4
ZjIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTc1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9w
dG5vZGUwNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSBhZG9wdE5vZGUgb24g
YSBuZXcgZG9jdW1lbnQgdG8gYWRvcHQgdGhlIGEgbmV3IEF0dHJpYnV0ZSBub2RlIGhhdmluZyBh
IFRleHQgYW5kIGFuIEVudGl0eVJlZmVyZW5jZSAKLQljaGlsZC4gIENoZWNrIGlmIHRoaXMgYXR0
cmlidXRlIGhhcyBiZWVuIGFkb3B0ZWQgc3VjY2Vzc2Z1bGx5IGJ5IHZlcmlmeWluZyB0aGUgbm9k
ZU5hbWUsIG5hbWVzcGFjZVVSSSwgcHJlZml4LCAKLQlzcGVjaWZpZWQgYW5kIG93bmVyRWxlbWVu
dCBhdHRyaWJ1dGVzIG9mIHRoZSBhZG9wdGVkIG5vZGUuICBBbHNvIHZlcmlmeSB0aGUgb3duZXJE
b2N1bWVudCBhdHRyaWJ1dGUKLQlvZiB0aGUgYWRvcHRlZCBub2RlIGFuZCB0aGUgYWRvcHRlZCBj
aGlsZHJlbiBvZiB0aGUgYXR0cmlidXRlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhv
ciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1M
ZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNEb2N1bWVudDMtYWRvcHROb2RlCi0qLwotZnVuY3Rp
b24gZG9jdW1lbnRhZG9wdG5vZGUwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50YWRvcHRub2RlMDYiKSAhPSBudWxsKSBy
ZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIgZG9tSW1w
bDsKLSAgICAgIHZhciBuZXdBdHRyOwotICAgICAgdmFyIG5ld1RleHQ7Ci0gICAgICB2YXIgbmV3
RW50UmVmOwotICAgICAgdmFyIGFkb3B0ZWRBdHRyOwotICAgICAgdmFyIGFkb3B0VGV4dDsKLSAg
ICAgIHZhciBhZG9wdEVudFJlZjsKLSAgICAgIHZhciBub2RlTGlzdDsKLSAgICAgIHZhciBub2Rl
TmFtZTsKLSAgICAgIHZhciBub2RlTmFtZXNwYWNlVVJJOwotICAgICAgdmFyIG5vZGVQcmVmaXg7
Ci0gICAgICB2YXIgYXR0ck93bmVyRWxlbTsKLSAgICAgIHZhciBpc1NwZWNpZmllZDsKLSAgICAg
IHZhciBhZG9wdGVkVGV4dE5vZGVWYWx1ZTsKLSAgICAgIHZhciBhZG9wdGVkRW50UmVmTm9kZVZh
bHVlOwotICAgICAgdmFyIG51bGxEb2NUeXBlID0gbnVsbDsKLQotICAgICAgdmFyIGFwcGVuZGVk
Q2hpbGQ7Ci0gICAgICB2YXIgZG9jRWxlbTsKLSAgICAgIHZhciByb290TlM7Ci0gICAgICB2YXIg
cm9vdE5hbWU7Ci0gICAgICB2YXIgeG1sTlMgPSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgv
bmFtZXNwYWNlIjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5h
bWUgPSBkb2NFbGVtLnRhZ05hbWU7Ci0KLSAgICAgIHJvb3ROUyA9IGRvY0VsZW0ubmFtZXNwYWNl
VVJJOwotCi0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9t
SW1wbC5jcmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAg
bmV3QXR0ciA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUyh4bWxOUywieG1sOmxhbmciKTsKLSAgICAg
IG5ld1RleHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgTm9kZSIpOwotICAgICAgbmV3RW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBuZXdBdHRyLmFwcGVuZENoaWxkKG5ld1RleHQpOwotICAgICAgYXBwZW5kZWRDaGls
ZCA9IG5ld0F0dHIuYXBwZW5kQ2hpbGQobmV3RW50UmVmKTsKLSAgICAgIGFkb3B0ZWRBdHRyID0g
bmV3RG9jLmFkb3B0Tm9kZShuZXdBdHRyKTsKLSAgICAgIAotCWlmKAotCQotCShhZG9wdGVkQXR0
ciAhPSBudWxsKQotCi0JKSB7Ci0Jbm9kZU5hbWUgPSBhZG9wdGVkQXR0ci5ub2RlTmFtZTsKLQot
ICAgICAgbm9kZU5hbWVzcGFjZVVSSSA9IGFkb3B0ZWRBdHRyLm5hbWVzcGFjZVVSSTsKLQotICAg
ICAgbm9kZVByZWZpeCA9IGFkb3B0ZWRBdHRyLnByZWZpeDsKLQotICAgICAgYXR0ck93bmVyRWxl
bSA9IGFkb3B0ZWRBdHRyLm93bmVyRWxlbWVudDsKLQotICAgICAgaXNTcGVjaWZpZWQgPSBhZG9w
dGVkQXR0ci5zcGVjaWZpZWQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5v
ZGUwNl9ub2RlTmFtZSIsInhtbDpsYW5nIixub2RlTmFtZSk7Ci0gICAgICAgYXNzZXJ0RXF1YWxz
KCJkb2N1bWVudGFkb3B0bm9kZTA2X25hbWVzcGFjZVVSSSIseG1sTlMsbm9kZU5hbWVzcGFjZVVS
SSk7Ci0gICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X3ByZWZpeCIsInht
bCIsbm9kZVByZWZpeCk7Ci0gICAgICAgYXNzZXJ0TnVsbCgiZG9jdW1lbnRhZG9wdG5vZGUwNl9v
d25lckRvYyIsYXR0ck93bmVyRWxlbSk7Ci0gICAgYXNzZXJ0VHJ1ZSgiZG9jdW1lbnRhZG9wdG5v
ZGUwNl9zcGVjaWZpZWQiLGlzU3BlY2lmaWVkKTsKLW5vZGVMaXN0ID0gYWRvcHRlZEF0dHIuY2hp
bGROb2RlczsKLQotICAgICAgYWRvcHRUZXh0ID0gbm9kZUxpc3QuaXRlbSgwKTsKLSAgICAgIGFk
b3B0RW50UmVmID0gbm9kZUxpc3QuaXRlbSgxKTsKLSAgICAgIGFkb3B0ZWRUZXh0Tm9kZVZhbHVl
ID0gYWRvcHRUZXh0Lm5vZGVWYWx1ZTsKLQotICAgICAgYWRvcHRlZEVudFJlZk5vZGVWYWx1ZSA9
IGFkb3B0RW50UmVmLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRv
cHRub2RlMDZfVGV4dE5vZGVWYWx1ZSIsIlRleHQgTm9kZSIsYWRvcHRlZFRleHROb2RlVmFsdWUp
OwotICAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9FbnRSZWZOb2RlVmFs
dWUiLCJhbHBoYSIsYWRvcHRlZEVudFJlZk5vZGVWYWx1ZSk7Ci0gICAgICAgCi0JfQotCQotfQot
Ci0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUwNigpOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50
YWRvcHRub2RlMDYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9j
dW1lbnRhZG9wdG5vZGUwNi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjky
ZDg5MGRhZGI1YTg3MzU5ZjQ5ZmVkNDE5OTQ3MzU4NGQyMTcyMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICsw
LDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NU
WVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0g
ICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAg
PCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAg
PCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJM
SUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3Rh
dGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAg
ICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAj
SU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFU
VExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFU
VExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVu
dCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
JwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWlu
c3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwv
dGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+
PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3Vt
ZW50YWRvcHRub2RlMDYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBv
bmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2Eu
Y29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ry
b25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1Ro
aXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7
XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVm
ZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29k
ZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4K
LSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFu
YWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgot
ICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxj
b2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBp
ZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBS
b2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAy
PSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJv
YmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgot
ICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgy
MSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2Jv
ZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L2RvY3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyOGFiMTg4NjFmYmU4YTUwZjU5YzgxMmFlYmQwNTMzOWVhNTdj
ZjVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYKLVN0
YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvZG9jdW1lbnRhZG9wdG5vZGUxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4ZmQ2ZTJmZGMzNDdhMzQxMTA1NWJkYTJlZGU5YTIyMjliZTllZmU0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcw
ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBD
b25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJv
cGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGlj
cywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhl
IAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3Lncz
Lm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0q
LwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0
LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlv
biBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNiI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
c0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAK
LSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaElu
aXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNh
bGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2Fk
IHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMg
bG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBp
cyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBi
ZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotLyoqCi0qIAotQ3JlYXRlIGEgZG9jdW1lbnQgZnJhZ21lbnQgd2l0aCBhbiBlbnRp
dHkgcmVmZXJlbmNlLCBhZG9wdCB0aGUgbm9kZSBhbmQgY2hlY2sKLXRoYXQgdGhlIGVudGl0eSBy
ZWZlcmVuY2UgdmFsdWUgY29tZXMgZnJvbSB0aGUgYWRvcHRpbmcgZG9jdW1lbnRzIERURC4KLQot
KiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53
My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0RvY3VtZW50
My1hZG9wdE5vZGUKLSovCi1mdW5jdGlvbiBkb2N1bWVudGFkb3B0bm9kZTE2KCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRh
ZG9wdG5vZGUxNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRv
Y0ZyYWdtZW50OwotICAgICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAg
ICB2YXIgY2hpbGQ7Ci0gICAgICB2YXIgY2hpbGRzQXR0cjsKLSAgICAgIHZhciBlbnRSZWY7Ci0g
ICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgYWRvcHRlZDsKLSAgICAgIHZhciBwYXJlbnRJ
bXA7Ci0gICAgICB2YXIgY2hpbGRJbXA7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAgICAgIHZh
ciBjaGlsZEF0dHJJbXA7Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVk
Q2hpbGQ7Ci0gICAgICB2YXIgYXR0ck5vZGU7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsKLSAgICAg
IHZhciBmaXJzdENoaWxkVHlwZTsKLSAgICAgIHZhciBmaXJzdENoaWxkTmFtZTsKLSAgICAgIHZh
ciBmaXJzdENoaWxkVmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgZG9jRnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVu
dCgpOwotICAgICAgcGFyZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoInBhcmVudCIpOwotICAgICAg
Y2hpbGQgPSBkb2MuY3JlYXRlRWxlbWVudCgiY2hpbGQiKTsKLSAgICAgIGNoaWxkc0F0dHIgPSBk
b2MuY3JlYXRlQXR0cmlidXRlKCJzdGF0ZSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiZ2FtbWEiKTsKLSAgICAgIHRleHROb2RlID0gZG9jLmNyZWF0ZVRleHRO
b2RlKCJUZXN0Iik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gY2hpbGRzQXR0ci5hcHBlbmRDaGls
ZChlbnRSZWYpOwotICAgICAgYXR0ck5vZGUgPSBjaGlsZC5zZXRBdHRyaWJ1dGVOb2RlKGNoaWxk
c0F0dHIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGNoaWxkLmFwcGVuZENoaWxkKHRleHROb2Rl
KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAg
ICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWdtZW50LmFwcGVuZENoaWxkKHBhcmVudCk7Ci0gICAg
ICBhZG9wdGVkID0gZG9jLmFkb3B0Tm9kZShkb2NGcmFnbWVudCk7Ci0gICAgICAKLQlpZigKLQkK
LQkoYWRvcHRlZCAhPSBudWxsKQotCi0JKSB7Ci0JcGFyZW50SW1wID0gYWRvcHRlZC5maXJzdENo
aWxkOwotCi0gICAgICBjaGlsZEltcCA9IHBhcmVudEltcC5maXJzdENoaWxkOwotCi0gICAgICBh
dHRyaWJ1dGVzID0gY2hpbGRJbXAuYXR0cmlidXRlczsKLQotICAgICAgY2hpbGRBdHRySW1wID0g
YXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oInN0YXRlIik7Ci0gICAgICBmaXJzdENoaWxkID0gY2hp
bGRBdHRySW1wLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImZpcnN0Q2hpbGRO
b3ROdWxsIixmaXJzdENoaWxkKTsKLWZpcnN0Q2hpbGROYW1lID0gZmlyc3RDaGlsZC5ub2RlTmFt
ZTsKLQotICAgICAgZmlyc3RDaGlsZFZhbHVlID0gZmlyc3RDaGlsZC5ub2RlVmFsdWU7Ci0KLSAg
ICAgIGZpcnN0Q2hpbGRUeXBlID0gZmlyc3RDaGlsZC5ub2RlVHlwZTsKLQotICAgICAgCi0JaWYo
Ci0JKDUgPT0gZmlyc3RDaGlsZFR5cGUpCi0JKSB7Ci0JYXNzZXJ0RXF1YWxzKCJmaXJzdENoaWxk
RW50M1JlZiIsImdhbW1hIixmaXJzdENoaWxkTmFtZSk7Ci0gICAgICAgCi0JfQotCQotCQllbHNl
IHsKLQkJCWFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUxNiIsIlRleGFzIixmaXJzdENo
aWxkVmFsdWUpOwotICAgICAgIAotCQl9Ci0JCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUxNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiYjlkZTFmYjkzOGIwNzk3NTMw
ZjExMzBjODcxODZlNzYzN2QxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9w
dG5vZGUxNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNp
b249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5k
dGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5
NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYj
OTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwh
QVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAg
ICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVu
dDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRh
dGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBD
REFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxo
dG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4
c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYu
eHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJV
VEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMTYuanMi
Lz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
eyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0
ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2Nv
dW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4K
LSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0
YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywg
JmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgot
IEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1
cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3Qu
Z292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25n
PgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3Vw
PgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIEly
dmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9k
ZTI3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudHJlbmFtZW5vZGUyNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQzNzM0NDFkNDMwMjE0OTJmOTQzN2RmYjY2MGRjMGU0ZmEzNjM4MmQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3Ci1TdGF0dXMJZmFpbHVyZQot
TWVzc2FnZQl0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl8xOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1l
bm9kZTI3LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVu
YW1lbm9kZTI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjczY2FjYmM2ODk2
YzY2Y2EyMzMwMmY2YTIxYWI2OWNlM2Q4NGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudHJlbmFtZW5vZGUyNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBACi0KLS8q
Ci1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0o
TWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2gg
Q29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVy
c2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
Ci10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1
bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8q
KgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0
dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJ
KCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JSW52b2tlIHRoZSByZW5hbWVOb2RlIG1ldGhvZCB0byBhdHRlbXB0IHRvIHJlbmFtZSBu
ZXcgVGV4dCwgQ29tbWVudCwgQ0RhdGFTZWN0aW9uLAotCVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBh
bmQgRW50aXR5UmVmZXJlbmNlIG5vZGVzIG9mIGEgbmV3IERvY3VtZW50LgotCUNoZWNrIGlmIGEg
Tk9UX1NVUFBPUlRFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3Ig
TmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2
ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjRG9jdW1lbnQzLXJlbmFtZU5vZGUKLSovCi1mdW5jdGlv
biBkb2N1bWVudHJlbmFtZW5vZGUyNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50cmVuYW1lbm9kZTI3IikgIT0gbnVsbCkg
cmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgbmV3RG9jOwotICAgICAgdmFyIGRvbUlt
cGw7Ci0gICAgICB2YXIgdGV4dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGNkYXRh
OwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIGVudHJlZjsKLSAgICAgIHZhciByZW5hbWVkVHh0
OwotICAgICAgdmFyIHJlbmFtZWRDb21tZW50OwotICAgICAgdmFyIHJlbmFtZWRDZGF0YTsKLSAg
ICAgIHZhciByZW5hbWVkUGk7Ci0gICAgICB2YXIgcmVuYW1lZEVudFJlZjsKLSAgICAgIHZhciBu
dWxsRG9jVHlwZSA9IG51bGw7Ci0KLSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIHJvb3RO
UzsKLSAgICAgIHZhciByb290TmFtZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9j
IiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQot
ICAgICAgcm9vdE5TID0gZG9jRWxlbS5uYW1lc3BhY2VVUkk7Ci0KLSAgICAgIHJvb3ROYW1lID0g
ZG9jRWxlbS50YWdOYW1lOwotCi0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwot
bmV3RG9jID0gZG9tSW1wbC5jcmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5
cGUpOwotICAgICAgdGV4dCA9IG5ld0RvYy5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOwotICAgICAg
Y29tbWVudCA9IG5ld0RvYy5jcmVhdGVDb21tZW50KCJjb21tZW50Iik7Ci0gICAgICBjZGF0YSA9
IG5ld0RvYy5jcmVhdGVDREFUQVNlY3Rpb24oImNkYXRhIik7Ci0gICAgICBwaSA9IG5ld0RvYy5j
cmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInBpdCIsInBpZCIpOwotICAgICAgZW50cmVmID0g
bmV3RG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIAotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZFR4dCA9IG5ld0RvYy5y
ZW5hbWVOb2RlKHRleHQsImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwidGV4dCIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9TVVBQT1JURURfRVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZh
bHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZENvbW1lbnQgPSBuZXdEb2MucmVuYW1l
Tm9kZShjb21tZW50LCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNvbW1lbnQiKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19OT1RfU1VQUE9SVEVEX0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbmFtZWRDZGF0YSA9IG5ld0RvYy5yZW5hbWVO
b2RlKGNkYXRhLCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNkYXRhIik7Ci0gICAgICAg
IH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1
bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9U
X1NVUFBPUlRFRF9FUlJfMyIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7
Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW5hbWVkUGkgPSBuZXdEb2MucmVuYW1lTm9kZShwaSwi
aHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJwaSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJS
XzQiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAg
ICAgICAgICAgcmVuYW1lZEVudFJlZiA9IG5ld0RvYy5yZW5hbWVOb2RlKGVudHJlZiwiaHR0cDov
L3d3dy53My5vcmcvRE9NL1Rlc3QiLCJlbnRyZWYiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkg
ewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXgu
Y29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl81
IixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRv
Y3VtZW50cmVuYW1lbm9kZTI3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlNzgxMWI0MmRlMmM0NjdlNWEyYTYwZTE4MjkxZDJkMTA4
ZjgzYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LnhodG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9U
RVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFF
TlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwh
RU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAg
ICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5z
OnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJ
dGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVE
PgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3
dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2Nh
dGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRyZW5hbWVub2RlMjcuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIw
LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjIwLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzhl
NGU2NjQ2NmZiZGMxNDA3Njc1NTM4N2E5YTM1ZjBmMWVhOTZlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yMC54aHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/
PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmlj
dC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0
NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0
NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICIm
Izk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0
aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lT
VEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAn
cnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpu
bSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAg
PCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+
Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMg
aXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1M
U2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJD
b250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5o
Y19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnho
dG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5MDI0MzczOGY2MGEwODg0NjRkYWQ4NDgyN2VhNmMxNGViMDEzZjcxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNgot
U3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVs
bCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2U4YjNmYWU4ODc5YTBhMzRkZjAxYjY0NWRjMzc2MGFiZTAyNzMx
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkg
MjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5z
dGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3Ig
SW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdo
dHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBT
b2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5
cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVS
SSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmll
ciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVy
biAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEw
MDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMg
Y2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0
aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4
Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3Rh
cnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0
ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVu
IGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgp
IHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0g
ICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRp
b24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0K
LSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRv
Y1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAg
ICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVp
bGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlv
biBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0
cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBj
b21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93
cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVz
aW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIGNoZWNrIGlmIHRoZSBFbnRpdHlSZWZlcmVuY2Ug
bm9kZSBjb250YWlucyBhbmQgcHJlY2VkZXMgaXQncyBmaXJzdAotCWNoaWxkRWxlbWVudCwgYW5k
IHRoYXQgdGhlIGNoaWxkRWxlbWVudCBpcyBjb250YWluZWQgYW5kIGZvbGxvd3MgdGhlIEVudGl0
eVJlZmVyZW5jZSBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
NiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0g
ICAgICB2YXIgdmFyRWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hp
bGQxOwotICAgICAgdmFyIGVudFJlZlBvc2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBv
c2l0aW9uOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIAotCWlmKAotCShnZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5
UmVmZXJlbmNlcyIpID09IGZhbHNlKQotCSkgewotCXZhckxpc3QgPSBkb2MuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoInZhciIpOwotICAgICAgdmFyRWxlbSA9IHZhckxpc3QuaXRlbSgyKTsKLSAgICAg
IGFzc2VydE5vdE51bGwoInZhckVsZW1Ob3ROdWxsIix2YXJFbGVtKTsKLWVudFJlZiA9IHZhckVs
ZW0uZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmTm90TnVsbCIsZW50
UmVmKTsKLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICAKLQkJfQotCWVudFJlZkNoaWxkMSA9IGVudFJlZi5maXJz
dENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRS
ZWZDaGlsZDEpOwotZW50UmVmUG9zaXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50UG9zaXRp
b24oZW50UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uSXNDb250YWluZWRGb2xsb3dpbmcyNiIsMjAsZW50UmVmUG9zaXRpb24pOwotICAg
ICAgIGVudFJlZkNoaWxkMVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBv
c2l0aW9uKGVudFJlZik7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbkNvbnRhaW5zUFJFQ0VESU5HMjYiLDEwLGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAg
ICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYu
eGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MzNlMGQwNjU4YmJmYmY0ZmE1
MDgzZTBhMjM5NzMyYTQ0YzFlOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRt
bAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRt
bDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElU
WSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElU
WSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90
YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZp
bGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHht
bG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAot
ICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAg
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBz
cGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAg
ICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
Ci0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9k
eSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51
c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwv
c3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1
MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+
Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRB
W1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVu
dDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEg
cmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwv
Y29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9l
bT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQg
TWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20i
PgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0g
IDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7
IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0
aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpl
bXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25n
PlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2Rl
PgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08
L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MjliNGNkODA1OGEz
Yzc1Y2E4MTJiNDI1Mjc1YjM2ZjhlNDI5ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Ci1TdGF0dXMJZmFpbHVyZQot
TWVzc2FnZQllbnRSZWZDaGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvbjI3LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMWUxOWI3NjcwMmIzNGE5ODVlODI0ZjgxZWFjYWFmM2VlNGJlMGY2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcworKysgL2Rldi9udWxs
CkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQg
V2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5v
bG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQg
TWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhp
cyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2Ug
WzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0
cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0y
MDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmll
cyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAq
LwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWls
ZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRl
c3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgot
Ly8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNo
cm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNl
LCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0
aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJv
ZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdl
U3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVz
IHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAg
ICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgY29tcGFyZURvY3Vt
ZW50UG9zaXRpb24gdG8gY2hlY2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGNvbnRhaW5z
IGFuZCBwcmVjZWRlcyBpdCdzIGxhc3QKLQljaGlsZEVsZW1lbnQsIGFuZCB0aGF0IHRoaXMgY2hp
bGRFbGVtZW50IGlzIGNvbnRhaW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5UmVmZXJlbmNlIG5v
ZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9k
ZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6
YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IikgIT0gbnVsbCkg
cmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZhciB2YXJF
bGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0gICAgICB2
YXIgZW50UmVmUG9zaXRpb247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYo
Ci0JKGdldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIikg
PT0gZmFsc2UpCi0JKSB7Ci0JdmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidmFy
Iik7Ci0gICAgICB2YXJFbGVtID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAgYXNzZXJ0Tm90TnVs
bCgidmFyRWxlbU5vdE51bGwiLHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxlbS5maXJzdENoaWxk
OwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRSZWYpOwotCi0JfQot
CQotCQllbHNlIHsKLQkJCWVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQi
KTsKLSAgICAgIAotCQl9Ci0JZW50UmVmQ2hpbGQxID0gZW50UmVmLmxhc3RDaGlsZDsKLQotICAg
ICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQxKTsKLWVu
dFJlZlBvc2l0aW9uID0gZW50UmVmLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZkNoaWxk
MSk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbklzQ29u
dGFpbmVkRm9sbG93aW5nMjciLDIwLGVudFJlZlBvc2l0aW9uKTsKLSAgICAgICBlbnRSZWZDaGls
ZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWYp
OwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Db250YWlu
c1BSRUNFRElORyIsMTAsZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjco
KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMzFhYmUwMWJmOWJkODlkMWExZWFmNmVjYmMwMWIwOTNlNmVi
ZmIxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBb
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+
Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsi
PgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1
MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJ
U1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAg
ICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8
c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9z
cGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEg
I0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
Ny5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxl
dGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENv
bXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2Rl
PkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8
L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRB
U2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRB
W1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0
YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFs
bGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJv
Z2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgot
ICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0
PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVs
IERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywg
VGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cu
bmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9z
dHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAw
PC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9h
ZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNkMzI0OWQ4NGJiM2MyNjE2NzVlM2U0ZThjYWQz
NjI5OGEzZjg1YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjgKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJlZkNo
aWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjguanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMmIyOGU4M2MzMDU0
NGRhYWE4NDFmMTdmZDE1ZDdiOGRiYzUyZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgiOwotICAg
fQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0v
LwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsg
YmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVy
ZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAg
ICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8v
ICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRl
bHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4K
LS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmlu
Zyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBi
dWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVh
dGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAot
ICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAn
dW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAg
IGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
ICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0
Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBp
cyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMg
bG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9u
b3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0
dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3Qg
dG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiBjaGVj
ayB0aGUgZG9jdW1lbnQgcG9zaXRpb24gb2YgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGVudDQn
cwotCWZpcnN0IGNoaWxkIGFuZCBsYXN0IGNoaWxkLiAgSW52b2tlIGNvbXBhcmVEb2N1bWVudFBv
c2l0b24gb24gZmlyc3QgY2hpbGQgd2l0aCBsYXN0IGNoaWxkIGFzIGEgcGFyYW1ldGVyCi0Jc2hv
dWxkIHJldHVybiBGT0xMT1dJTkcsIGFuZCBzaG91bGQgcmV0dXJuIFBSRUNFRElORyB2aWNlIHZl
cnNhLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05v
ZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxp
emF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFy
RWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAg
dmFyIGVudFJlZkNoaWxkMjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsKLSAgICAg
IHZhciBlbnRSZWZDaGlsZDJQb3NpdGlvbjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkoZ2V0SW1wbGVtZW50YXRpb25BdHRy
aWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiKSA9PSBmYWxzZSkKLQkpIHsKLQl2YXJMaXN0
ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ2YXIiKTsKLSAgICAgIHZhckVsZW0gPSB2YXJM
aXN0Lml0ZW0oMik7Ci0gICAgICBhc3NlcnROb3ROdWxsKCJ2YXJFbGVtTm90TnVsbCIsdmFyRWxl
bSk7Ci1lbnRSZWYgPSB2YXJFbGVtLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwo
ImVudFJlZk5vdE51bGwiLGVudFJlZik7Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJZW50UmVmID0g
ZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgCi0JCX0KLQllbnRSZWZD
aGlsZDEgPSBlbnRSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVm
Q2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQxKTsKLWVudFJlZkNoaWxkMiA9IGVudFJlZi5sYXN0
Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJl
ZkNoaWxkMik7Ci1lbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9j
dW1lbnRQb3NpdGlvbihlbnRSZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb25Gb2xsb3dpbmcyOCIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7
Ci0gICAgICAgZW50UmVmQ2hpbGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3Vt
ZW50UG9zaXRpb24oZW50UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uUFJFQ0VESU5HMjgiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwot
ICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjgoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
OC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI1MDgyOWYxMmMyOTZiNjE5
NTZiODFmYzY2NjU4MmUzNjMyMjllYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBA
Ci08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBo
dG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInho
dG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5U
SVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5U
SVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwh
RU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJu
b3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24y
RmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAg
eG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1s
Ci0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAg
ICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNU
IHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVt
YmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAg
ICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5j
ZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxl
PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3Jp
cHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJjYTc4MTdjODE0
ODVlZWIxZmQ0YmU0Zjg1YmQxZWUyMTdmNDk2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkKLVN0YXR1cwlmYWlsdXJl
Ci1NZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjkuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGZkOWZkNDVmYTkxNWM0ZjUyYTBjMDg3N2ExNmI5NWVhN2EyZDg5MTkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTI4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3Js
ZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFu
ZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBU
aGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5z
ZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlm
aWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAg
ICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjkiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1
aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUg
dGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUu
Ci0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3lu
Y2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndp
c2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNl
cHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUg
Ym9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBh
Z2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0
ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0g
ICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9h
ZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0
Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwot
Ly8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAg
IGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBX
aGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8g
ICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAg
IGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlDcmVhdGUgdHdvIGVudGl0
eSByZWZlcmVuY2Ugbm9kZXMuIFVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHRvIGNoZWNr
IGlmIHRoZSBjaGlsZCBvZiB0aGUgZmlyc3QgRW50aXR5IAotCVJlZiBub2RlIHByZWNlZGVzIHRo
ZSBjaGlsZCBvZiB0aGUgc2Vjb25kIEVudGl0eSBSZWYgbm9kZSwgYW5kIHRoYXQgdGhlIGNoaWxk
IG9mIHRoZSBzZWNvbmQgRW50aXR5IFJlZiBub2RlCi0JZm9sbG93cyB0aGUgY2hpbGQgb2YgdGhl
IGZpcnN0IEVudGl0eSBSZWYgbm9kZS4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVu
bnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMt
Q29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVu
Y3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkoKSB7Ci0gICB2YXIgc3VjY2VzczsK
LSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yOSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRv
Y0VsZW07Ci0gICAgICB2YXIgZW50UmVmMTsKLSAgICAgIHZhciBlbnRSZWYyOwotICAgICAgdmFy
IGVudFJlZkNoaWxkMTsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDI7Ci0gICAgICB2YXIgZW50UmVm
Q2hpbGQxUG9zaXRpb247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQyUG9zaXRpb247Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbnRSZWYxID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50
NCIpOwotICAgICAgZW50UmVmMiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsK
LSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBhcHBlbmRlZENo
aWxkID0gZG9jRWxlbS5hcHBlbmRDaGlsZChlbnRSZWYxKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBkb2NFbGVtLmFwcGVuZENoaWxkKGVudFJlZjIpOwotICAgICAgZW50UmVmQ2hpbGQxID0gZW50
UmVmMS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3RO
dWxsIixlbnRSZWZDaGlsZDEpOwotZW50UmVmQ2hpbGQyID0gZW50UmVmMi5sYXN0Q2hpbGQ7Ci0K
LSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7
Ci1lbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3Np
dGlvbihlbnRSZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb25Gb2xsb3dpbmcyOSIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAg
ZW50UmVmQ2hpbGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRp
b24oZW50UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uUFJFQ0VESU5HMjkiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEzZDJhOWI3MjExZDRkZjYzNWM0NjViYjU5
NmQwNWJhOTEyYmIwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjkueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJp
Y3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEg
IiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRh
ICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFs
cGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFG
aWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0g
ICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1z
dGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAg
ICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0g
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElU
WSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVu
dCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1s
bnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+
Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1s
bnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAg
ICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0
YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNl
dD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yOS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9h
ZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+
Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBp
cyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4K
LTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVu
Y2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgot
ICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8
c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2Vy
PC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxl
bT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+
UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJf
OTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQu
IERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0
dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0
IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxz
dXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5v
cmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWdldGZlYXR1cmUwNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWdldGZlYXR1cmUwNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDI3YTk1YTFmNjJjZTE0NzQ4ZjM0NjA0MjA0YzczMjhiNzY5NDRiZWEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNAotU3RhdHVzCWVycm9yCi1NZXNz
YWdlCUxpbmUgMTAxOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGY5ZjVkMjBmNzdiZmI5ZGNhMGExMGU4MGUxZGY1NWViZmIyM2M0ZGEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwy
MDIgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0IjsKLSAgIH0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotQ2hlY2sgaW1wbGVtZW50YXRpb24gb2YgTm9kZS5nZXRGZWF0dXJlIG9u
IEVudGl0eVJlZmVyZW5jZS4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05v
ZGUzLWdldEZlYXR1cmUKLSovCi1mdW5jdGlvbiBub2RlZ2V0ZmVhdHVyZTA0KCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWdldGZl
YXR1cmUwNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5vZGU7
Ci0gICAgICB2YXIgbnVsbFZlcnNpb24gPSBudWxsOwotCi0gICAgICB2YXIgZmVhdHVyZUltcGw7
Ci0gICAgICB2YXIgaXNTdXBwb3J0ZWQ7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
YyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgZG9tSW1wbCA9IGRvYy5p
bXBsZW1lbnRhdGlvbjsKLW5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7
Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiQ29yZSIsbnVsbFZlcnNpb24p
OwotICAgICAgYXNzZXJ0U2FtZSgiY29yZVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJl
SW1wbCk7Ci1mZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsbnVsbFZlcnNpb24p
OwotICAgICAgYXNzZXJ0U2FtZSgiY09yRVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJl
SW1wbCk7Ci1mZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiK2NPckUiLG51bGxWZXJzaW9u
KTsKLSAgICAgIGFzc2VydFNhbWUoIlBsdXNDb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZl
YXR1cmVJbXBsKTsKLWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJvcmcudzNjLmRvbXRz
LmJvZ3VzLmZlYXR1cmUiLG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2VydE51bGwoInVucmVjb2du
aXplZEZlYXR1cmUiLGZlYXR1cmVJbXBsKTsKLSAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVh
dHVyZSgiY09yRSIsIjIuMCIpOwotICAgICAgYXNzZXJ0U2FtZSgiQ29yZTIwIixub2RlLGZlYXR1
cmVJbXBsKTsKLWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIiwiMy4wIik7Ci0g
ICAgICBhc3NlcnRTYW1lKCJDb3JlMzAiLG5vZGUsZmVhdHVyZUltcGwpOwotaXNTdXBwb3J0ZWQg
PSBub2RlLmlzU3VwcG9ydGVkKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBs
ID0gbm9kZS5nZXRGZWF0dXJlKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlz
U3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiWE1MVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVy
ZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiU1ZHIixudWxs
VmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZHIixudWxs
VmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUo
IlNWR1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9
IG5vZGUuaXNTdXBwb3J0ZWQoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBs
ID0gbm9kZS5nZXRGZWF0dXJlKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlp
c1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIkhUTUxVbnNwZWNpZmllZCIsbm9kZSxmZWF0
dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJFdmVudHMi
LG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJFdmVu
dHMiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNz
ZXJ0U2FtZSgiRXZlbnRzVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlz
U3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiTFMiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZl
YXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJMUyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0J
aWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJMU1Vuc3BlY2lmaWVkIixub2Rl
LGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkxT
LUFzeW5jIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVy
ZSgiTFMtQXN5bmMiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0J
KSB7Ci0JYXNzZXJ0U2FtZSgiTFNBc3luY1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsK
LQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIlhQYXRoIixudWxsVmVyc2lv
bik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiWFBhdGgiLG51bGxWZXJz
aW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiWFBh
dGhVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBu
b2RlLmlzU3VwcG9ydGVkKCIrSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwg
PSBub2RlLmdldEZlYXR1cmUoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlz
U3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0Tm90TnVsbCgiUGx1c0hUTUxVbnNwZWNpZmllZCIsZmVh
dHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiK1NWRyIs
bnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIlNWRyIs
bnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRO
b3ROdWxsKCJQbHVzU1ZHVW5zcGVjaWZpZWQiLGZlYXR1cmVJbXBsKTsKLQotCX0KLQkKLX0KLQot
Ci0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXRmZWF0dXJlMDQoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVy
ZTA0LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0
dXJlMDQueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZDg1YzUzYzM4MjNi
YjgxMWIxZTc0OTMzOWE1NTczYjI1NzA0NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXRmZWF0dXJlMDQueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbCBbCi08IUVOVElUWSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50MiAnZm9vPGJyLz4n
PgotPCFFTEVNRU5UIGh0bWwgKGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0bWwgeG1sbnMgQ0RB
VEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+Ci08IUVMRU1FTlQg
c2NyaXB0ICgjUENEQVRBKT4KLTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNyYyBDREFUQSAjSU1Q
TElFRAotICAgICB0eXBlIENEQVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJ
RUQ+Ci08IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJvZHkgKHApPgotPCFB
VFRMSVNUIGJvZHkgb25sb2FkIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHAgKCNQQ0RBVEF8
YnIpKj4KLTwhRUxFTUVOVCBiciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hvbGVUZXh0IHNhbXBs
ZTwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdzZWxmeGh0bWwu
anMnPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3RleHQvamF2YXNjcmlw
dCcgc3JjPSdub2RlZ2V0ZmVhdHVyZTA0LmpzJz48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQv
amF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2Ny
aXB0PjwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotPHA+YmFyPC9wPgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljNWMyOWNkZDk5N2JhZTkxYmMwYzVhYjc5NDA1
YjgwMTI2ODMzY2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE1Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJTGluZSAxMjE6IFR5cGVFcnJvcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVu
dDE1LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTQ2N2EzYmM0MTYyMGQz
OTBlYzdkNGQ1ZDkyMjhiODg0MGM5MGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0
dGV4dGNvbnRlbnQxNS5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0
cnVlKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVm
ZXJlbmNlcyIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQlUaGUgbWV0aG9kIGdldFRleHRDb250ZW50IHJldHVybnMgdGhlIHRl
eHQgY29udGVudCBvZiB0aGlzIG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJbnZva2Ug
dGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbGVtZW50IG5vZGUgd2l0aCBuZXcg
VGV4dCwgRW50aXR5UmVmZXJlbmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29tbWVudCBu
b2RlcyBhbmQgY2hlY2sgaWYgdGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAotCWNvbmNh
dGVuYXRlZCBTdHJpbmcgd2l0aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBh
dXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1E
T00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5j
dGlvbiBub2RlZ2V0dGV4dGNvbnRlbnQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE1IikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciB0eHQ7
Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7
Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5k
ZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvRE9N
L1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4
dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAg
ICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIHBp
ID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAg
ICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBl
bGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxk
KHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAg
ICAgIHRleHRDb250ZW50ID0gZWxlbS50ZXh0Q29udGVudDsKLQotICAgICAgZG9jLm5vcm1hbGl6
ZURvY3VtZW50KCk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVudDE1Iiwi
VGV4dCDOskNEYXRhIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICBub2RlZ2V0dGV4dGNvbnRlbnQxNSgpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1Lnho
dG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVu
dDE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmQzNmNiYTNjM2RhMDkw
Y2JhZDc3NDdkMGU4OTFjNWYyNGI2OTQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0
dGV4dGNvbnRlbnQxNS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAg
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0
cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0
YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVs
dGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9u
MUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4K
LSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpk
bXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAg
ICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255
bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5U
SVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVt
ZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4
bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4t
LT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4
bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNf
c3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFy
c2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVnZXR0ZXh0Y29udGVu
dDE1LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2Fk
Q29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNv
ZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RB
VEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RB
VEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBh
IHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+
MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBE
YWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+
Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+
Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAw
MDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25u
ZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFz
LCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3
dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8
L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCww
MDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBS
b2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4
dGNvbnRlbnQxNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWdldHRleHRjb250ZW50MTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjYjQxNDRkMDVmZjA4ZDcyZThlOTg0YWExMTMxNTQ4NjRiODExYTRiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNgotU3RhdHVzCWVy
cm9yCi1NZXNzYWdlCUxpbmUgMTIzOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQxZjdjODQxOWU4ZDExNTY0MjA4ODQ5NTg4NjhmYWFk
NjE1NWQ5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAw
MS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0
dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5m
b3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMg
UmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0
d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmln
aHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0
aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBv
ZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAi
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0
dGV4dGNvbnRlbnQxNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIg
YnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRo
ZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0
ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFz
eW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVy
d2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4
Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRo
ZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVw
UGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3Jl
YXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8K
LSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1w
bGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAgICAgc2V0
SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0cnVlKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0J
VGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCByZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhp
cyBub2RlIGFuZCBpdHMgZGVzY2VuZGFudHMuCi0JCi0JSW52b2tlIHRoZSBtZXRob2QgZ2V0VGV4
dENvbnRlbnQgb24gYSBuZXcgRG9jdW1lbnRGcmFnbWVudCBub2RlIHdpdGggbmV3IFRleHQsIEVu
dGl0eVJlZmVyZW5jZXMgIAotCUNEQVRBU2VjdGlvbiwgUEkgYW5kIENvbW1lbnQgbm9kZXMgYW5k
IGNoZWNrIGlmIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhIHNpbmdsZSAKLQljb25jYXRlbmF0ZWQg
U3RyaW5nIHdpdGggaXRzIGNvbnRlbnQuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5l
aWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVs
LTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9k
ZWdldHRleHRjb250ZW50MTYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRp
YWxpemF0aW9uKGJ1aWxkZXIsICJub2RlZ2V0dGV4dGNvbnRlbnQxNiIpICE9IG51bGwpIHJldHVy
bjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxlbTsKLSAg
ICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0g
ICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBpOwotICAgICAg
dmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Mg
PSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5j
cmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnRO
UygiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAgIHR4dCA9
IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRl
Q29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZl
cmVuY2UoImJldGEiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlv
bigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9u
KCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsK
LSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVt
LmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVu
ZENoaWxkKGVsZW0pOwotICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0gICAgICB0ZXh0
Q29udGVudCA9IGRvY0ZyYWcudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZWdldHRleHRjb250ZW50MTYiLCJUZXh0IM6yQ0RhdGEiLHRleHRDb250ZW50KTsKLSAgICAgICAK
LX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE2
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWdldHRleHRjb250ZW50MTYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWdldHRleHRjb250ZW50MTYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGRmZWZjMTVlYjRlZjAxZmIzZmVkMWNiZDg1ODY0ZTQ1NTkxZDFjZjkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LnhodG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+
Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0
Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1
OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3
OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYj
OTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNU
RU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdy
dGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5t
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElF
RAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4K
LSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4K
LSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBp
cyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxT
Y2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhj
X3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0
bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ibm9kZWdldHRleHRjb250ZW50MTYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2YmViMzI3ZDgwZGVmMmM5NzllYjQ5MTFm
YjM3NzcxMDMzMzIyY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVu
dDE3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlub2RlZ2V0dGV4dGNvbnRlbnQxNzog
YXNzZXJ0RXF1YWxzIGZhaWxlZCwgYWN0dWFsICwgZXhwZWN0ZWQgzrIuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyNGJhNjAxYTkxZmU1MTU4YThiMTMy
N2M4MzMyMzhjZmI5YTU4NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZWdldHRleHRjb250ZW50MTciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZv
a2UgdGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZSBhbmQgY2hlY2sgaWYgdGhlIAotCXZhbHVlIHJldHVybmVkIGlzIHRoZSBFbnRpdHlSZWZlcmVu
Y2UncyBjb250ZW50LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQw
NDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4dGNvbnRl
bnQxNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBk
b2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENv
bnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVu
dDsKLQotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwot
ICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIHRl
eHRDb250ZW50ID0gZW50UmVmLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5v
ZGVnZXR0ZXh0Y29udGVudDE3IiwizrIiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE3KCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdl
dHRleHRjb250ZW50MTcueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3OWMy
MmM0ZDFlNTg0ZGEwZGFmOWU4MzZkYzQ1YzFhNjM0Mzk0ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZ
UEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAg
ICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8
IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8
IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJ
QyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0
aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAg
ICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
aHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAg
ICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRU
TElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
Ci0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5z
dGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdl
dHRleHRjb250ZW50MTcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBv
bmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2Eu
Y29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ry
b25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1Ro
aXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7
XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVm
ZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29k
ZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4K
LSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFu
YWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgot
ICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxj
b2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBp
ZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBS
b2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAy
PSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJv
YmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgot
ICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgy
MSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2Jv
ZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVpbnNlcnRiZWZvcmUxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMzk3ZmE4MzEwZDM3ZGVlMDEwYmU1YzQ5MTc5MDY2NTE3ZThiMzFl
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMQotU3RhdHVz
CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlaW5zZXJ0YmVmb3JlMTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWluc2VydGJlZm9yZTExLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGE4
YjllYzJjMjA0MGRiMTgyZDExYjZjMWRjODlkZmQ4MjQ1NDQyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBA
QAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRp
dW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJl
c2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlv
IFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmli
dXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0Nv
bnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQot
Ci0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAg
KiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRh
cmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEiOwotICAgfQotCi12YXIgZG9j
c0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlz
IGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAg
ICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29u
ZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBs
b2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBz
ZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAg
ICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlv
biBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkg
ewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkg
dGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVk
QnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQg
Kz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAg
aWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXph
dGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24g
dGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVk
IGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBk
b2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdl
ZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0
ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LS8qKgotKiAKLQotCi0KLQlVc2luZyBpbnNlcnRCZWZvcmUgb24gYSBEb2N1bWVudEZyYWdtZW50
IG5vZGUgYXR0ZW1wdCB0byBpbnNlcnQgYSBjaGlsZCBub2RlcyBiZWZvcmUKLQlvdGhlciBwZXJt
aXNzaWJsZSBub2RlcyBhbmQgdmVyaWZ5IHRoZSBjb250ZW50cy9uYW1lIG9mIGVhY2ggaW5zZXJ0
ZWQgbm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUxMSgpIHsKLSAg
IHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVp
bnNlcnRiZWZvcmUxMSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFy
IGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBjb21t
ZW50OwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBlUmVmOwot
ICAgICAgdmFyIGluc2VydGVkOwotICAgICAgdmFyIGluc2VydGVkVmFsOwotICAgICAgdmFyIGFw
cGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYg
KHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhp
cy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAg
ICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCIsImJvZHkiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigi
UElUYXJnZXQiLCJQSURhdGEiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgi
Q29tbWVudCIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAg
ICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBIik7Ci0gICAgICBlUmVmID0g
ZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBkb2NGcmFnLmFwcGVuZENoaWxkKGVsZW0pOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0Zy
YWcuYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5k
Q2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGls
ZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY2RhdGEp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZVJlZik7Ci0gICAg
ICBpbnNlcnRlZCA9IGRvY0ZyYWcuaW5zZXJ0QmVmb3JlKGNvbW1lbnQscGkpOwotICAgICAgaW5z
ZXJ0ZWRWYWwgPSBpbnNlcnRlZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNl
cnRiZWZvcmUxMV9Db21tZW50IiwiQ29tbWVudCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2Vy
dGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUodHh0LGNvbW1lbnQpOwotICAgICAgaW5zZXJ0ZWRW
YWwgPSBpbnNlcnRlZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZv
cmUxMV9UZXh0IiwiVGV4dCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJh
Zy5pbnNlcnRCZWZvcmUoY2RhdGEsdHh0KTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5zZXJ0ZWQu
ZGF0YTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfQ0RBVEEiLCJD
REFUQSIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZv
cmUoZVJlZixjZGF0YSk7Ci0gICAgICBpbnNlcnRlZFZhbCA9IGluc2VydGVkLm5vZGVOYW1lOwot
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9FbnQxIiwiYWxwaGEiLGlu
c2VydGVkVmFsKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
IG5vZGVpbnNlcnRiZWZvcmUxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDFhNGFhNjgzNzM4NWUwMDAzMzNkNmJjNWM0ODExODY3OTQ2YWQ1
ZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAg
IGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdl
dCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Im5vZGVpbnNlcnRiZWZvcmUxMS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4
dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9z
Y3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+
TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxz
dXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBE
YWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBS
YXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVy
ZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RB
VEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAg
PGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4K
LSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAg
PGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAg
PHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0i
Xzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2
aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93
d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9j
b25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3Vw
Pjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAw
NTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVy
IFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9h
Y3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQyZjNlNjM1NDc1MDdlZTVk
YTJkZjM2ZWVkMTViNGNjMmZkNTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0
YmVmb3JlMTUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWlu
c2VydGJlZm9yZTE1Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcyBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDdmMzcxNmVhMTlkNGFmNzE3ZGI2NGExYjA2MzVlNDU5NTkwNWUzZTQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDE3NyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29y
bGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVj
aG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBh
bmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4g
VGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vu
c2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2Fy
ZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRp
ZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAg
ICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUx
NSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51
bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZy
YW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAg
IElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwot
Ly8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0
YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBp
bW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRo
ZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9
ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRv
Y3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRl
ciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewot
ICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMg
bWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3lj
aHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkg
c3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBw
YWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0
aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBp
ZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSIGlzIHJhaXNlZCBpZiB0aGUgbm9kZSBpcyByZWFkLW9ubHkuCi0JCi0JVXNpbmcgaW5zZXJ0
QmVmb3JlIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gaW5zZXJ0IEVs
ZW1lbnQsIFRleHQsCi0JQ29tbWVudCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZCBDREFUQVNl
Y3Rpb24gbm9kZXMgYmVmb3JlIGFuIGVsZW1lbnQgY2hpbGQKLQlhbmQgdmVyaWZ5IGlmIGEgTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1bmN0aW9u
IG5vZGVpbnNlcnRiZWZvcmUxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5p
dGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxNSIpICE9IG51bGwpIHJldHVy
bjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7
Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgY29tbWVudDsKLSAg
ICAgIHZhciBwaTsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBpbnNlcnRlZDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbnRSZWYg
PSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZWxlbUNoaWxkID0g
ZW50UmVmLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlv
bigiQ0RBVEFTZWN0aW9uIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjZGF0YSxlbGVt
Q2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVv
ZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2Vy
dFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9
Ci1waSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsK
LSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5z
ZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKHBpLGVsZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJ
Y2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmlu
ZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0KLWNvbW1lbnQgPSBkb2MuY3JlYXRl
Q29tbWVudCgiQ29tbWVudCIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoY29tbWVudCxl
bGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsK
LQl9Ci10eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIAotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5z
ZXJ0QmVmb3JlKHR4dCxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAg
ICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09
IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
Ul80IixzdWNjZXNzKTsKLQl9Ci1lbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCIsImJvZHkiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZh
bHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3Jl
KGVsZW0sZWxlbUNoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2Vz
cyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJ
fQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNSIsc3Vj
Y2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlaW5z
ZXJ0YmVmb3JlMTUoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2ZjBkMDBiOWNhMTYzNzFlZmMwMmY4ZTQwMWViNDVkODU3ZjQxZGMxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElE
QVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAi
JiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxv
biAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24y
IFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RB
VEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1s
bnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4K
LSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJ
TVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRh
Pz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBU
aGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0
bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNl
bGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJub2RlaW5zZXJ0YmVmb3JlMTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0
IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBU
ZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMK
LTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVt
YmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlv
biB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNl
Y3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5F
TVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRl
cGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVu
dDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4
YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2
aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9z
dHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgot
ICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFs
aXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4K
LSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMGUxNzU0ZjdhOTJjZmVlODk0MTkyOGI0ZWY2
YjE3YjlhNzdmMWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEy
Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0ZTE4YTIyNzFlOGFjOWU4NjliYzFmOWFmNWQxNzExNjM3ODk4Yjg1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyIjsKLSAgIH0KLQotdmFy
IGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAg
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQot
Ly8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5v
IGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1l
bnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAg
aXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAg
ICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVu
Y3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAg
dHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwg
bWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmln
dXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNw
YWNlQXdhcmUiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCByZW1vdmVDaGlsZCByZW1vdmVzIHRoZSBjaGls
ZCBub2RlIGluZGljYXRlZCBieSBvbGRDaGlsZCBmcm9tIHRoZSBsaXN0IAotCW9mIGNoaWxkcmVu
LCBhbmQgcmV0dXJucyBpdC4gCi0KLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBEb2N1bWVu
dEZyYWdtZW50IG5vZGUgYXR0ZW1wdCB0byByZW1vdmUgYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5v
ZGUuCi0gICAgICAgIEFsc28gYXR0ZW1wdCB0byByZW1vdmUgdGhlIGRvY3VtZW50IGZyYWdtZW50
IG5vZGUgZnJvbSB0aGUgRW50aXR5UmVmZXJlbmNlLiAgVmVyaWZ5IHRoYXQgYSAKLSAgICAgICAg
Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIChFbnRpdHlSZWZlcmVuY2Ugbm9kZSBpcyByZWFk
LW9ubHkpIG9yIGEgTk9UX0ZPVU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSog
QGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVD
LURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rp
b24gbm9kZXJlbW92ZWNoaWxkMTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0lu
aXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxMiIpICE9IG51bGwpIHJldHVy
bjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZVJlZjsKLSAg
ICAgIHZhciByZW1vdmVkRVJlZjsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFy
IHJlbW92ZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAg
ICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhcHBl
bmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92ZWRDaGls
ZCA9IGRvY0ZyYWcucmVtb3ZlQ2hpbGQoZVJlZik7Ci0gICAgICByZW1vdmVkRVJlZiA9IGRvY0Zy
YWcuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0TnVsbCgibm9kZXJlbW92ZWNoaWxkMTIiLHJl
bW92ZWRFUmVmKTsKLSAgICAKLSAgICAgIHRyeSB7Ci0gICAgICByZW1vdmVkQ2hpbGQgPSBlUmVm
LnJlbW92ZUNoaWxkKGRvY0ZyYWcpOwotICAgICAgCi0gICAgICB9IGNhdGNoIChleCkgewotCQkg
IGlmICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcpIHsgICAgICAKLSAgICAgICBzd2l0
Y2goZXguY29kZSkgewotICAgICAgIGNhc2UgLyogTk9UX0ZPVU5EX0VSUiAqLyA4IDoKLSAgICAg
ICBicmVhazsKLSAgICAgIGNhc2UgLyogTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSICovIDcg
OgotICAgICAgIGJyZWFrOwotICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgdGhyb3cgZXg7
Ci0gICAgICAgICAgfQotICAgICAgIH0gZWxzZSB7IAotICAgICAgIHRocm93IGV4OwotICAgICAg
ICB9Ci0gICAgICAgICB9Ci0gICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgbm9kZXJlbW92ZWNoaWxkMTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzM2ZWQ5MmYwM2JhNTRhZWM4MjdkYjc4NGY2MDU2ZDkyMzQ5
NDk0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1Qt
U1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhI
VE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElU
WSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJ
VFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04g
bm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAg
ICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNp
IENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJn
ZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1d
PgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEg
aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRG
LTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4
dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9z
Y3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+
TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxz
dXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBE
YWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBS
YXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVy
ZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RB
VEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAg
PGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4K
LSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAg
PGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAg
PHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0i
Xzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2
aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93
d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9j
b25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3Vw
Pjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAw
NTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVy
IFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9h
Y3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZlNTZhNmM2YTA2MzIwMDg2NTE1
MGZkZTg4YzgzZjk0ZjUyYTRhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNo
aWxkMTMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92
ZWNoaWxkMTMKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXR4dE5vdE51bGw6IGFzc2VydE5vdE51
bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjODBm
ZmI0YTY1MmQ5MDJkYTJkMmRmZjUxNzY4NjdmZTk2MmYzZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZW1vdmVjaGlsZDEzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAK
LQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVt
LCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNl
YXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBV
bml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25z
b3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQot
ICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICog
IEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJn
ZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMiOwotICAgfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0g
cHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYg
KGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlv
bkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhl
IGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGlu
IHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1
bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3
aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQu
Ci1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8q
KgotKiAKLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBh
dHRlbXB0IHRvIHJlbW92ZSB0aGUgZmlyc3QgY2hpbGQgCi0Jb2YgdGhpcyBub2RlIGFuZCB2ZXJp
ZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRo
b3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2Ngot
Ki8KLWZ1bmN0aW9uIG5vZGVyZW1vdmVjaGlsZDEzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTMiKSAhPSBu
dWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZVJl
ZjsKLSAgICAgIHZhciByZW1vdmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJh
bHBoYSIpOwotICAgICAgdHh0ID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3RO
dWxsKCJ0eHROb3ROdWxsIix0eHQpOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7
Ci0gICAgICAgICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZCh0eHQpOwotICAgICAgICB9
Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5k
ZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hpbGQxMygpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1s
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTMxN2E0NjNlMTllOTZkOWMxMjU0
Njc5ZmI1NzVlN2I5ZmMwNTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249
IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAi
LS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQi
IFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7
Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4
OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRU
TElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAg
ICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQg
IjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8
L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFU
QSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1s
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNk
Ij48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEzLmpzIi8+PHNj
cmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3Rh
cnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdp
dGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBh
biBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11d
Pjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1t
YTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
bmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25l
czwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAw
LDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1
NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcg
VGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNo
aWxkMTQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjM1YmY0
ZGZkYjAwZTI1ZTA4MThiMTZkMGQwY2FhNTg5NWY3OTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlcmVtb3ZlY2hpbGQxNAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcGlOb3ROdWxs
OiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwM2Q1YTE5MzNlZTk3NjVhMjljNTc1YmNiNWYwZjU5ZGQxYWZlZWExLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEyMiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0IjsKLSAgIH0K
LQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8K
LS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJl
Zm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUg
YXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAg
ZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAg
ICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5
Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0v
LwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcn
OwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVp
bGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRl
Q29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAg
IAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNo
SW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxv
YWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91
cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVz
IGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRv
IGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVm
ZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byByZW1vdmUgaXRzIGxhc3QgUHJvY2Vzc2luZ0luc3RydWN0
aW9uIAotCWNoaWxkIG5vZGUgYW5kIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAw
NDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxkMTQo
KSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIs
ICJub2RlcmVtb3ZlY2hpbGQxNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIHJlbW92ZWQ7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZh
ciBlbnROYW1lOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAg
ICBwaSA9IGVSZWYubGFzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJwaU5vdE51bGwi
LHBpKTsKLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVt
b3ZlZCA9IGVSZWYucmVtb3ZlQ2hpbGQocGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0g
ICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2Rl
ID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBub2RlcmVtb3ZlY2hpbGQxNCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDg0ZjdkNzQ1ZWZkMjdjNDZlZDg1NzVmNjc3ZDgyZjA4NzY0MzZl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlM
RSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFs
cGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdh
bW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBl
cHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRp
ciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQ
SWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIv
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDE0LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2ph
dmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Njcmlw
dD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJn
YXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41
NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxh
cywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5v
bGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNl
IG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNl
Y3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29k
ZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1
NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcs
IHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5h
bHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5v
cjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9l
bT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3Bl
Y2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9u
eW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDJlMGMyYmE4YmY4ZWNhNjFhODUyZjk1
NmYwYzgxZDViYjhjOTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQx
NS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxNQotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZWxlbU5vdE51bGw6IGFzc2VydE5vdE51bGwg
ZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlbW92ZWNoaWxkMTUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlbW92ZWNoaWxkMTUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzYjNmN2Nj
OGUwODExYmI4MGIzZTdiNGNhOTkwNDlkZDA5NWM3ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDE1LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLQot
LyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAK
LShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJj
aCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2
ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0
aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAg
LyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEBy
ZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRV
UkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUiOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRl
bXB0IHRvIHJlbW92ZSBhbiBFbGVtZW50IGNoaWxkIAotCWFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLiAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0
aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9N
LUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlvbiBu
b2RlcmVtb3ZlY2hpbGQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlh
bGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZW1vdmVjaGlsZDE1IikgIT0gbnVsbCkgcmV0dXJuOwot
ICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFy
IGVudE5hbWU7Ci0gICAgICB2YXIgcmVtb3ZlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgiZW50NCIpOwotICAgICAgZWxlbSA9IGVSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNz
ZXJ0Tm90TnVsbCgiZWxlbU5vdE51bGwiLGVsZW0pOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7
Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZChlbGVtKTsK
LSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29k
ZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0
aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTUoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxNS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE0ODYyN2E1YzEx
YmUyNjdlMGRjYTM0ZDA1OGI4NGRiOTA1MmM1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlbW92ZWNoaWxkMTUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0g
ICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1z
dHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJl
dGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRl
bHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZ
IGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlv
bjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+
Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6
ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAg
ICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAg
ICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9u
eW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVO
VElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxl
bWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4g
eG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEu
LS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAg
eG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhj
X3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hh
cnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQx
NS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxl
dGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENv
bXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2Rl
PkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8
L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRB
U2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRB
W1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0
YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFs
bGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJv
Z2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgot
ICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0
PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVs
IERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywg
VGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cu
bmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9z
dHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAw
PC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9h
ZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDE4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzZDlmODQxODhkZjFhMDFkOTRlMDNiYzUyNDc2NzUxYjMyOTEyMTVkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4Ci1TdGF0dXMJU3VjY2VzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQxOC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMTguanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMGI2NzJiYzQ4ZDlhN2M1
NjA5YzY2ZjY4ZmI5YzBjMWE5MjI0OGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQxOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0KLS8qCi1Db3B5
cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2Fj
aHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29y
dGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSku
IEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUg
aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdh
bC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAg
ICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVy
aSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewot
ICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEw
MDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMg
Y2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0
aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4
Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3Rh
cnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0
ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVu
IGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgp
IHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0g
ICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRp
b24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0K
LSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRv
Y1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAg
ICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVp
bGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlv
biBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0
cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBj
b21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93
cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVz
aW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRvIHJl
cGxhY2UgYSBDREFUQVNlY3Rpb24gbm9kZSB3aXRoIAotCWEgRW50aXR5UmVmZXJlbmNlIGFuZCB2
aWNlIHZlcnNhIHZlcmlmeSB0aGUgZGF0YSBvZiB0aGUgcmVwbGFjZWQgbm9kZXMuCi0KLSogQGF1
dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcK
LSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMTgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMTgiKSAh
PSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAg
dmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciByZXBsYWNlZENEYXRhOwot
ICAgICAgdmFyIHJlcGxhY2VkRXJlZjsKLSAgICAgIHZhciBjZGF0YU5hbWU7Ci0gICAgICB2YXIg
ZXJlZk5hbWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigi
Q0RBVEFTZWN0aW9uIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJhbHBoYSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZW50
UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNkYXRhKTsK
LSAgICAgIHJlcGxhY2VkQ0RhdGEgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChlbnRSZWYsY2RhdGEp
OwotICAgICAgY2RhdGFOYW1lID0gcmVwbGFjZWRDRGF0YS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFz
c2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE4XzEiLCJDREFUQVNlY3Rpb24iLGNkYXRhTmFt
ZSk7Ci0gICAgICAgcmVwbGFjZWRFcmVmID0gZG9jRnJhZy5yZXBsYWNlQ2hpbGQoY2RhdGEsZW50
UmVmKTsKLSAgICAgIGVyZWZOYW1lID0gcmVwbGFjZWRFcmVmLm5vZGVOYW1lOwotCi0gICAgICBh
c3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQxOF8yIiwiYWxwaGEiLGVyZWZOYW1lKTsKLSAg
ICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hp
bGQxOCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQxOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMTgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFkNzY3YjllYWY4NGUyYWNlZDMxY2E1OWNmYTM5MTQzNmQzYzJlM2EuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/Pgot
PCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8v
RU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsi
PgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0Nzsi
PgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0
OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVN
ICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRs
JwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0g
ICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMg
Y29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
ZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Im5vZGVyZXBsYWNlY2hpbGQxOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGEyZDM2MWU5MTA2ZDRkMWQ4MGU1MTJiY2RlYzU4MGIz
YjBlNzQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5Ci1T
dGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQxOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMTkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRiOWExN2RmOTdmNDNkMDM1MmYzYmQ4YWQxYzVjOTM0MDhmMzViMWUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS5qcworKysgL2Rldi9udWxsCkBAIC0xLDExOCAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOSI7Ci0gICB9Ci0KLXZh
ciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAg
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUK
LS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBu
byBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3Vt
ZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAg
IGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8g
ICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1
bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAg
IHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIs
IG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZp
Z3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJhZ21lbnQg
bm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYW4gRWxlbWVudCBub2RlIHdpdGggCi0JaXRzIEVudGl0
eVJlZmVyZW5jZSBjaGlsZCB2ZXJpZnkgdGhlIG5vZGVOYW1lIG9mIHRoZSByZXBsYWNlZCBub2Rl
LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQt
Nzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDE5KCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2Vj
aGlsZDE5IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJh
ZzsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciByZXBsYWNl
ZDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcg
PSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVF
bGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAg
IGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBhcHBl
bmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGls
ZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICByZXBsYWNlZCA9IGRvY0ZyYWcu
cmVwbGFjZUNoaWxkKGVudFJlZixlbGVtKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9k
ZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE5IiwiZG9tMzpw
Iixub2RlTmFtZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBub2RlcmVwbGFjZWNoaWxkMTkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMjViMmNiM2IzYmU3MGVkNzk0YmUxZjAyMDMwYjM2ZDE5MzQ3
M2U3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1Qt
U1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhI
VE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElU
WSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJ
VFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04g
bm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAg
ICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNp
IENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJn
ZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1d
PgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEg
aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRG
LTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMTkuanMiLz48c2NyaXB0IHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwv
c2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25n
Pk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8
c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4g
RGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEg
UmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZl
cmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENE
QVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0g
IDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+
Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0g
IDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0g
IDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9
Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IEly
dmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8v
d3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBP
Y29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1
cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAw
MDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRl
ciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwv
YWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxZGFmMmZlZjM1ZWRiMzcz
OTVmNDQ5NzNjODgxNTUyMjZiYjdiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDIyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQyMgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmZDNmNDIzZjczNWYzZjFiMjVjYTVlNGNiMzYwODI1NjMwM2E3NDVh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwxNDUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdv
cmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRl
Y2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3Mg
YW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQu
IFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNl
bnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFd
IGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdh
cmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50
aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0g
ICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3
dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MjIiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBu
dWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBm
cmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8g
ICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMK
LS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBz
dGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMg
aW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0
aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMg
PSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBk
b2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxk
ZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBu
ZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGFuIEVudGl0eVJlZmVy
ZW5jZSBub2RlIHdpdGggCi0JaXRzIEVsZW1lbnQgcGFyZW50LCB3aXRoIGl0c2VsZiBhbmQgdmlj
ZSB2ZXJzYSB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3du
LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQt
Nzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIyKCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2Vj
aGlsZDIyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVm
TWFpbjsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBhcHBl
bmRlZENoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVu
dFJlZk1haW4gPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9
IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWRDaGlsZCA9IGVudFJlZk1haW4u
cmVwbGFjZUNoaWxkKGVsZW0sZW50UmVmKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAg
ICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9
PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9F
UlJfMSIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0g
ICAgICAgICAgICByZXBsYWNlZENoaWxkID0gZW50UmVmTWFpbi5yZXBsYWNlQ2hpbGQoZW50UmVm
LGVsZW0pOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVv
ZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2Vy
dFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8yIixzdWNjZXNzKTsKLQl9
Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2Vk
Q2hpbGQgPSBlbnRSZWZNYWluLnJlcGxhY2VDaGlsZChlbnRSZWZNYWluLGVudFJlZik7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDIyKCk7Ci19CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDIyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQyMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YzMjU0ZTJjYWJh
MzJiYjQwNTNkNzQ2NDljYzlmYTgzMDFhZWQwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDIyLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAot
ICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEt
c3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBi
ZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBk
ZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRp
b24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUi
PgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5z
OmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAg
ICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jv
bnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFF
TlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVs
ZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFu
IHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAx
Li0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAg
IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0g
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBo
Y19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNo
YXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGls
ZDIyLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2Fk
Q29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNv
ZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RB
VEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RB
VEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBh
IHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+
MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBE
YWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+
Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+
Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAw
MDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25u
ZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFz
LCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3
dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8
L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCww
MDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBS
b2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQxOGI3N2IzOGUzYmMxYzM3YWJhZjY2ZGNhZWFjMGQ5NGFlYjQ5ZjkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMKLVN0YXR1cwlTdWNjZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDIzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQyMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMzMWFmYzlkYzdlNTQw
M2E4NWNmNDc1NGQ4NmJmYzRlZDJlNmExOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAt
MTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5n
IHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24g
ZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBz
dGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBs
ZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdo
ZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdl
KCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8K
LSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2Vw
dGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0J
VXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQg
dG8gcmVwbGFjZSBhbiBFbGVtZW50LCBUZXh0LAotCUNvbW1lbnQsIFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiBhbmQgQ0RBVEFTZWN0aW9uIG5vZGVzIHdpdGggZWFjaCBvdGhlciBhbmQgaW4gZWFjaCBj
YXNlCi0JdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4K
LQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4
NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQyMygpIHsKLSAgIHZhciBzdWNj
ZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hp
bGQyMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJlZjsK
LSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50OwotICAg
ICAgdmFyIHBpOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAg
dmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUo
IlRleHQiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwot
ICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAg
ICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAg
IGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENo
aWxkID0gZWxlbS5hcHBlbmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBl
bGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENo
aWxkKGNkYXRhKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAg
ICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGNkYXRhLGVsZW0pOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1
Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJl
cGxhY2VDaGlsZChwaSxjZGF0YSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1
Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7
Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIi
LHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAg
ICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGNvbW1lbnQscGkpOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nl
c3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxh
Y2VDaGlsZCh0eHQsY29tbWVudCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1
Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7
Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzQi
LHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAg
ICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGVsZW0sdHh0KTsKLSAgICAgICAg
fQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3Vu
ZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19N
T0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMjMoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDIzLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNThhMWQyNTE2M2ZkNWEz
ZmJhYzdkMTAxNDkzZDRhNTcxYWViMTdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMjMueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJp
Y3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEg
IiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRh
ICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFs
cGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFG
aWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0g
ICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1z
dGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAg
ICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0g
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElU
WSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVu
dCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1s
bnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+
Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1s
bnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAg
ICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0
YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNl
dD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMjMu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNDlmODNlNzRiOTI2NzMzMWMxNzAzYmQyOGQxNmVmYzIxZjQ2ZmIwNy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MzAuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDMwLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNzM1OGY5MzQ3MjYzYjgyN2E4
ZTg4ODEzZTdhZTM3YzBiNzYzMmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzAuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotCi0vKgotQ29weXJp
Z2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1
c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRp
dW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBB
bGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUg
VzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwv
MjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAq
ICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkg
aWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAg
ICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzAiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0K
LQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYW4gRWxlbWVudCBub2RlIGF0dGVtcHQgdG8gcmVwbGFj
ZSBhIG5ldyBFbGVtZW50IGNoaWxkIG5vZGUgd2l0aCAKLQluZXcgY2hpbGQgbm9kZXMgYW5kIHZp
Y2UgdmVyc2EgYW5kIGluIGVhY2ggY2FzZSB2ZXJpZnkgdGhlIG5hbWUgb2YgdGhlIHJlcGxhY2Vk
IG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29y
ZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzAoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVw
bGFjZWNoaWxkMzAiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBw
YXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3RWxlbWVudDsKLSAgICAg
IHZhciBuZXdUZXh0OwotICAgICAgdmFyIG5ld0NvbW1lbnQ7Ci0gICAgICB2YXIgbmV3UEk7Ci0g
ICAgICB2YXIgbmV3Q2RhdGE7Ci0gICAgICB2YXIgbmV3RVJlZjsKLSAgICAgIHZhciByZXBsYWNl
ZDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9
IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRt
bDpodG1sIik7Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpoZWFkIik7Ci0gICAgICBuZXdFbGVtZW50ID0g
ZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1s
OmJvZHkiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hp
bGQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdFbGVtZW50
KTsKLSAgICAgIG5ld1RleHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBuZXdDb21t
ZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3Q29tbWVudCk7Ci0gICAgICBuZXdQSSA9IGRvYy5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3UEkpOwotICAgICAgbmV3Q2RhdGEgPSBkb2Mu
Y3JlYXRlQ0RBVEFTZWN0aW9uKCJDZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVu
dC5hcHBlbmRDaGlsZChuZXdDZGF0YSk7Ci0gICAgICBuZXdFUmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5k
Q2hpbGQobmV3RVJlZik7Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3
RWxlbWVudCxvbGRDaGlsZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwot
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8xIiwieGh0bWw6aGVhZCIs
bm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGls
ZCxuZXdFbGVtZW50KTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAg
ICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzIiLCJ4aHRtbDpib2R5Iixub2Rl
TmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld1RleHQsb2xk
Q2hpbGQpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNz
ZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfMyIsInhodG1sOmhlYWQiLG5vZGVOYW1lKTsK
LSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3VGV4dCk7
Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVh
bHMoIm5vZGVyZXBsYWNlY2hpbGQzMF80IiwiI3RleHQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBs
YWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q29tbWVudCxvbGRDaGlsZCk7Ci0gICAgICBu
b2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVy
ZXBsYWNlY2hpbGQzMF81IiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2Vk
ID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdDb21tZW50KTsKLSAgICAgIG5vZGVO
YW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxh
Y2VjaGlsZDMwXzYiLCIjY29tbWVudCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFy
ZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdQSSk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxh
Y2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF83
IiwidGFyZ2V0Iixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNo
aWxkKG9sZENoaWxkLG5ld0NkYXRhKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5h
bWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzgiLCIjY2RhdGEt
c2VjdGlvbiIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGls
ZChvbGRDaGlsZCxuZXdFUmVmKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzkiLCJkZWx0YSIsbm9k
ZU5hbWUpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9k
ZXJlcGxhY2VjaGlsZDMwKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggY2RiNWNiYjEzM2ZhYWYyZWI0ZjEwNDNkMjFmYzQzNTA4YjdkYzdlMy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxF
IFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAx
LjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2Ft
bWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVw
c2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJ
T04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0
aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGly
IENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFU
QSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJ
ZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwh
LS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcv
MjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+
PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDMwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2ph
dmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Njcmlw
dD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJn
YXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41
NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxh
cywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5v
bGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNl
IG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNl
Y3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29k
ZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1
NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcs
IHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5h
bHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5v
cjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9l
bT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3Bl
Y2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9u
eW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzM2Y5MjkzMzU4MmE3MDU0MjYxNWQx
MjUwYTQ5MTBhNzQ5M2QwYTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzMKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTc0YmU0NGQ0YjBhNzcxY2I3OTIwNDM2YzdhM2MyZDhhNjIxNjRiNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMTIwICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBX
aWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9s
b2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBN
YXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlz
IHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBb
MV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRw
Oi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIw
MDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVz
IHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICov
Ci1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzIjsK
LSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsK
LQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3
b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYg
dGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAg
ICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVz
Ci0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVk
aWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRl
c3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1
bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1l
bnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0g
Y3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAg
CWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRo
b2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9u
b3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5j
aHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ug
c3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0
ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgr
K2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgZGVmYXVs
dCBBdHRyIG5vZGUgdG8gcmVwbGFjZSBpdHMgVGV4dCBDaGlsZCB3aXRoIGEgCi0JbmV3IEVudGl0
eVJlZmVyZW5jZSBOb2RlIGFuZCB2ZXJpZnkgdGhlIHZhbHVlIG9mIHRoZSByZXBsYWNlZCBjaGls
ZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lE
LTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMygpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNl
Y2hpbGQzMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGNoaWxk
TGlzdDsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRD
aGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZh
ciBub2RlVmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYg
KHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhp
cy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIp
OwotICAgICAgY2hpbGRMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7Ci0gICAg
ICBlbGVtID0gY2hpbGRMaXN0Lml0ZW0oMyk7Ci0gICAgICBwYXJlbnQgPSBlbGVtLmdldEF0dHJp
YnV0ZU5vZGUoImRpciIpOwotICAgICAgb2xkQ2hpbGQgPSBwYXJlbnQubGFzdENoaWxkOwotCi0g
ICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwot
ICAgICAgbm9kZVZhbHVlID0gcmVwbGFjZWQubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVh
bHMoIm5vZGVyZXBsYWNlY2hpbGQzMyIsInJ0bCIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQot
Ci0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzMygpOwotfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzMy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzMueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3OTkwYzE1
ODA2NTU1ZWRlY2QxNWYzMjEwMWE4Y2ZhMjQ2M2E2N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNl
Y2hpbGQzMy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDM0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0MzVlZTRkNTg2Y2YwMDk4NmM5MDFlZWQ0ZjE0Yzk0NzNiYzczZWJjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0Ci1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzNC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNGEzNWEwMWVh
NGUzZThmYmE5YzA5MzIxYTJmODA0ODgyZTViZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi0KLS8q
Ci1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0o
TWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2gg
Q29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVy
c2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
Ci10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1
bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8q
KgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0
dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJ
KCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5l
dyBFbnRpdHlSZWZlcmVuY2UgQ2hpbGQgd2l0aCBhIAotCW5ldyBUZXh0IE5vZGUgYW5kIHZlcmlm
eSB0aGUgdmFsdWUgb2YgdGhlIG5ldyBjaGlsZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9y
IE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxl
dmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVy
ZXBsYWNlY2hpbGQzNCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6
YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzNCIpICE9IG51bGwpIHJldHVybjsKLSAg
ICB2YXIgZG9jOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAg
IHZhciBuZXdDaGlsZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRD
aGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMo
Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAg
ICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIG5ld0No
aWxkID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICByZXBsYWNlZCA9IHBhcmVu
dC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVlID0gcGFy
ZW50LnZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzNCIsIlRl
eHQiLG5vZGVWYWx1ZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICBub2RlcmVwbGFjZWNoaWxkMzQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDY5YmIwMzgwZDE1ZGNlMzVhY2E4NTBhNTgzNjJiNGQx
YjZjMmI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RF
U1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFRE
IFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVO
VElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFF
TlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJ
T04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAg
ICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6
eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0
YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+
Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzQuanMiLz48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ry
b25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgot
ICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2
ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0
aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlS
ZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50
IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNv
bSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+
Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+
Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIg
aWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3
IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRw
Oi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVu
eSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAg
PHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVN
UDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21w
dXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUxYzk4OGY2NGZjOTgz
MjM1ODcyOGMxMDM3NWE3Mjk2YTA3NzZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAot
VGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxYmFlODY3YTVlZjJiYjdkY2E5MWViNzI3ZjJkYzU1YzYwODEx
OWIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0
IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRp
Y3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2
ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBM
aWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29m
dHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlk
ZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0
Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0g
MDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgp
IHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2gg
YXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2
ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0
aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkg
b2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0g
ICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24g
YSBuZXcgQXR0ciBub2RlLCByZXBsYWNlIGl0cyBuZXcgRW50aXR5UmVmZXJuZWNlIENoaWxkIHdp
dGggYSAKLQluZXcgQXR0ciBOb2RlIGFuZCB2ZXJpZnkgaWYgYSBISUVSQVJDSFlfUkVRVUVTVF9F
UlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQw
NDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDM1KCkg
ewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAi
bm9kZXJlcGxhY2VjaGlsZDM1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAg
ICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwot
ICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFy
IHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5v
cmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9j
LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBw
YXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRl
QXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDps
YW5nIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAg
ICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0g
ICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUp
ICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gMyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhy
b3dfSElFUkFSQ0hZX1JFUVVFU1RfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNSgpOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54
aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MzUueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNjcyMWNkOTRmMTVlMjZj
ZmU1YWNmODM1NDIzZmZkNmQ2OTg4YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzNS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNS5q
cyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBs
ZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFj
Y291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2Vt
PgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2Vj
dGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1Ro
aXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIg
JnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFz
LCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2Vy
Ci0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8
c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9l
bT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERp
cmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4
YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlz
dC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJv
bmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9z
dXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwg
SXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5MTk5ZTAxNjExOWJjYjkwNDEyNDkzYzcyZjEwZWFmMTg3M2M0NzYxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
Ni5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MzYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlYTIyNWJlZWYyZmEzOGVlYzk1
ZTAwOGUxMmI2Nzk1NzZjMGE0YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAw
MDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUg
dGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2Vw
dGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRl
ZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBh
bmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVu
dGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsK
LSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAg
IC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24K
LSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAg
ICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1Jl
ZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9
Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRl
ciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBv
ZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4K
LS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21w
bGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0
aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5n
IHJlcGxhY2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlS
ZWZlcm5lY2Ugbm9kZSB3aXRoIGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5IGlmIGEgTk9U
X0ZPVU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNo
aWxkMzYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRv
YzsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3
Q2hpbGQ7Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9
IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNw
YWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgiZGVsdGEiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0
Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAg
IHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOCk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
Tk9UX0ZPVU5EX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWE4ODBiMDcyYTM1Nzg0MDFmYjFiZWVmZDdh
MjRhNmFjMTg4MGM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzYuanMiLz48c2NyaXB0
IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRl
c3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgot
ICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9j
b2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5v
cnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9u
Zz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBF
bnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFk
amFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9z
dHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwot
IDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6
ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9z
dHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAw
PC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8g
Qm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5t
PSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJv
bmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29k
ZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAg
PGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29k
ZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFy
Pm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhh
cyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjMWFhNWJm
ODg5ZDI1NjZhYTM1M2IwOWM0NDFhYTc3YTBiZjZhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhyb3dfV1JP
TkdfRE9DVU1FTlRfRVJSOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmZDAyNjQ0MTNkYjc2NmJiNGFmZjIwNjM0YTk4N2MzOTIx
NzQ0ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgIHZhciBkb2MyUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MyKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2MyUmVmID0gdGhp
cy5kb2MyOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvYzJSZWYsICJk
b2MyIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDIp
IHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAg
ICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBl
eCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAot
Ly8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8K
LS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRl
ZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQot
Ly8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMikgewotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVw
bGFjZUNoaWxkIG9uIGEgbmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IFRleHQgbm9kZSB3
aXRoIGEgCi0JbmV3IEVudGl0eVJlZmVyZW5jZSBOb2RlIGNyZWF0ZWQgYnkgYW5vdGhlciBkb2N1
bWVudCBhbmQgdmVyaWZ5IGlmIGEgCi0JV1JPTkdfRE9DVU1FTlRfRVJSIGlzIHJhaXNlZC4KLQot
KiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53
My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4
NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNygpIHsKLSAgIHZhciBzdWNjZXNz
OwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQz
NyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvYzI7Ci0gICAg
ICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwot
ICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBhcHBl
bmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIAotICAgICAgdmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYzIpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlzLmRvYzI7
Ci0gICAgICB9Ci0gICAgICBkb2MyID0gbG9hZChkb2MyUmVmLCAiZG9jMiIsICJoY19zdGFmZiIp
OwotICAgICAgcGFyZW50ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9y
Zy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2Mu
Y3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jMi5jcmVhdGVFbnRp
dHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVu
ZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9s
ZENoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBl
b2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA0KTsKLQkJfQotCQlhc3Nl
cnRUcnVlKCJ0aHJvd19XUk9OR19ET0NVTUVOVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM3KCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDM3LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlkZGJkMjMz
MTk5N2UzMzM4NWZhYTBmZjI3MzI5NDliZWZiYWY2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRt
bAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRt
bDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElU
WSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElU
WSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90
YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZp
bGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHht
bG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAot
ICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAg
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBz
cGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAg
ICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
Ci0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2Vj
aGlsZDM3LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJs
b2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEg
Q0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFb
Q0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0
byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxz
dXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVN
UDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJz
b25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1
NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDov
L3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGlj
LiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkNzYwOTM0ZmVjNGQ5NDc4NmFlMWJmNThmNWQ0NWE1OWIxYTkyYzU2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMAotU3RhdHVz
CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTU3MWFlNzczOGEwYjI4M2JjOTJjODdhZmQzYWM1MTM2MjliMzE1Ni4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMCI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5h
bWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUo
ImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBzZXRUZXh0Q29udGVu
dCBoYXMgbm8gZWZmZWN0IHdoZW4gdGhlIG5vZGUgaXMgZGVmaW5lZCB0byBiZSBudWxsLgotCQot
CVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSwgYXR0ZW1wdCB0byBz
ZXQgaXRzIGNvbnRlbnQgdG8gRUxFTUVOVC4KLQlSZXRyZWl2ZSB0aGUgdGV4dENvbnRlbnQgYW5k
IHZlcmlmeSBpZiBpdCBpcyB3YXMgc2V0IHRvIEVMRU1FTlQuCi0KLSogQGF1dGhvciBJQk0KLSog
QGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVD
LURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1
bmN0aW9uIG5vZGVzZXR0ZXh0Y29udGVudDEwKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTAiKSAhPSBu
dWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHR4
dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0
YTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBl
bmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy9E
T00vVGVzdCIsImRvbTM6ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJU
ZXh0ICIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwot
ICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAg
cGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0g
ICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBl
bmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5h
cHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hp
bGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwot
ICAgICAgZWxlbS50ZXh0Q29udGVudCA9ICJFTEVNRU5UIjsKLQotICAgICAgdGV4dENvbnRlbnQg
PSBlbGVtLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVzZXR0ZXh0Y29u
dGVudDEwIiwiRUxFTUVOVCIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgbm9kZXNldHRleHRjb250ZW50MTAoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQx
MC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkZTc2MGYwZjBh
MmI3NThlNmYyZWU4MGUzMGM1YzlmNGE1NzQ1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXNldHRleHRjb250ZW50MTAueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1s
Ci0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1s
MS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZ
IGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZ
IGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5U
SVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3Rh
dGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmls
ZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1s
bnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0g
ICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFj
cm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNw
YW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAg
ICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIK
LSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0dGV4dGNv
bnRlbnQxMC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNl
dHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYmJjMTQ3MDg4NmJmMDRlNGIwOTUyNjdmNjUzNDVlMDRiM2VhMzM2Yy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEKLVN0YXR1
cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXNldHRleHRjb250ZW50MTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQ0NDMxZjc5MjMxZjAwYjI0YzU0ODA4YTk2OGMzOTM5ZTYzMWUyZWMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM1
ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBD
b25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJv
cGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGlj
cywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhl
IAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3Lncz
Lm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0q
LwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0
LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlv
biBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLQotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IERv
Y3VtZW50RnJhZ21lbnQgbm9kZSBFbGVtZW50IGNoaWxkLCBhdHRlbXB0IHRvIHNldCBpdHMgY29u
dGVudCB0byAKLQlET0NVTUVOVEZSQUdNRU5ULiAgUmV0cmVpdmUgdGhlIHRleHRDb250ZW50IGFu
ZCB2ZXJpZnkgaWYgaXQgaXMgd2FzIHNldCB0byBET0NVTUVOVEZSQUdNRU5UCi0KLSogQGF1dGhv
ciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RS
LzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVu
dAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0ZXh0Y29udGVudDExKCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50
MTEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwot
ICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgZWxlbUNoaWxkOwotICAgICAgdmFyIHR4dDsKLSAg
ICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAg
ICAgIHZhciBwaTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENo
aWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9
IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRt
bDpwIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7Ci0gICAgICBj
b21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBlbnRSZWYgPSBk
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRl
UHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRv
Yy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hp
bGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRS
ZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBlbGVtLnRleHRDb250ZW50
ID0gIkRPQ1VNRU5URlJBR01FTlQiOwotCi0gICAgICBlbGVtQ2hpbGQgPSBkb2NGcmFnLmxhc3RD
aGlsZDsKLQotICAgICAgdGV4dENvbnRlbnQgPSBlbGVtQ2hpbGQudGV4dENvbnRlbnQ7Ci0KLSAg
ICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50MTEiLCJET0NVTUVOVEZSQUdNRU5U
Iix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICBub2Rlc2V0dGV4dGNvbnRlbnQxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MmNiZDA0YWM5MWZkOThmNDAyMTM5NzQzMTk4
NWRkZTFiODEzZmZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQx
MS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEu
MCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8v
VzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsK
LSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4K
LSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+
Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUw
OyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElT
VCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAj
SU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpl
bXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAg
ICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxz
cGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3Nw
YW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAj
SU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48
aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg
Y2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29udGVudDExLmpzIi8+PHNj
cmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3Rh
cnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdp
dGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBh
biBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11d
Pjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1t
YTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
bmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25l
czwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAw
LDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1
NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcg
VGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRl
eHRjb250ZW50MTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
YTBmYmY0MmIyZTk2NzUwODNmMjE3YzE1ZmFkNzgyZGQ3ZmRkNDRiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRl
bnQxMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZjMzZmZTZiMTFlY2Jl
ODFjNTYzNmRhYWVhODBiNDU5YjcwYTg3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNl
dHRleHRjb250ZW50MTIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotCi0JCi0JVXNpbmcgc2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5v
ZGUsIGF0dGVtcHQgdG8gc2V0IGl0cyB2YWx1ZS4KLQlTaW5jZSBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZXMgYXJlIFJlYWRPbmx5LCBjaGVjayBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiAg
Ci0JaXMgcmFpc2VkLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQw
NDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rlc2V0dGV4dGNvbnRl
bnQxMigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgIm5vZGVzZXR0ZXh0Y29udGVudDEyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBk
b2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENv
bnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVu
dDsKLQotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwot
ICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAot
CXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgZW50UmVmLnRleHRD
b250ZW50ID0gIk5BIjsKLQotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNz
ID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9
Ci0JCWFzc2VydFRydWUoIm5vZGVzZXR0ZXh0Y29udGVudDEyIixzdWNjZXNzKTsKLQl9Ci0KLX0K
LQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR0ZXh0Y29udGVudDEyKCk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNl
dHRleHRjb250ZW50MTIueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY0YmY5Njg3YTBlYjRkODczOTQyNzMzNTVmMDczNDNkMWYxYmM5MzcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08
IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+
Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+
Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5
OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24x
IFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0g
Im5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwn
Ci0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENE
QVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFU
VExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAot
ICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAg
IDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBj
b21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hl
bWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0
YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwu
anMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
bm9kZXNldHRleHRjb250ZW50MTIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4ZDdhZjJmZjk4M2UxNzMxZTA2ZGFkYjUzZjQ4MDJmZGRl
MmY2ZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4Ci1TdGF0
dXMJZXJyb3IKLU1lc3NhZ2UJTGluZSAxMTM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjZmNTg2M2JmNDY3OGFlNTBhZTk1ZDg4NmQ2NmUwYzhl
MzU0ZGQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2Vy
ZGF0YTA4IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVy
ID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rp
bmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8K
LS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9u
b3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0
aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9u
IGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkg
b2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRl
c3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBi
dWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9
IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4
KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAg
VGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNo
IGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBl
dmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAg
dGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5
IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewot
ICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHNldFVzZXJEYXRhIG9u
IGEgQ0RBVEFTZWN0aW9uIGFuZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZSB0byBzZXQgdGhlaXIgCi0J
VXNlckRhdGEgdG8gdGhpcyBEb2N1bWVudCBhbmQgRG9jdW1lbnRFbGVtZW50IG5vZGUuICBWZXJp
ZnkgaWYgdGhlIFVzZXJEYXRhIAotCW9iamVjdCB0aGF0IHdhcyBzZXQgZm9yIGJvdGggbm9kZXMg
aXMgZGlmZmVyZW50LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQw
NDA3L2NvcmUjTm9kZTMtc2V0VXNlckRhdGEKLSovCi1mdW5jdGlvbiBub2Rlc2V0dXNlcmRhdGEw
OCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRl
ciwgIm5vZGVzZXR1c2VyZGF0YTA4IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0g
ICAgICB2YXIgZG9jRWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY0RhdGE7Ci0g
ICAgICB2YXIgZWxlbUxpc3Q7Ci0gICAgICB2YXIgZWxlbU5hbWU7Ci0gICAgICB2YXIgdXNlckRh
dGE7Ci0gICAgICB2YXIgcmV0dXJuZWQxOwotICAgICAgdmFyIHJldHVybmVkMjsKLSAgICAgIHZh
ciBzdWNjZXNzOwotICAgICAgdmFyIHJldFVzZXJEYXRhOwotICAgICAgdmFyIG51bGxIYW5kbGVy
ID0gbnVsbDsKLQotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBlbnRSZWYg
PSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY0RhdGEgPSBkb2Mu
Y3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIGlmIChudWxsID09IG51
bGxIYW5kbGVyKSB7Ci0gICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51
bGwpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEi
LCBkb2MsIG51bGxIYW5kbGVyLmhhbmRsZSk7Ci0gICAgICB9Ci0gICAgICAgaWYgKG51bGwgPT0g
bnVsbEhhbmRsZXIpIHsKLSAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxl
bSwgbnVsbCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJL
ZXkyIiwgZG9jRWxlbSwgbnVsbEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAgICByZXR1
cm5lZDEgPSBlbnRSZWYuZ2V0VXNlckRhdGEoIktleTEiKTsKLSAgICAgIHJldHVybmVkMiA9IGNE
YXRhLmdldFVzZXJEYXRhKCJLZXkyIik7Ci0gICAgICBzdWNjZXNzID0gcmV0dXJuZWQxLmlzRXF1
YWxOb2RlKHJldHVybmVkMik7Ci0gICAgICBhc3NlcnRGYWxzZSgibm9kZXNldHVzZXJkYXRhMDgi
LHN1Y2Nlc3MpOwotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0
dXNlcmRhdGEwOCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0ZjQ2NDA2OTZlNmY5MjQzYTYwODFmNzkyMjE3OGRjMWViNmFhZmNhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC54aHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/
PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmlj
dC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0
NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0
NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICIm
Izk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0
aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lT
VEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAn
cnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpu
bSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAg
PCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+
Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMg
aXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1M
U2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJD
b250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5o
Y19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnho
dG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Im5vZGVzZXR1c2VyZGF0YTA4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
PmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+
PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0
aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMg
OTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtD
REFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAy
ICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0
aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRh
cnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAw
MzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRt
ZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0Ozwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4
NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEu
Y29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25n
PgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFs
cGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+Mjcg
U291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0
cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwv
Y29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9w
PgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTI1YTM4MDlkNzkwMWZhMDQ0NmM3Nzc3
YjRlYWFjYmQ0ZjRlZTExYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9s
ZXRleHQwNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQxOGYyNzYxMjQzNTE0YWJhMTZmYmY0MzJmY2Vj
OGFmZDM3Y2QwMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQw
Ni5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3Rl
eHRyZXBsYWNld2hvbGV0ZXh0MDYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAg
IHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUpOwotICAg
ICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIiwg
dHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBw
cmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAo
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9u
RXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUg
Y29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4g
c2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3Vt
ZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdo
aWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4K
LWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoq
Ci0qIAotCVRoZSBtZXRob2QgcmVwbGFjZVdob2xlVGV4dCBzdWJzdGl0dXRlcyB0aGUgYSBzcGVj
aWZpZWQgdGV4dCBmb3IgdGhlIHRleHQgb2YgCi0JdGhlIGN1cnJlbnQgbm9kZSBhbmQgYWxsIGxv
Z2ljYWxseS1hZGphY2VudCB0ZXh0IG5vZGVzLiAgVGhpcyBtZXRob2QgcmFpc2VzCi0JYSBOT19N
T0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaWYgb25lIG9mIHRoZSBUZXh0IG5vZGVzIGJlaW5nIHJl
cGxhY2VkIGlzIHJlYWRvbmx5LgotCQotCUludm9rZSByZXBsYWNlV2hvbGVUZXh0IG9uIGFuIGV4
aXN0aW5nIHRleHQgbm9kZSB3aXRoIG5ld2x5IGNyZWF0ZWQgdGV4dCBhbmQgRW50aXR5cmVmZXJl
bmNlCi0Jbm9kZXMgKHdob3NlIHJlcGxhY2VtZW50IHRleHQgaXMgYSBjaGFyYWN0ZXIgZW50aXR5
IHJlZmVyZW5jZSkgYXBwZW5kZWQgYXMgY2hpbGRyZW4gb2YgaXRzIHBhcmVudCBlbGVtZW50IG5v
ZGUuICAKLQlXaGVyZSB0aGUgbm9kZXMgdG8gYmUgcmVtb3ZlZCBhcmUgcmVhZC1vbmx5IGRlc2Nl
bmRhbnRzIG9mIGFuIEVudGl0eVJlZmVyZW5jZSwgdGhlIEVudGl0eVJlZmVyZW5jZSAKLSAgICAg
ICAgbXVzdCBiZSByZW1vdmVkIGluc3RlYWQgb2YgdGhlIHJlYWQtb25seSBub2Rlcy4gT25seSBp
ZiBhbnkgRW50aXR5UmVmZXJlbmNlIHRvIGJlIHJlbW92ZWQgaGFzIAotICAgICAgICBkZXNjZW5k
YW50cyB0aGF0IGFyZSBub3QgRW50aXR5UmVmZXJlbmNlLCBUZXh0LCBvciBDREFUQVNlY3Rpb24g
bm9kZXMsIHRoZSByZXBsYWNlV2hvbGVUZXh0IAotICAgICAgICBtZXRob2QgbXVzdCBmYWlsLCBy
YWlzaW5nIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSLiBWZXJpZnkgdGhhdCB0aGUgbWV0
aG9kIGRvZXMgbm90IHJhaXNlCi0gICAgICAgIGFuIGV4Y2VwdGlvbiBhbmQgdmVyaWZ5IHRoZSBj
b250ZW50IG9mIHRoZSByZXR1cm5lZCB0ZXh0IG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1
dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qLwot
ZnVuY3Rpb24gdGV4dHJlcGxhY2V3aG9sZXRleHQwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAg
IGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDYi
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAg
ICAgIHZhciBlbGVtZW50U3Ryb25nOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIGVy
ZWZOb2RlOwotICAgICAgdmFyIHJlcGxhY2VkVGV4dDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxk
OwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9j
IiwgImhjX3N0YWZmIik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgic3Ryb25nIik7Ci0gICAgICBlbGVtZW50U3Ryb25nID0gaXRlbUxpc3QuaXRlbSgwKTsKLSAg
ICAgIHRleHROb2RlID0gZG9jLmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAgICAgZXJl
Zk5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBhcHBlbmRl
ZENoaWxkID0gZWxlbWVudFN0cm9uZy5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICBhcHBl
bmRlZENoaWxkID0gZWxlbWVudFN0cm9uZy5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICB0
ZXh0Tm9kZSA9IGVsZW1lbnRTdHJvbmcuZmlyc3RDaGlsZDsKLQotICAgICAgcmVwbGFjZWRUZXh0
ID0gdGV4dE5vZGUucmVwbGFjZVdob2xlVGV4dCgiTmV3IFRleHQgYW5kIENkYXRhIik7Ci0gICAg
ICBub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygi
dGV4dHJlcGxhY2V3aG9sZXRleHQwNiIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsK
LSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIHRleHRyZXBsYWNl
d2hvbGV0ZXh0MDYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDc5NzBiNjBiMTA5MDhhMGM3OWZkNTdjODEzOWJkOTE4YzM3MWVj
MmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RF
U1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFRE
IFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVO
VElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFF
TlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJ
T04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAg
ICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6
eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0
YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+
Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzIi8+PHNjcmlwdCB0
eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0
KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAg
PHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29k
ZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0
aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+
TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50
aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGph
Y2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ry
b25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5
ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVy
by5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ry
b25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwv
c3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
Tm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJv
eCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0i
aHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25n
PkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+
Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxl
bT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+
Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5t
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMg
OTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdo
b2xldGV4dDA3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA3
NWVjYmQwOGU2ODZmNjlmYWZlNGE2MzdhYzk2NTYyMGEyZjQ5Yy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3Ci1TdGF0dXMJU3VjY2VzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hv
bGV0ZXh0MDcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxh
Y2V3aG9sZXRleHQwNy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU2NGQzMmRk
MzEzMjlkNjdhOTkxYTc5MTQyMTAwZjAwMWYzZWIwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
dGV4dHJlcGxhY2V3aG9sZXRleHQwNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDciOwotICAgfQotCi12YXIg
ZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0v
LyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8g
Y29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVu
dCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBp
cyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAg
ICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5j
dGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0
cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBt
YXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1
cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3Bh
Y2VBd2FyZSIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLUFwcGVuZCBhbiBlbnRpdHkgcmVmZXJlbmNlIGFuZCBhIHRleHQgbm9k
ZSBhZnRlciB0byB0aGUgY29udGVudCBvZiB0aGUKLWZpcnN0IHN0cm9uZyBlbGVtZW50LiAgVGhl
biBjYWxsIHJlcGxhY2VXaG9sZVRleHQgb24gaW5pdGlhbCBjb250ZW50Ci1vZiB0aGF0IGVsZW1l
bnQuICBTaW5jZSB0aGUgZW50aXR5IHJlZmVyZW5jZSBkb2VzIG5vdCBjb250YWluIGFueSAKLWxv
Z2ljYWxseS1hZGphY2VudCB0ZXh0IGNvbnRlbnQsIG9ubHkgdGhlIGluaXRpYWwgdGV4dCBlbGVt
ZW50IHNob3VsZAotYmUgcmVwbGFjZWQuIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVp
bCBEZWxpbWEKLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNl
V2hvbGVUZXh0Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcu
Y2dpP2lkPTQyNQotKi8KLWZ1bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDcoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0ZXh0cmVw
bGFjZXdob2xldGV4dDA3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2
YXIgaXRlbUxpc3Q7Ci0gICAgICB2YXIgZWxlbWVudE5hbWU7Ci0gICAgICB2YXIgdGV4dE5vZGU7
Ci0gICAgICB2YXIgZXJlZk5vZGU7Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAgICAgdmFy
IGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIgbm9kZTsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0g
ICAgICB2YXIgbm9kZVR5cGU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgaXRlbUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0
cm9uZyIpOwotICAgICAgZWxlbWVudE5hbWUgPSBpdGVtTGlzdC5pdGVtKDApOwotICAgICAgZXJl
Zk5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICB0ZXh0Tm9k
ZSA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiTmV3IFRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtZW50TmFtZS5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gZWxlbWVudE5hbWUuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgdGV4dE5vZGUgPSBl
bGVtZW50TmFtZS5maXJzdENoaWxkOwotCi0gICAgICByZXBsYWNlZFRleHQgPSB0ZXh0Tm9kZS5y
ZXBsYWNlV2hvbGVUZXh0KCJOZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAgIHRleHROb2RlID0g
ZWxlbWVudE5hbWUuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0U2FtZSgicmV0dmFsX3NhbWUi
LHRleHROb2RlLHJlcGxhY2VkVGV4dCk7Ci1ub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2RlVmFsdWU7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZVZhbHVlU2FtZSIsIk5ldyBUZXh0IGFuZCBDZGF0
YSIsbm9kZVZhbHVlKTsKLSAgICAgICBub2RlID0gdGV4dE5vZGUubmV4dFNpYmxpbmc7Ci0KLSAg
ICAgIGFzc2VydE5vdE51bGwoInNlY29uZENoaWxkTm90TnVsbCIsbm9kZSk7Ci1ub2RlVHlwZSA9
IG5vZGUubm9kZVR5cGU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygic2Vjb25kQ2hpbGRJc0VudFJl
ZiIsNSxub2RlVHlwZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3Lnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDI5NzdiYTE4OGFhMWIxMzg4NjZl
ZGFiMzU1NWI3OTdjMjQxNzgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdo
b2xldGV4dDA3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVy
c2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0
LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICIm
Izk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAi
JiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmls
ZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAg
PCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3Rj
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAg
ICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkg
ZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQg
ZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5z
IENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgot
PGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5z
OnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFm
Zi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0idGV4dHJlcGxhY2V3aG9sZXRleHQw
Ny5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxl
dGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENv
bXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2Rl
PkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8
L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRB
U2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRB
W1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0
YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFs
bGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJv
Z2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgot
ICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0
PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVs
IERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywg
VGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cu
bmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9z
dHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAw
PC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9h
ZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3
aG9sZXRleHQwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI0NTFhNDY2YjY0MzFhMjRkNmI3YTQ5MzJhNmRjZDMxNDQ1ZTY0MmUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOAotU3Rh
dHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBh
c3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDguanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTA4NTRiMzBmMmZmYTc0ZDczYTcxNGFmZjdkYzdiZDMwYTA1ODljMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDEyNiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29y
bGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVj
aG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBh
bmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4g
VGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vu
c2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2Fy
ZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRp
ZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAg
ICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0
ZXh0MDgiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0g
MDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9v
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1BcHBlbmRzIGFuIGVudGl0eSByZWZlcmVu
Y2UgY29udGFpbmluZyB0ZXh0IGFuZCBhbiBlbGVtZW50IHRvIGFuIGV4aXN0aW5nCi10ZXh0IG5v
ZGUsIHRoZW4gY2FsbHMgVGV4dC5yZXBsYWNlV2hvbGVUZXh0IG9uIHRoZSBleGlzdGluZyB0ZXh0
IG5vZGUuCi1BIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBzaG91bGQgYmUgdGhyb3duLgot
Ci0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0
L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdob2xlVGV4
dAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD00
MjUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9
NTQwCi0qLwotZnVuY3Rpb24gdGV4dHJlcGxhY2V3aG9sZXRleHQwOCgpIHsKLSAgIHZhciBzdWNj
ZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hv
bGV0ZXh0MDgiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVt
TGlzdDsKLSAgICAgIHZhciBwOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBub2RlOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICBpdGVt
TGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicCIpOwotICAgICAgcCA9IGl0ZW1MaXN0
Lml0ZW0oMCk7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQy
Iik7Ci0gICAgICBub2RlID0gcC5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgbm9kZSA9IHAu
Zmlyc3RDaGlsZDsKLQotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0g
ICAgICAgICAgICBub2RlID0gbm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJ5byIpOwotICAgICAgICB9
Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5k
ZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCk7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRl
eHQwOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFj
ZXdob2xldGV4dDA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmFlOTk2
OWFmOGM2ZDEwMjM0ZmEwMDM2MmQ3ODUzZTY5N2QwZDFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWwgWwotPCFFTlRJVFkgZW50MSAnZm9vJz4KLTwhRU5USVRZIGVu
dDIgJ2Zvbzxici8+Jz4KLTwhRUxFTUVOVCBodG1sIChoZWFkLCBib2R5KT4KLTwhQVRUTElTVCBo
dG1sIHhtbG5zIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIGhlYWQgKHRpdGxlLHNjcmlwdCop
PgotPCFFTEVNRU5UIHNjcmlwdCAoI1BDREFUQSk+Ci08IUFUVExJU1Qgc2NyaXB0IAotICAgICBz
cmMgQ0RBVEEgI0lNUExJRUQKLSAgICAgdHlwZSBDREFUQSAjSU1QTElFRAotICAgICBjaGFyc2V0
IENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KLTwhRUxFTUVOVCBi
b2R5IChwKT4KLTwhQVRUTElTVCBib2R5IG9ubG9hZCBDREFUQSAjSU1QTElFRD4KLTwhRUxFTUVO
VCBwICgjUENEQVRBfGJyKSo+Ci08IUVMRU1FTlQgYnIgRU1QVFk+Ci1dPgotPGh0bWwgeG1sbnM9
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPgotPGhlYWQ+Ci08dGl0bGU+cmVwbGFjZVdo
b2xlVGV4dCBzYW1wbGU8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNy
Yz0nc2VsZnhodG1sLmpzJz48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9J1VURi04JyB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnIHNyYz0ndGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyc+PC9zY3JpcHQ+
PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsg
c3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0
ZSgpIj4KLTxwPmJhcjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNl
cHRpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFjM2Q5
Y2JkZjcwMGU2OTZiNmEwNzQ4NTBjNjI2YzQzODYzNjc5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZl
cmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMyArMCwwIEBACi1UZXN0IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJl
IGFsd2F5cyB0cmVhdGVkIHJlYWRvbmx5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1QQVNTIHhtbERvYzIuYWRvcHROb2RlKGVudGl0eVJlZmVyZW5jZSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFT
UyBlbnRpdHlSZWZlcmVuY2Uub3duZXJEb2N1bWVudCBpcyB4bWxEb2MKLVBBU1MgZW50aXR5UmVm
ZXJlbmNlLm5vZGVWYWx1ZSA9ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJlbmNl
Lm5vZGVWYWx1ZSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyB0
aHJldyBleGNlcHRpb24gRXJyb3I6IE5hbWVzcGFjZUVycm9yOiBET00gRXhjZXB0aW9uIDE0Lgot
UEFTUyBlbnRpdHlSZWZlcmVuY2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNl
LnRleHRDb250ZW50ID0gJ2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotRkFJTCBlbnRpdHlSZWZlcmVuY2UudGV4
dENvbnRlbnQgc2hvdWxkIGJlID4uIFdhcyAuCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBw
ZW5kIHNob3VsZCBiZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxk
KHRleHQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6
IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3Ro
IGlzIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVk
QXBwZW5kIHNob3VsZCBiZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmluc2VydEJl
Zm9yZSh0ZXh0LCBlbnRpdHlSZWZlcmVuY2UuZmlyc3RDaGlsZCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBl
bnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGggaXMgY2hpbGRyZW5CZWZvcmVGYWlsZWRB
cHBlbmQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9u
bHktZXhjZXB0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNl
L3JlYWRvbmx5LWV4Y2VwdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
M2ZiMTY0MWJlZDQ0NzMwNzBmYmMyZTlmMzQ5YzE5Y2I4MWQzZThmMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRp
dHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3Nj
cmlwdC10ZXN0cy9URU1QTEFURS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVm
ZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0YmVlZDkzYTVlMDZkODg0MTI4ZGYzYjM0ZGI1NDJkODUwNzFlMzVkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBz
cmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVz
dHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJl
ZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYWYyNDY1N2Q4MmRiM2U4YTdmYmJlNDg3N2QzZDNkNjNiMTA5ZDQ3
Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2Vw
dGlvbnMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVz
dCB0byBtYWtlIHN1cmUgRW50aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBhbHdheXMgdHJlYXRlZCBy
ZWFkb25seSIpCi0KLXZhciB4bWxEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVE
b2N1bWVudCgiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7Ci12
YXIgeG1sRG9jMiA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZhciBlbnRpdHlSZWZl
cmVuY2UgPSB4bWxEb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotCi1zaG91bGRUaHJv
dygieG1sRG9jMi5hZG9wdE5vZGUoZW50aXR5UmVmZXJlbmNlKSIpOwotc2hvdWxkQmUoImVudGl0
eVJlZmVyZW5jZS5vd25lckRvY3VtZW50IiwgInhtbERvYyIpCi0KLS8vIG5vZGVWYWx1ZSBpcyBk
ZWZpbmVkIHRvIGJlIG51bGwgZm9yIEVudGl0eSBSZWZlcmVuY2Ugbm9kZXMsIGFuZCB0aHVzIHNo
b3VsZCBzaWxlbnRseSBmYWlsIHRvIG1vZGlmeQotLy8gU3BlYyBpcyBhbWJpZ2lvdXMgYXMgdG8g
aWYgd2Ugc2hvdWxkIHRocm93IGhlcmUgb3Igbm90LiAgSSd2ZSByZXF1ZXN0ZWQgY2xhcmlmaWNh
dGlvbjoKLS8vIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAw
OEphbk1hci8wMDA5Lmh0bWwKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVl
ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwi
KTsKLQotc2hvdWxkVGhyb3coImVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyIpOwotc2hv
dWxkQmUoImVudGl0eVJlZmVyZW5jZS5wcmVmaXgiLCAibnVsbCIpOwotCi1zaG91bGRUaHJvdygi
ZW50aXR5UmVmZXJlbmNlLnRleHRDb250ZW50ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRpdHlS
ZWZlcmVuY2UudGV4dENvbnRlbnQiLCAiJz4nIik7Ci0KLXZhciBjaGlsZHJlbkJlZm9yZUZhaWxl
ZEFwcGVuZCA9IGVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3VsZEJlKCJj
aGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCIsICIxIik7Ci12YXIgdGV4dCA9IGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJGQUlMIik7Ci1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLmFwcGVu
ZENoaWxkKHRleHQpIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVu
Z3RoIiwgImNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIik7Ci0KLWNoaWxkcmVuQmVmb3JlRmFp
bGVkQXBwZW5kID0gZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hvdWxkQmUo
ImNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIiwgIjEiKTsKLXNob3VsZFRocm93KCJlbnRpdHlS
ZWZlcmVuY2UuaW5zZXJ0QmVmb3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENoaWxkKSIp
Owotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCIsICJjaGlsZHJl
bkJlZm9yZUZhaWxlZEFwcGVuZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
Tm9kZS9pbml0aWFsLXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9O
b2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dAppbmRleCAyNmYwZWMyYTNkZWJmZTdhN2Vk
ZWIwOGUyZDEwMWE3NDE1ZGNkZmI1Li4xYzk4MWZiM2I1ZDg5MjdkNWE4NDMzOGYzNzEyNDUzYTYw
Y2U4MWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFs
dWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwt
dmFsdWVzLWV4cGVjdGVkLnR4dApAQCAtMTEzLDEyICsxMTMsNiBAQCBQQVNTIGVsZW1lbnQubmFt
ZXNwYWNlVVJJIGlzICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwogUEFTUyBlbGVtZW50
LnByZWZpeCBpcyAnaHRtbCcKIFBBU1MgZWxlbWVudC5ub2RlVmFsdWUgaXMgbnVsbAogUEFTUyBl
bGVtZW50LmF0dHJpYnV0ZXMudG9TdHJpbmcoKSBpcyAnW29iamVjdCBOYW1lZE5vZGVNYXBdJwot
UEFTUyBkb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoJ2d0JykgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBlbnRpdHlS
ZWZlcmVuY2Uubm9kZU5hbWUgaXMgJ2d0JwotUEFTUyBlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1l
IGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5hbWVzcGFjZVVSSSBpcyBudWxsCi1QQVNT
IGVudGl0eVJlZmVyZW5jZS5wcmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9k
ZVZhbHVlIGlzIG51bGwKIFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5vZGVOYW1lIGlzICd4
bWwtc3R5bGVzaGVldCcKIFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLmxvY2FsTmFtZSBpcyBu
dWxsCiBQQVNTIHByb2Nlc3NpbmdJbnN0cnVjdGlvbi5uYW1lc3BhY2VVUkkgaXMgbnVsbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12
YWx1ZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFs
LXZhbHVlcy5qcwppbmRleCA3MzFhODA2MzkwODY5OGI0Njk1YjI4YzM2Yjc3M2E3ZGQxYTMwMzU0
Li45YjEyYTk3OTAxYzAzOTQzMjMzMmQzM2RmY2FkYzk4MjdmYjZhYWZhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVl
cy5qcwpAQCAtMTU2LDE2ICsxNTYsNiBAQCBzaG91bGRCZSgiZWxlbWVudC5wcmVmaXgiLCAiJ2h0
bWwnIik7CiBzaG91bGRCZSgiZWxlbWVudC5ub2RlVmFsdWUiLCAibnVsbCIpOwogc2hvdWxkQmUo
ImVsZW1lbnQuYXR0cmlidXRlcy50b1N0cmluZygpIiwgIidbb2JqZWN0IE5hbWVkTm9kZU1hcF0n
Iik7CiAKLS8vIE5vdCBwb3NzaWJsZSB0byBjcmVhdGUgRW50aXR5IG5vZGVzIHZpYSB0aGUgRE9N
LCBXZWJLaXQgZG9lc24ndCBjcmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKLQotc2hvdWxkVGhyb3co
ImRvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgnZ3QnKSIpOwotdmFyIGVudGl0eVJlZmVy
ZW5jZSA9IHhtbERvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci1zaG91bGRCZSgiZW50
aXR5UmVmZXJlbmNlLm5vZGVOYW1lIiwgIidndCciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVu
Y2UubG9jYWxOYW1lIiwgIm51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubmFtZXNw
YWNlVVJJIiwgIm51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UucHJlZml4IiwgIm51
bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQog
Ly8gTm90IHBvc3NpYmxlIHRvIGNyZWF0ZSBOb3RhdGlvbiBub2RlcyB2aWEgdGhlIERPTSwgV2Vi
S2l0IGRvZXNuJ3QgY3JlYXRlIHRoZW0gZnJvbSBwYXJzaW5nCiAKIHZhciBwcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24gPSBkb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3htbC1zdHls
ZXNoZWV0JywgJ3R5cGU9XCJ0ZXh0L3hzbFwiIGhyZWY9XCJtaXNzaW5nLnhzbFwiJyk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDc3MTNmYzljZjQ4N2Y2OTc5ODE4NzQyMmUxMjcxYWE4NjJi
ZTYyNTcuLjc0N2NkN2U2MjU5Y2RkY2EwYmUyNWNlZTRiNWNjMmEwMWY3MGNmMjMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMyw4ICszMyw2IEBAIFBBU1M6IGNhbkdldCgnRG9jdW1lbnRU
eXBlJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0RvY3VtZW50VHlw
ZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFbGVtZW50Jykgc2hv
dWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0VsZW1lbnQnKSBzaG91bGQgYmUg
J3RydWUnIGFuZCBpcy4KLVBBU1M6IGNhbkdldCgnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJl
ICd0cnVlJyBhbmQgaXMuCi1QQVNTOiBjYW5TZXQoJ0VudGl0eVJlZmVyZW5jZScpIHNob3VsZCBi
ZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ3Ry
dWUnIGFuZCBpcy4KIFBBU1M6IGNhblNldCgnRXZhbEVycm9yJykgc2hvdWxkIGJlICd0cnVlJyBh
bmQgaXMuCiBQQVNTOiBjYW5HZXQoJ0V2ZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0
bWwKaW5kZXggZmZmNWM0YWQwODE0YWI5YzFjYzA0NmFmZWJiMThjOWQ3OGJjNjc0MC4uNDQzMTZh
Yzc4ZjEzODc4MDQ5MGU0ZTU2MTJhYjJhZDhmYjdlMDllYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbApAQCAtODQsNyArODQs
NiBAQCB2YXIgd2luZG93UmVhZFdyaXRlUHJvcGVydGllcyA9IFsKICAgICAiRG9jdW1lbnRGcmFn
bWVudCIsIAogICAgICJEb2N1bWVudFR5cGUiLCAKICAgICAiRWxlbWVudCIsIAotICAgICJFbnRp
dHlSZWZlcmVuY2UiLCAKICAgICAiRXZhbEVycm9yIiwgCiAgICAgIkV2ZW50IiwgCiAgICAgIkhU
TUxBbmNob3JFbGVtZW50IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3Jlc291cmNlcy93aW5kb3ctcHJvcGVydGllcy5qcwppbmRleCBmOWM3MDkyOTI5Mjk4
Yzc2Zjc5Y2U1ZjZhNmFlNTJmYzljZWMwZGY1Li45ZDQzMGVjZWIyZWFjN2E1NzE4YjM3ZmQ2M2Rl
N2NlMjRhYmExYjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVz
b3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9yZXNvdXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMKQEAgLTU2LDcgKzU2LDYgQEAgdmFy
IHByb3BlcnR5SW5mbyA9IFsKICAgICBbIkRvY3VtZW50RnJhZ21lbnQiLCAib2JqZWN0Il0sCiAg
ICAgWyJEb2N1bWVudFR5cGUiLCAib2JqZWN0Il0sCiAgICAgWyJFbGVtZW50IiwgIm9iamVjdCJd
LAotICAgIFsiRW50aXR5UmVmZXJlbmNlIiwgIm9iamVjdCJdLAogICAgIFsiRXZlbnQiLCAib2Jq
ZWN0Il0sCiAgICAgWyJFdmVudEV4Y2VwdGlvbiIsICJvYmplY3QiXSwKICAgICBbIkhUTUxBbmNo
b3JFbGVtZW50IiwgIm9iamVjdCJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApp
bmRleCA2N2QzMDJjZWVkNTIwNTYzZGZlMWRiZjdmNzkwMGQyMGZkODQ4OGIwLi4xMTIyMTRhNzdi
ZjUzZjBjMTJmZjNhYmEzZTcwN2VmMTMwN2U2YWI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4
cGVjdGVkLnR4dApAQCAtMTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9
PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydE
b2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRy
dWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScg
aXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0
b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50
aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJl
bmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQ
QVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQog
UEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUK
IFBBU1Mgd2luWydFdmVudEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29u
c3RydWN0b3JdJyBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKaW5k
ZXggMzAyYTA5Yjg2YTViZjJlNzk5ZDI0YzhlNjllMTMwN2UxYTRkMjZkMS4uYWJmNjdhZDJlOWFm
NjE4Y2FmODU3NzcwYmEwOTExNDRhMTcyNDRhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4
cGVjdGVkLnR4dApAQCAtOTYsOCArOTYsNiBAQCBQQVNTOiBDb21tZW50IHN1Y2Nlc3NmdWxseSBz
aGFkb3dlZAogUEFTUzogQ0RBVEFTZWN0aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzog
RG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogTm90YXRpb24gc3VjY2Vz
c2Z1bGx5IHNoYWRvd2VkCi1QQVNTOiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1QQVNT
OiBFbnRpdHlSZWZlcmVuY2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRG9jdW1lbnQgc3Vj
Y2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRWxlbWVudCBzdWNjZXNzZnVsbHkgc2hhZG93
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dHktc2hhZG93aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnR5LXNoYWRvd2luZy5odG1sCmluZGV4IDliNDZlYWNlMDEzNzBjNTUyNjJkMGVmNjRkNjgx
YWU1NmVhYmMwMmMuLmNiNzRmYjA0YTA3MjUyZjEwYjVkYzYzZjljNjA0YjE1MTkwYzVkOWMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hh
ZG93aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0eS1zaGFkb3dpbmcuaHRtbApAQCAtMjE1LDEwICsyMTUsNiBAQAogICAgICAgICBsb2coRG9j
dW1lbnRUeXBlID09IDEgPyAiUEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBzaGFkb3dl
ZCIgOiAiRkFJTDogRG9jdW1lbnRUeXBlIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFy
IE5vdGF0aW9uID0gMTsKICAgICAgICAgbG9nKE5vdGF0aW9uID09IDEgPyAiUEFTUzogTm90YXRp
b24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBOb3RhdGlvbiB3YXMgbm90IHNoYWRv
d2VkIik7Ci0gICAgICAgIHZhciBFbnRpdHkgPSAxOwotICAgICAgICBsb2coRW50aXR5ID09IDEg
PyAiUEFTUzogRW50aXR5IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRW50aXR5IHdh
cyBub3Qgc2hhZG93ZWQiKTsKLSAgICAgICAgdmFyIEVudGl0eVJlZmVyZW5jZSA9IDE7Ci0gICAg
ICAgIGxvZyhFbnRpdHlSZWZlcmVuY2UgPT0gMSA/ICJQQVNTOiBFbnRpdHlSZWZlcmVuY2Ugc3Vj
Y2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBFbnRpdHlSZWZlcmVuY2Ugd2FzIG5vdCBzaGFk
b3dlZCIpOwogICAgICAgICB2YXIgUHJvY2Vzc2luZ0luc3RydWN0aW9uID0gMTsKICAgICAgICAg
bG9nKFByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9PSAxID8gIlBBU1M6IFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IFByb2Nlc3NpbmdJbnN0cnVjdGlv
biB3YXMgbm90IHNoYWRvd2VkIik7CiAgICAgICAgIHZhciBIVE1MRG9jdW1lbnQgPSAxOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dApp
bmRleCA0YTE4YWRmN2JhZjY2OWM3NjFkNTE5N2IxMzRkYTBiZmVlODcyZTg2Li4zN2MzNTQxOTM4
ZjExMDdkNjZjYzkzMTUwYzFiMTQzNjVmNWVhOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDYgQEAgUEFT
UyBUcnlBbGxvY2F0ZSgnQ2hhcmFjdGVyRGF0YScpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFs
bG9jYXRlKCdDREFUQVNlY3Rpb24nKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgn
RG9jdW1lbnRUeXBlJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0VsZW1lbnQn
KSBpcyAnZXhjZXB0aW9uJwotUEFTUyBUcnlBbGxvY2F0ZSgnRW50aXR5UmVmZXJlbmNlJykgaXMg
J2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0V2ZW50VGFyZ2V0JykgaXMgJ2V4Y2VwdGlv
bicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0hUTUxEb2N1bWVudCcpIGlzICdleGNlcHRpb24nCiBQQVNT
IFRyeUFsbG9jYXRlKCdOb2RlJykgaXMgJ2V4Y2VwdGlvbicKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2RvbS1jb25zdHJ1Y3RvcnMuaHRtbAppbmRleCBmMjQ5OWRjMDQ2NTM3NzM3NmZhODg2YjJjYmIz
YmQwYTlkODZlNDIxLi43OTUzYjYxYTI1ZDIxMDczN2JiY2Y2YTQwODE2ZTFhZmM1MGNkYmUwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCkBAIC0xOCw3ICsx
OCw2IEBAIHZhciBvYmplY3RzX2V4Y2VwdGlvbiA9IFsKICAgICAnQ0RBVEFTZWN0aW9uJywKICAg
ICAnRG9jdW1lbnRUeXBlJywKICAgICAnRWxlbWVudCcsCi0gICAgJ0VudGl0eVJlZmVyZW5jZScs
CiAgICAgJ0V2ZW50VGFyZ2V0JywKICAgICAnSFRNTERvY3VtZW50JywKICAgICAnTm9kZScsCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dApp
bmRleCA3ODhjYWJlNWQwM2I1MWZmYmM0MGZmMzYzY2FkNmNhMDZhYjg1ZDQ5Li42OTJiYTcwNWZl
ZDgzYjI5NWEyNzA4ZDVlNzM2MDZiMGU2YTAxYTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQKQEAgLTQ3LDkgKzQ3LDYgQEAgUEFT
UyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKS5jb25zdHJ1
Y3RvcikgaXMgJ0NEQVRBU2VjdGkKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3Jl
YXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpKSBpcyAnRWxlbWVudCcKIFBBU1MganNXcmFwcGVy
Q2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLl9fcHJvdG9f
XykgaXMgJ0VsZW1lbnRQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKS5jb25zdHJ1Y3RvcikgaXMgJ0VsZW1lbnRD
b25zdHJ1Y3RvcicKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCkpIGlzICdFbnRpdHlSZWZlcmVuY2UnCi1QQVNTIGpzV3JhcHBlckNsYXNzKHht
bERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpLl9fcHJvdG9fXykgaXMgJ0VudGl0eVJl
ZmVyZW5jZVByb3RvdHlwZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCkuY29uc3RydWN0b3IpIGlzICdFbnRpdHlSZWZlcmVuY2VDb25zdHJ1
Y3RvcicKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCkpIGlzICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nCiBQQVNTIGpzV3JhcHBlckNs
YXNzKHhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLl9fcHJvdG9fXykg
aXMgJ1Byb2Nlc3NpbmdJbnN0cnVjdGlvblByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3Mo
eG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuY29uc3RydWN0b3IpIGlz
ICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Db25zdHJ1Y3RvcicKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
d3JhcHBlci1jbGFzc2VzLmh0bWwKaW5kZXggOGJlOGZlM2JmMGMyM2MwMzRhMDc3ODIzNTUwZDY3
M2RmZTEwZWRjNy4uZmY4MWQ4ZjkwNTA0NDBkYzFlMzFkMzA4MzM1NWM2NjMxMjljOTYzMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKQEAgLTkwLDcgKzkwLDYg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9jdW1lbnQi
KTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJDREFUQVNl
Y3Rpb24iKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcs
ICd4JykiLCAiRWxlbWVudCIpOwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgpIiwgIkVudGl0eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpOwog
CiAgICAgZGVidWcoJycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKaW5k
ZXggNjNlMjQyYTJmYmUzMmI5ZDZiODNkNThjZWFkNTY0OWI0OTY3NDFiYi4uZDU5M2E1ZWFiYThh
OGUwOGUwMWMwOWMyMjQzMThkZTkwODYwY2Q4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQt
ZXhwZWN0ZWQudHh0CkBAIC0xODcsNyArMTg3LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1
OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnIK
IENPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NTog
QmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20g
YWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFBy
b3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3QgY2hlY2tz
IGNyb3NzLWZyYW1lIGFjY2VzcyBzZWN1cml0eSAocmRhcjovL3Byb2JsZW0vNTI1MTMwOSkuCiAK
IApAQCAtMjM1LDcgKzIzNCw2IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkRvY3VtZW50
RnJhZ21lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3Rhcmdl
dFdpbmRvdy5Eb2N1bWVudFR5cGUnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBj
YW5HZXQoJ3RhcmdldFdpbmRvdy5FbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgog
UEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRW50aXR5Jykgc2hvdWxkIGJlICdmYWxzZScgYW5k
IGlzLgotUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRW50aXR5UmVmZXJlbmNlJykgc2hvdWxk
IGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRXZhbEVycm9y
Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cu
RXZlbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdp
bmRvdy5IVE1MQW5jaG9yRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNz
LWdldC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtZ2V0Lmh0bWwKaW5kZXggMzgwMGEwYjVlODEyNGI5NDVkODEwMzkwYzNlOWI1ZjkwZTU3
ODM4ZC4uY2NlNWY3YTNmMjM0MWNhYjdmZjA5Y2JlNzViM2IyZTY5ZGVhNmNmOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtZ2V0Lmh0bWwKQEAgLTIwLDcgKzIwLDYgQEAKICAgICAgICAgICAgICJEb2N1bWVudFR5
cGUiLCAKICAgICAgICAgICAgICJFbGVtZW50IiwgCiAgICAgICAgICAgICAiRW50aXR5IiwgCi0g
ICAgICAgICAgICAiRW50aXR5UmVmZXJlbmNlIiwgCiAgICAgICAgICAgICAiRXZhbEVycm9yIiwg
CiAgICAgICAgICAgICAiRXZlbnQiLCAKICAgICAgICAgICAgICJIVE1MQW5jaG9yRWxlbWVudCIs
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5
RGVzY3JpcHRvci1leHBlY3RlZC50eHQKaW5kZXggZTQ1ODVhYmQ1MTYwNWMxZTJkOWU4YjlmMmNk
ODhhYmNkNWNhZDJlMC4uMWVhNWJkYzZkOTQ5NzQ2ZTFlOWMyNTM1NjY0NjVjNDBiMzliODVjOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CkBAIC03OCw3ICs3OCw2IEBAIFBBU1M6IGNhbkdldERl
c2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRG9jdW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQg
aXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0RvY3VtZW50RnJhZ21l
bnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRh
cmdldFdpbmRvdywgJ0RvY3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBB
U1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRWxlbWVudCcpIHNob3VsZCBiZSAn
ZmFsc2UnIGFuZCBpcy4KLVBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRW50
aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0RGVz
Y3JpcHRvcih0YXJnZXRXaW5kb3csICdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQg
aXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0V2ZW50Jykgc2hvdWxk
IGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3cs
ICdIVE1MQW5jaG9yRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdl
dE93blByb3BlcnR5RGVzY3JpcHRvci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKaW5k
ZXggZGVhMDE3ZDY3OGExNWZkZDEzYzc3YTkyYWU1MTVjNzA4ZTdiZDNhYy4uMzA2NmIzYTJhZmNi
NWQ1ZDIzOTFmY2Y0OTlkMWUzNDk0NjUxNTQxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKQEAgLTE5LDcgKzE5LDYgQEAK
ICAgICAgICAgICAgICJEb2N1bWVudEZyYWdtZW50IiwgCiAgICAgICAgICAgICAiRG9jdW1lbnRU
eXBlIiwgCiAgICAgICAgICAgICAiRWxlbWVudCIsIAotICAgICAgICAgICAgIkVudGl0eVJlZmVy
ZW5jZSIsIAogICAgICAgICAgICAgIkV2YWxFcnJvciIsIAogICAgICAgICAgICAgIkV2ZW50Iiwg
CiAgICAgICAgICAgICAiSFRNTEFuY2hvckVsZW1lbnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1w
dXQtZXhwZWN0ZWQudHh0CmluZGV4IDQ3ZmQ1NDM5ZDM3ZDc2ZDEwNjU0OWE3MTliYjVhYzkyMjky
M2NiZWMuLjg1YjBhYmExYjE1YjQ2ZWFlYmEwNjBmYmQ1NWUyOTI5ZjQxMjUyZDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxNTQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1MjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCiBBTEVSVDogUEFTUzogd2luZG93LkF0dHIgc2hvdWxkIGJlICdbb2JqZWN0
IEF0dHJDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQ0RBVEFTZWN0
aW9uIHNob3VsZCBiZSAnW29iamVjdCBDREFUQVNlY3Rpb25Db25zdHJ1Y3Rvcl0nIGFuZCBpcy4K
IEFMRVJUOiBQQVNTOiB3aW5kb3cuQ2hhcmFjdGVyRGF0YSBzaG91bGQgYmUgJ1tvYmplY3QgQ2hh
cmFjdGVyRGF0YUNvbnN0cnVjdG9yXScgYW5kIGlzLgpAQCAtMTQsOCArMTQsNiBAQCBBTEVSVDog
UEFTUzogd2luZG93LkRPTUV4Y2VwdGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgRE9NRXhjZXB0aW9u
Q29uc3RydWN0b3JdJyBhbgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5ET01JbXBsZW1lbnRhdGlvbiBz
aG91bGQgYmUgJ1tvYmplY3QgRE9NSW1wbGVtZW50YXRpb25Db25zdHJ1Y3Rvcl0nIGFuZCBpcy4K
IEFMRVJUOiBQQVNTOiB3aW5kb3cuRE9NUGFyc2VyIHNob3VsZCBiZSAnW29iamVjdCBET01QYXJz
ZXJDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRWxlbWVudCBzaG91
bGQgYmUgJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgYW5kIGlzLgotQUxFUlQ6IFBBU1M6
IHdpbmRvdy5FbnRpdHkgc2hvdWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KLUFMRVJUOiBQQVNT
OiB3aW5kb3cuRW50aXR5UmVmZXJlbmNlIHNob3VsZCBiZSAnW29iamVjdCBFbnRpdHlSZWZlcmVu
Y2VDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRXZhbEVycm9yIHNo
b3VsZCBiZSAnZnVuY3Rpb24gRXZhbEVycm9yKCkgeyAgICBbbmF0aXZlIGNvZGVdfScgYW5kIGlz
LgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FdmVudCBzaG91bGQgYmUgJ1tvYmplY3QgRXZlbnRDb25z
dHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQg
c2hvdWxkIGJlICdbb2JqZWN0IEhUTUxBbmNob3JFbGVtZW50Q29uc3RydWN0b3JdJyBhbmQgaXMu
CkBAIC0yNzQsMTUgKzI3MiwxNSBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIwOiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEyMTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMjM6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyNDogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNz
aW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29s
cywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTMzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIg
ZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
Ii4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxMzU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDEzMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM0OiBCbG9ja2VkIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzY6IEJsb2NrZWQg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2lu
ZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMs
IGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEz
NzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTM4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxMzk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0MDogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQxOiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNDI6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE0MzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTQ0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNDU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0NjogQmxvY2tlZCBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9t
YWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0zMjEsNyArMzE5LDcgQEAgQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE3ODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNzk6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4MDogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTgxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxODI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg1OiBCbG9ja2VkIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5z
LCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODY6IEJsb2Nr
ZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vz
c2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2Nv
bHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE4NzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
IGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0zMzcsNyAr
MzM1LDcgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5NjogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGluZSAx
OTc6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE5ODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTk5OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMDA6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMjogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjAz
OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJv
bSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4g
UHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FH
RTogbGluZSAyMDQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDIwNTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3Qg
bWF0Y2guCkBAIC0zNzAsNyArMzY4LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzMTogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNP
TEUgTUVTU0FHRTogbGluZSAyMzI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzMzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjM0OiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMzU6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90
b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogVGhpcyB0ZXN0IGNoZWNrcyBj
cm9zcy1mcmFtZSBhY2Nlc3Mgc2VjdXJpdHkgb2Ygd2luZG93IGF0dHJpYnV0ZSBzZXR0ZXJzIChy
ZGFyOi8vcHJvYmxlbS81MzI2NzkxKS4KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCmluZGV4IGFj
MDI0Zjg1NWFhODY2ZTY3MTdiOTdmZmIxYjc0OTU2YjNjNWQ3M2MuLmEyYjZiODcwYTE4YzczOTI1
NDhjMWVhOWQ4NTkyMjc4MjljYjZlMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCkBAIC01MCw3
ICs1MCw2IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFy
Z2V0V2luZG93LCAiRE9NSW1wbGVtZW50YXRpb24iKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0
eSh0YXJnZXRXaW5kb3csICJET01QYXJzZXIiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0
YXJnZXRXaW5kb3csICJFbGVtZW50Iik7Ci0gICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0
V2luZG93LCAiRW50aXR5UmVmZXJlbmNlIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFy
Z2V0V2luZG93LCAiRXZhbEVycm9yIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0
V2luZG93LCAiRXZlbnQiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3cs
ICJIVE1MQW5jaG9yRWxlbWVudCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUt
aWZyYW1lLWZvci1wdXQtdGVzdC5odG1sCmluZGV4IDM2ZjgyNmJkOTA1ZjA1Nzc4MGI4YjYzODY5
NmY3OTM3ZTVjNGM4OGYuLmI2N2RmYzM5ZmIwMjNiMGM5NzdlZWM4M2M5NjY2MWI4YzE5OGUwZDUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Ny
b3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0
Lmh0bWwKQEAgLTU4LDggKzU4LDYgQEAKICAgICAgICAgdmFyIERPTUltcGxlbWVudGF0aW9uT2xk
ID0gd2luZG93LkRPTUltcGxlbWVudGF0aW9uOwogICAgICAgICB2YXIgRE9NUGFyc2VyT2xkID0g
d2luZG93LkRPTVBhcnNlcjsKICAgICAgICAgdmFyIEVsZW1lbnRPbGQgPSB3aW5kb3cuRWxlbWVu
dDsKLSAgICAgICAgdmFyIEVudGl0eU9sZCA9IHdpbmRvdy5FbnRpdHk7Ci0gICAgICAgIHZhciBF
bnRpdHlSZWZlcmVuY2VPbGQgPSB3aW5kb3cuRW50aXR5UmVmZXJlbmNlOwogICAgICAgICB2YXIg
RXZhbEVycm9yT2xkID0gd2luZG93LkV2YWxFcnJvcjsKICAgICAgICAgdmFyIEV2ZW50T2xkID0g
d2luZG93LkV2ZW50OwogICAgICAgICB2YXIgSFRNTEFuY2hvckVsZW1lbnRPbGQgPSB3aW5kb3cu
SFRNTEFuY2hvckVsZW1lbnQ7CkBAIC0yNjEsOCArMjU5LDYgQEAKICAgICAgICAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuRE9NSW1wbGVtZW50YXRpb24iLCAiRE9NSW1wbGVtZW50YXRpb25PbGQiKTsK
ICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRE9NUGFyc2VyIiwgIkRPTVBhcnNlck9sZCIp
OwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbGVtZW50IiwgIkVsZW1lbnRPbGQiKTsK
LSAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRW50aXR5IiwgIkVudGl0eU9sZCIpOwotICAg
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbnRpdHlSZWZlcmVuY2UiLCAiRW50aXR5UmVmZXJl
bmNlT2xkIik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkV2YWxFcnJvciIsICJFdmFs
RXJyb3JPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZlbnQiLCAiRXZlbnRP
bGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQiLCAi
SFRNTEFuY2hvckVsZW1lbnRPbGQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1l
eHBlY3RlZC50eHQKaW5kZXggOWJlYTJhM2Q2NjY2ZDBkOTM2YzEwY2ZiMTE2OTFhMTk2YjRhZGI4
My4uOWJhYzg3NmI0MDlhNDc4ZGRlZmViYjA5NWY2NjQwZDQ0MmRjMDNiNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNh
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKQEAgLTksNyArOSw3IEBAIFBBU1Mg
SGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01Mb2NhdG9yCiBQQVNT
IEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NT2JqZWN0IAogUEFT
UyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTVVzZXJEYXRhIAog
UEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eSAKLUZB
SUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlSZWZlcmVu
Y2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXSIKK1BB
U1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlSZWZlcmVu
Y2UgCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRXZlbnRF
eGNlcHRpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3Jd
IgogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5hbWVMaXN0
IAogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5vdGF0aW9u
IApAQCAtMTksOSArMTksNyBAQCBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUg
cmVtb3ZlZDogUmFuZ2VFeGNlcHRpb24KIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVz
dCBiZSByZW1vdmVkOiBjcmVhdGVDREFUQVNlY3Rpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
KHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gY3JlYXRlQ0RBVEFTZWN0aW9uKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iCi1GQUlMIEhp
c3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogY3JlYXRlRW50aXR5UmVmZXJl
bmNlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIGNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpIHsK
LSAgICBbbmF0aXZlIGNvZGVdCi19IgorUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0
IGJlIHJlbW92ZWQ6IGNyZWF0ZUVudGl0eVJlZmVyZW5jZSAKIEZBSUwgSGlzdG9yaWNhbCBET00g
ZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxFbmNvZGluZyBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBudWxsCiBGQUlMIEhp
c3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogeG1sU3RhbmRhbG9uZSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoYm9vbGVh
bikgZmFsc2UKIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4
bWxWZXJzaW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBi
dXQgZ290IChvYmplY3QpIG51bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMmQ4
ZGM4ZTE5ODU5NzQ1OGM5MzE0ZGVkYmVlMjdjZjM2MWQ2ZTM4ZC4uNzk4OTU4MmFiM2ViOGFjMDUw
YTNkOGE3NWRhZWM0MjY4YmRlZDdmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAg
LTMxMywxMSArMzEzLDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUK
LVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZl
cmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgn
Z2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50Jyku
dmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50Jyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYmFhYjQ5ODIwZjRkYTlmMzM5MzBiMmI3
OTk0MmU5MzMxMDVlOGY3MC4uNDU3ZTk5MDE0ZDQzODkzMmNhNDYzMjc4NGM5YjZjYTU3ODlkMmUy
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dApAQCAtMzEzLDExICszMTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMg
dHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3Bl
cnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJl
ZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZl
bnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxz
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZl
bnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCBlZGI3NTUwNzYyOWM3
YzBkYzYyMDdiZjA0OTQ2MGE0ZDU3ODk0YTgyLi44MmIwMjRhODY2YTQwZDMyOTFjNjVjNzNhZmNm
OWJjMjQzYTk3NDVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNl
ZGVuY2UtZXhwZWN0ZWQudHh0CkBAIC0xMTQsOCArMTE0LDYgQEAgUEFTUyB3aW5bJ0RvY3VtZW50
VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFT
UyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9y
XScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3Ry
dWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRD
b25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29i
amVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRp
dHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBp
cyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScg
aXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50RXhjZXB0aW9uJ10gPT0gJ1tvYmplY3QgRXZlbnRFeGNl
cHRpb25Db25zdHJ1Y3Rvcl0nIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBhMGM2ZmY0Zjg3OWM1OTljNjAwN2U2N2U2OTVi
MjFhNTYyZTI2OTlmLi5lNjgxYTQ2YTRmOGU2ZWQ1ZTI0Yjc3YTE3OTMwYWM1MTVlOGU2NGQ1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBA
IC0zMTgsMTEgKzMxOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHko
J2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJl
bmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
LnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
Lmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1
dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYzE1
YjY2NWEwZmZhYjY3NmMwZmU4ZDk3NWY4MzhiNzdkODk4OWJjOC4uZTE4NDI5NWMwZWMxM2M4MDNk
M2JmNTk1MDQxNzhhY2Y1M2NhNmVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMw
OCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1l
bnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFs
dWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVy
YWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVy
cm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
cnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAwZmJjNGIwMjhkOTJlNmFk
ZmE2NjM3NmU4ZWUyYmY2N2VjNGZjZjMuLjk0ZDc4MTI2MjkwZDBiM2YwMzdhNDk2NWZhNWRmN2Rh
M2RjMjg3NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4LDYgQEAgUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9w
ZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZl
cmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRp
dHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJl
bmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3Rl
ZC50eHQKaW5kZXggOTNkYWRjMDMxZjYyZjM2NjNhODk2NjAzYTNkYWIxOGVlMjY0MzJhNC4uMTYy
ZjQ4ZmM1NmI5ODc5YjNhOWIxMzZiOGI3MWIyZWY5YTg3YTJlZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVu
Y2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0LDggKzEx
NCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVD
b25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVj
dCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10g
PT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1l
bnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsn
RW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3Jd
JyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5
UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29i
amVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tv
YmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudEV4Y2VwdGlv
biddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2Vz
LW9iamMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dAppbmRleCBjMmNmZmUxNGJkM2UyMGNhZTUz
M2ZjOTBjZDdhNzVkZGVmNTRhYjE3Li43YzJiMTczMTE0NDVmM2M3ZDQzNzBlODRjMDc2ODFmZDM5
MmYyY2YyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3Jh
cHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKQEAgLTIxLDcg
KzIxLDYgQEAgWE1MCiBQQVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQpIGlzICdET01E
b2N1bWVudCcKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNl
Y3Rpb24oKSkgaXMgJ0RPTUNEQVRBU2VjdGlvbicKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxE
b2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykpIGlzICdET01FbGVtZW50Jwot
UEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgp
KSBpcyAnRE9NRW50aXR5UmVmZXJlbmNlJwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3Vt
ZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpKSBpcyAnRE9NUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uJwogCiBFdmVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKaW5kZXggMGJiYjQ0NWFjZjc1
YTgwOTkyNGJiYzIyODk2ODIyODQ2YzNhM2MxYi4uZjM1OWQ5NDNkMDhkMGMwMDljY2I2N2FiNzIy
ZTg2OGJkNjFiYWUzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
ZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKQEAgLTEwMyw3ICsxMDMsNiBA
QCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB0ZXN0KCJ4bWxEb2N1bWVudCIsICJEb2N1bWVudCIp
OwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpIiwgIkNEQVRBU2Vj
dGlvbiIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4Jywg
J3gnKSIsICJFbGVtZW50Iik7Ci0gICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCkiLCAiRW50aXR5UmVmZXJlbmNlIik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkiLCAiUHJvY2Vzc2luZ0luc3RydWN0aW9uIik7CiAK
ICAgICBkZWJ1ZygnJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKaW5kZXggMDQ0ZjE0ZjBlNTI5NmU2NzVkOGI0M2M4YjQzZDgwMmQyNjk3NzEx
OC4uYzFhNDIyZjBhMTU1NzcxOGMxYTdlZDlmMTA0Zjg4Y2Q5NTBhNTYxNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICsz
MDgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxl
bWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZh
bHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBm
YWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1l
cmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBF
cnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1
dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwODNhMDcxZjZjZTZlYjVlZDIxY2QwNDYwMWEzYWJlNzYx
OTMxZmJmLi42ZWJhYWFmNmNjY2EwMTBhOTJmZjcwN2YxOTI0MWRjODU1N2NlZjhhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0yMzgs
MTEgKzIzOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQn
KSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNl
JykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcp
IGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJyku
ZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVl
IGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261592</attachid>
            <date>2015-09-19 17:01:13 -0700</date>
            <delta_ts>2015-09-21 09:13:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150919170058.patch</filename>
            <type>text/plain</type>
            <size>451972</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI5ZDEzYzZjMTc3NThl
MDJiZmNlZmQ0ODQwNGY3YjViZDhiMjUxZS4uZjQ4MzYwZDQwMzNiZGNiNDY4MzVjNTA5NDM1ZmM1
YTk4NjRhNjg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEyMSBAQAogMjAxNS0wOS0xOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKKzIwMTUtMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKwogICAgICAgICBHZXQgcmlkIG9mIG1vc3QgY3VzdG9tIGJpbmRpbmdzIGZvciBMb2Nh
dGlvbi5pZGwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0OTM3MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTg2MDlhMDc4OWU2ZTliYmEwODZlNzY5YmQyMzhkMzRi
MmM5ODBlYy4uNDEwMTc1YjM5NTExNzg1NDNhMGM2NGMzOWJiYjY1NTAwZDhkM2JiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA5LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBsZWdhY3kgRW50aXR5UmVmZXJl
bmNlIERPTSBOb2RlIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0OTM0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERyb3AgaGFuZGxpbmcgRW50aXR5UmVmZXJlbmNlIE5vZGVzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXS0RPTU5vZGVDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0Fz
c2lzdGFibGVFbGVtZW50KToKKwogMjAxNS0wOS0xOSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIEF0dGVtcHRlZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGNhMWRlNGQxNTY5NDhiZjdlMTBkMGVlYjQ2NmNjZmM1ZTM2NmIxMWEuLmQ1MTk5ZGZi
ZGMxZDY2OTdhOGQwOGIzZTA5NmFkMjZlZTRiODMwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0zOTEsNyArMzkxLDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBkb20v
RG9jdW1lbnRGcmFnbWVudC5pZGwKICAgICBkb20vRG9jdW1lbnRUeXBlLmlkbAogICAgIGRvbS9F
bGVtZW50LmlkbAotICAgIGRvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCiAgICAgZG9tL0Vycm9yRXZl
bnQuaWRsCiAgICAgZG9tL0V2ZW50LmlkbAogICAgIGRvbS9FdmVudEV4Y2VwdGlvbi5pZGwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCBkM2ViNTE3MzFlMDYwMDJlMTM0MzhkYWNiZjU3
ZWE0N2FkZGM0MzFjLi4zNDNhODAxMjVmNDJmOGQ5ODI4NzBjMzdiNDUyNDE0YmY4OGY1Yzg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0xNDksNyArMTQ5LDYgQEAKICNpbmNsdWRl
ICJKU0RPTVdpbmRvdy5jcHAiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDU1MuY3BwIgogI2luY2x1
ZGUgIkpTRWxlbWVudC5jcHAiCi0jaW5jbHVkZSAiSlNFbnRpdHlSZWZlcmVuY2UuY3BwIgogI2lu
Y2x1ZGUgIkpTRXJyb3JFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudC5jcHAiCiAjaW5jbHVk
ZSAiSlNFdmVudEV4Y2VwdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGI5
MjQxZGEzOTVkODIwZTE3YmMwZjE1NGRjNTc2OWQ2NWNmYTMxMmEuLjY5NDNiNmQ5ZTE2Yjg2ZDFk
NDlmMzdmOGE2ZmZhMmVkZDgzNWVjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC01
ODMsNyArNTgzLDYgQEAgbGlzdChBUFBFTkQgR09iamVjdERPTUJpbmRpbmdzU3RhYmxlX0lETF9G
SUxFUwogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50LmlkbAogICAgIGRvbS9Eb2N1bWVudFR5cGUu
aWRsCiAgICAgZG9tL0VsZW1lbnQuaWRsCi0gICAgZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKICAg
ICBkb20vRXZlbnQuaWRsCiAgICAgZG9tL0tleWJvYXJkRXZlbnQuaWRsCiAgICAgZG9tL01vdXNl
RXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCA3ZjM5MjQ1OGJiY2ZkNTJiYzRkNWI2NzFkOGEzOGU0OTMzZGMzZDhlLi4xNjVh
ZmY4MWJjMjU0YjRiMGQ3ZGJlZDU1ZjQwMzBiZGIwZDQxMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE4MzIsMjAgKzE4MzIsNiBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAi
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk4NTks
NyArMTk4NDUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRE9NVVJMLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNET01XaW5kb3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0
dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQo
UGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJy
b3JFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0V2ZW50RXhjZXB0aW9uLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggNmU4
YzI4NDBmMjNkZWE5ZjQ0ZjJlODRkMGY4OTM2ZTczYTVlYmE1NS4uMWJlY2U2MWIzYzI5NTQ0ZDUw
ZDM2YTAwMDRhYjgzNGQ0ODA4NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNTI1Nyw5ICs1MjU3LDYg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vs
ZW1lbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAiPgogICAgICAgPEZpbHRlcj5E
ZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTI2NDYsOSArMTI2
NDMsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRWxlbWVudC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJj
ZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vycm9yRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPkRl
cml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTg4YTdmYzg4NjMw
Y2Q4ODU1NjFlYzVkMDUxNTJmMGQ2NGFjMDVmOC4uOWI5M2VhNGQ0OTcxOWQ5MmE1MDA2NmIxNzg4
Y2RjOTBkZjg3YTlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzU4Nyw4ICszNTg3LDYgQEAKIAkJOTNGOUI2NTgwQkEwRjM1
RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNjU1MEJBMEYzNUUwMDg1NDA2
NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggKi87IH07CiAJCTkzRjlCNkUwMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2REUwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVu
dC5jcHAgKi87IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRGMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKLQkJOTNGOUI3NzQwQkE1RkREQzAw
ODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0
eVJlZmVyZW5jZS5jcHAgKi87IH07Ci0JCTkzRjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0Vu
dGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi87
IH07CiAJCTkzRjlCN0EwMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc5RTBCQTYw
MzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovOyB9OwogCQk5M0Y5QjdBMTBCQTYw
MzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRB
U2VjdGlvbi5oICovOyB9OwogCQk5M0ZEQUZDQTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5z
ZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwOTU3LDggKzEw
OTU1LDYgQEAKIAkJOTNGOUI2NTUwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVt
ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTENh
bnZhc0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5
QjZERTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29tbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudGl0eVJlZmVyZW5j
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjlCNzczMEJBNUZEREMwMDg1
NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0VudGl0eVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDREFUQVNlY3Rpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RjBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNl
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDREFUQVNlY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREFGQzkwQjExMzA3NDAwRTI3NDZG
IC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MDA0Myw4ICsyMDAzOSw2IEBACiAJCQkJQkM2NDY0OTYxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9N
U3RyaW5nTWFwLmggKi8sCiAJCQkJNjVERjMxRTUwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVu
dC5jcHAgKi8sCiAJCQkJNjVERjMxRTYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5oICov
LAotCQkJCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAg
Ki8sCi0JCQkJOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmgg
Ki8sCiAJCQkJRkU4MERBNUYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwICov
LAogCQkJCUZFODBEQTYwMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggKi8sCiAJ
CQkJRkU4MERBNjEwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uY3BwICovLApAQCAt
MjU1NzIsNyArMjU1NjYsNiBAQAogCQkJCUZENzg2OEJBMTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUZBMDlEMUND
NjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFERUM3OEY4MThF
RTUzMDgwMDEzMTVDMiAvKiBKU0VsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAotCQkJCTkz
RjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkVDRjdBREQxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEU4Mzc4RTA5Rjg1RDRGMDBCODVBRTQgLyogSlNFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTEzMiw3ICsyOTEyNSw2IEBACiAJCQkJRkQ3ODY4Qjkx
MzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk2NURGMzFGOTA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDMkVENTU1MEM2QjlCRDMwMDkyMEJGRiAvKiBKU0VsZW1lbnRDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGOUI3NzQwQkE1RkREQzAwODU0MDY0IC8qIEpT
RW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFQ0Y3QURDMTAxNjJCMzgw
MDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjNENDYxNDgx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0RTgzNzg0MDlGODVEMUMwMEI4NUFFNCAvKiBKU0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0
ZS5jcHAKaW5kZXggNTljZjY4YzEyOTBhN2FiMDI2ZTMxZTMyNjFiMDY4YTQzZDM2NjA5My4uYWNh
MWY5OGFjOTk0ODkwYzcwMjg3NmIxYThjZWI3MGI5N2JmYWJlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCkBAIC00Nyw3
ICs0Nyw2IEBACiAjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0RE9NRG9jdW1lbnRUeXBlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUVs
ZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRW50aXR5UmVmZXJlbmNlUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUV2ZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dERPTUV2ZW50VGFyZ2V0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUZpbGVQcml2YXRl
LmgiCkBAIC05Myw4ICs5Miw2IEBAIFdlYktpdERPTU5vZGUqIHdyYXAoTm9kZSogbm9kZSkKICAg
ICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwVGV4dChkb3duY2FzdDxUZXh0Pihub2Rl
KSkpOwogICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICByZXR1cm4g
V0VCS0lUX0RPTV9OT0RFKHdyYXBDREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9u
Kj4obm9kZSkpKTsKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAg
ICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRW50aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0
PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lO
U1RSVUNUSU9OX05PREU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcFByb2Nl
c3NpbmdJbnN0cnVjdGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2Rl
KSkpOwogICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ29iamVjdC93ZWJraXRkb20uc3ltYm9scyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0ZG9tLnN5bWJvbHMKaW5kZXggY2ZkYWZlYzkwM2Y4ZTA2
OGJjYTQ1MWJiMDc3YjQ5ZjE2NjMzNWNmYy4uOTI1NDAxMjExMDVjNDIzYTlkY2YyZGJiNmZjZWVi
OTMwMTI0MjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC93
ZWJraXRkb20uc3ltYm9scworKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L3dl
YmtpdGRvbS5zeW1ib2xzCkBAIC02OCw3ICs2OCw2IEBAIFdlYktpdERPTUVsZW1lbnQqIHdlYmtp
dF9kb21fZG9jdW1lbnRfY3JlYXRlX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqLCBjb25zdCBn
CiBXZWJLaXRET01UZXh0KiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV90ZXh0X25vZGUoV2Vi
S2l0RE9NRG9jdW1lbnQqLCBjb25zdCBnY2hhciopCiBXZWJLaXRET01FdmVudCogd2Via2l0X2Rv
bV9kb2N1bWVudF9jcmVhdGVfZXZlbnQoV2ViS2l0RE9NRG9jdW1lbnQqLCBjb25zdCBnY2hhcios
IEdFcnJvcioqKQogV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiB3ZWJraXRfZG9tX2RvY3VtZW50X2Ny
ZWF0ZV9ub2RlX2l0ZXJhdG9yKFdlYktpdERPTURvY3VtZW50KiwgV2ViS2l0RE9NTm9kZSosIGd1
bG9uZywgV2ViS2l0RE9NTm9kZUZpbHRlciosIGdib29sZWFuLCBHRXJyb3IqKikKLVdlYktpdERP
TUVudGl0eVJlZmVyZW5jZSogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZW50aXR5X3JlZmVy
ZW5jZShXZWJLaXRET01Eb2N1bWVudCosIGNvbnN0IGdjaGFyKiwgR0Vycm9yKiopCiBXZWJLaXRE
T01SYW5nZSogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfcmFuZ2UoV2ViS2l0RE9NRG9jdW1l
bnQqKQogV2ViS2l0RE9NQXR0ciogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfYXR0cmlidXRl
KFdlYktpdERPTURvY3VtZW50KiwgY29uc3QgZ2NoYXIqLCBHRXJyb3IqKikKIFdlYktpdERPTUF0
dHIqIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2F0dHJpYnV0ZV9ucyhXZWJLaXRET01Eb2N1
bWVudCosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqLCBHRXJyb3IqKikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IGFlYWMwODdkOWRjZmE1MTEw
NzkzZDJmZjJjOWFmYzIzZTEyYjgxNTIuLmIyN2E5ODFjN2QwOWZhNTVjYmUyOTY5YmI3M2IyMWQ0
MTQ0ODg0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNw
cApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbnRpdHkuaCIKLSNpbmNsdWRlICJFbnRp
dHlSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSFRN
TEF1ZGlvRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCkBAIC01MSw3
ICs1MCw2IEBACiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnRG
cmFnbWVudC5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnRUeXBlLmgiCi0jaW5jbHVkZSAiSlNFbnRp
dHlSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJK
U0hUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmgi
CkBAIC0yMDksOSArMjA3LDYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBjcmVhdGVX
cmFwcGVySW5saW5lKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmoKICNlbmRpZgogICAg
ICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBE
b2N1bWVudEZyYWdtZW50LCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVB
VEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBFbnRpdHlSZWZlcmVuY2UsIG5vZGUpOwotICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgTm9kZSwgbm9kZSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQppbmRleCA4ZTFmYmUxZmNkN2MzN2M0NmU5MGMzM2Nj
MDQ0MjM0YTFhZTQ4NzgyLi5lODM5NjVkYmMzNGYyMWMzY2UzMTE2MGQ0NzVhNmQyODJjYTNmYmY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQpAQCAtMzExLDggKzMxMSw2IEBAIENs
YXNzIGtpdENsYXNzKFdlYkNvcmU6Ok5vZGUqIGltcGwpCiAgICAgICAgICAgICByZXR1cm4gW0RP
TVRleHQgY2xhc3NdOwogICAgICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNEQVRBX1NFQ1RJT05f
Tk9ERToKICAgICAgICAgICAgIHJldHVybiBbRE9NQ0RBVEFTZWN0aW9uIGNsYXNzXTsKLSAgICAg
ICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6Ci0gICAgICAgICAg
ICByZXR1cm4gW0RPTUVudGl0eVJlZmVyZW5jZSBjbGFzc107CiAgICAgICAgIGNhc2UgV2ViQ29y
ZTo6Tm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAgICAgICAgcmV0dXJu
IFtET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gY2xhc3NdOwogICAgICAgICBjYXNlIFdlYkNvcmU6
Ok5vZGU6OkNPTU1FTlRfTk9ERToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IGM1MTYzMWMwZjgxNGNjOThj
ZTg3NjBjZDRmNmU2MGU5NmJlYTNhOTAuLjY5MGFiODFlMzNjZjk2MmY5Y2U3MDZmZGNmYmMzODcy
YWQ5NGZiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAtNzYsNyArNzYsNiBAQCBteSAldHJhbnNmZXJG
dWxsVHlwZUhhc2ggPSAoIkF1ZGlvVHJhY2siID0+IDEsICJBdWRpb1RyYWNrTGlzdCIgPT4gMSwg
IkJhclByb3AiCiBteSAkY2FuQmVOdWxsUGFyYW1zID0gewogICAgICd3ZWJraXRfZG9tX2RvY3Vt
ZW50X2NyZWF0ZV9hdHRyaWJ1dGVfbnMnID0+IFsnbmFtZXNwYWNlVVJJJ10sCiAgICAgJ3dlYmtp
dF9kb21fZG9jdW1lbnRfY3JlYXRlX2VsZW1lbnRfbnMnID0+IFsnbmFtZXNwYWNlVVJJJ10sCi0g
ICAgJ3dlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2VudGl0eV9yZWZlcmVuY2UnID0+IFsnbmFt
ZSddLAogICAgICd3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9ub2RlX2l0ZXJhdG9yJyA9PiBb
J2ZpbHRlciddLAogICAgICd3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV90cmVlX3dhbGtlcicg
PT4gWydmaWx0ZXInXSwKICAgICAnd2Via2l0X2RvbV9kb2N1bWVudF9ldmFsdWF0ZScgPT4gWydp
blJlc3VsdCcsICdyZXNvbHZlciddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0
dHIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCmluZGV4IGFjN2I2NmY5OTcwNWQ4
OTllZWNlM2MyODk0Zjg5ZTFmODA5ZDE1ZjguLjk2ZDdlZWQzYjBmZjIxNTU5YWRjMzM1ZTIwYTRj
NDU5ZGYyMWJkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAgLTE0OCwxMyArMTQ4LDcgQEAgUmVmPE5v
ZGU+IEF0dHI6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xv
bmluZ09wZXJhdGlvbikKIC8vIERPTSBTZWN0aW9uIDEuMS4xCiBib29sIEF0dHI6OmNoaWxkVHlw
ZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAg
ICAgICAgY2FzZSBURVhUX05PREU6Ci0gICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RF
OgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIHJldHVybiB0eXBlID09IFRFWFRfTk9ERTsKIH0K
IAogdm9pZCBBdHRyOjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRy
LmgKaW5kZXggMTI0YzZkN2EyYWEyODY4MzBmY2JhMjk2Mjg4ODhiNzIwMjI5OTI4Ni4uZjZmMzYy
MDc3MTdhMzVjMmIyNDNmYWFhOTY1ZGMzYWI3MmYyNmJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0F0dHIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBAIC0zMyw3
ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247
CiBjbGFzcyBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOwogCi0vLyBBdHRyIGNhbiBoYXZlIFRleHQg
YW5kIEVudGl0eVJlZmVyZW5jZSBjaGlsZHJlbgorLy8gQXR0ciBjYW4gaGF2ZSBUZXh0IGNoaWxk
cmVuCiAvLyB0aGVyZWZvcmUgaXQgaGFzIHRvIGJlIGEgZnVsbGJsb3duIE5vZGUuIFRoZSBwbGFu
CiAvLyBpcyB0byBkeW5hbWljYWxseSBhbGxvY2F0ZSBhIHRleHRjaGlsZCBhbmQgc3RvcmUgdGhl
CiAvLyByZXN1bHRpbmcgbm9kZXZhbHVlIGluIHRoZSBhdHRyaWJ1dGUgdXBvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGM5NjM0YjBjZTEwMDM0ZTkyYjVjNTE2ZTEzMmQw
YzQzNDMxN2E1MGQuLjNmNGZlMGY4MDM3NGM4MzcwMDk5MGVkNGI0NWE0YTlkMjE5NDliYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTE4MCw3ICsxODAsNiBAQCBzdGF0
aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBu
ZXdQYXJlbnQsIE5vZGUmIG5ldwogewogICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGgg
aWYgcG9zc2libGUuCiAgICAgaWYgKChuZXdDaGlsZC5pc0VsZW1lbnROb2RlKCkgfHwgbmV3Q2hp
bGQuaXNUZXh0Tm9kZSgpKSAmJiBuZXdQYXJlbnQuaXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAg
IEFTU0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOwogICAgICAgICBBU1NFUlQoIW5l
d1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgICAgIEFTU0VSVChpc0NoaWxkVHlw
ZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpOwogICAgICAgICBpZiAoY29udGFpbnNDb25z
aWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKQEAgLTE5Myw4ICsxOTIs
NiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWlu
ZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0Vs
ZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlm
IChuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAgcmV0dXJuIE5PX01PRElGSUNB
VElPTl9BTExPV0VEX0VSUjsKICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50
cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNU
X0VSUjsKIApAQCAtMjA5LDcgKzIwNiw2IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBj
aGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3CiAKIHN0
YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250
YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKLSAgICBBU1NFUlQoIW5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKICAgICBBU1NFUlQo
IW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBl
QWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgaWYgKG5ld0NoaWxkLmNvbnRhaW5z
KCZuZXdQYXJlbnQpKSB7CkBAIC01MjEsMTIgKzUxNyw2IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6
cmVtb3ZlQ2hpbGQoTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMg
PSAwOwogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgdGhp
cyBub2RlIGlzIHJlYWRvbmx5LgotICAgIGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAg
IGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5v
dCBhIGNoaWxkIG9mIHRoaXMgbm9kZS4KICAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9
IHRoaXMpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggMDhkOWRjZDljMjQzYTdlNjcwZjVmMjdhZGY3NTM0NzNlZjZiMjY0My4uYjkzZTA1
MzU3MmNlOTEyMTc1YzNjM2VmYjkzYjllOTM1OTNkNmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC05MDksMTcgKzkwOSwxMCBAQCBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBE
b2N1bWVudDo6Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKGNvbnN0IFN0cmluZwogICAgIHJl
dHVybiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNyZWF0ZSgqdGhpcywgdGFyZ2V0LCBkYXRhKTsK
IH0KIAotUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZShjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPEVudGl0
eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcm
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIWlzVmFsaWROYW1lKG5hbWUpKSB7Ci0g
ICAgICAgIGVjID0gSU5WQUxJRF9DSEFSQUNURVJfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICB9Ci0gICAgaWYgKGlzSFRNTERvY3VtZW50KCkpIHsKLSAgICAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVy
biBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0ZSgqdGhpcywgbmFtZSk7CisgICAgZWMgPSBOT1RfU1VQ
UE9SVEVEX0VSUjsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmPFRleHQ+IERvY3VtZW50
OjpjcmVhdGVFZGl0aW5nVGV4dE5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtOTQ0LDcgKzkz
Nyw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5v
ZGUsIGJvb2wgZGVlcCwgRXhjZXB0aW9uQ29kZSYKICAgICBjYXNlIEVMRU1FTlRfTk9ERToKICAg
ICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNl
IEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05f
Tk9ERToKICAgICBjYXNlIENPTU1FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5U
X05PREU6CkBAIC05NzQsMTEgKzk2Niw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHRO
b2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKHNvdXJjZS0+aXNSZWFkT25seU5vZGUo
KSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCiAgICAgRXZlbnRRdWV1ZVNjb3BlIHNjb3BlOwogCiAg
ICAgc3dpdGNoIChzb3VyY2UtPm5vZGVUeXBlKCkpIHsKQEAgLTE3MTAsNTIgKzE2OTcsNTIgQEAg
UmVmPFJhbmdlPiBEb2N1bWVudDo6Y3JlYXRlUmFuZ2UoKQogICAgIHJldHVybiBSYW5nZTo6Y3Jl
YXRlKCp0aGlzKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5v
ZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxO
b2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRp
b25Db2RlJiBlYykKK1JlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRl
cmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZp
bHRlcj4mJiBmaWx0ZXIsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBj
cmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGVj
KTsKK30KKworUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRv
cihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVy
PiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAg
ICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAg
cmV0dXJuIE5vZGVJdGVyYXRvcjo6Y3JlYXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShm
aWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICByZXR1cm4gTm9kZUl0ZXJhdG9y
OjpjcmVhdGUocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpOwogfQogCi1SZWZQ
dHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3Qs
IHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBF
eGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVO
b2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRU
b1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVO
b2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZWMpOwogfQogCi1SZWZQdHI8
Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVu
c2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8Tm9kZUl0
ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRv
U2hvdywgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9y
KHJvb3QsIDB4RkZGRkZGRkYsIG51bGxwdHIsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRv
cj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCBFeGNlcHRpb25Db2Rl
JiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2Rl
KiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZp
bHRlciwgYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJ
dGVyYXRvcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVy
biBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBl
Yyk7CiB9CiAKLVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihO
b2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYm
IGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykK
K1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlw
ZUVycm9yOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIFRyZWVX
YWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5k
RW50aXR5UmVmZXJlbmNlcyk7Ci19Ci0KLVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3Jl
YXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0
cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgcmV0dXJu
IGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGZh
bHNlLCBlYyk7CisgICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93
LCBXVEY6Om1vdmUoZmlsdGVyKSk7CiB9CiAKIFJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6
Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdo
YXRUb1Nob3csIG51bGxwdHIsIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxr
ZXIocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZWMpOwogfQogCiBSZWZQdHI8VHJlZVdhbGtl
cj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgMHhGRkZGRkZGRiwgbnVs
bHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCAweEZG
RkZGRkZGLCBudWxscHRyLCBlYyk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxlRm9yY2Vk
U3R5bGVSZWNhbGMoKQpAQCAtMzM1Nyw3ICszMzQ0LDYgQEAgYm9vbCBEb2N1bWVudDo6Y2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9O
T0RFOgogICAgIGNhc2UgRE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5U
X05PREU6Ci0gICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBURVhUX05P
REU6CiAgICAgY2FzZSBYUEFUSF9OQU1FU1BBQ0VfTk9ERToKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMzM4NSw3ICszMzcxLDYgQEAgYm9vbCBEb2N1bWVudDo6Y2FuQWNjZXB0Q2hpbGQoY29u
c3QgTm9kZSYgbmV3Q2hpbGQsIGNvbnN0IE5vZGUqIHJlZkNoaWxkLCBBY2NlcHQKICAgICBjYXNl
IEFUVFJJQlVURV9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2Ug
RE9DVU1FTlRfTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNl
IFRFWFRfTk9ERToKICAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDNhYzk1MTc5MzlhYjRlZDY0YWNhMTQz
MTcyNTcwMzBhOTEzNDI5ZWMuLjc4MWVmMjBiZDMzNzc5M2NjODMzYzNjMWNhYmE1MGEwYzFiODhl
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01MzYsMTIgKzUzNiwxMiBAQCBwdWJsaWM6CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8UmFuZ2U+IGNyZWF0ZVJhbmdlKCk7CiAKLSAgICBSZWZQ
dHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlS
ZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3Jl
YXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVm
UHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmlu
ZGluZ3MuCiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUq
IHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0
b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJik7
CiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3Qs
IEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0
ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYpOworICAg
IFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNv
ZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0
ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8
Tm9kZUZpbHRlcj4mJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBj
cmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5v
ZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IGRh
MGY3MmNhYWQwYTg3YjU3OGJmZDRjZDdlNDg0NWE1NmFjYmFkMmEuLmUzNDU0Y2MzMTY5MjlhMzUw
NjAwMmRlZWQzZWE4YjlmOGViMGQyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMzks
NyArMzksMTAgQEAKICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBOZXdPYmplY3Qs
IFJhaXNlc0V4Y2VwdGlvbl0gUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbihbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB0YXJnZXQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERP
TVN0cmluZyBkYXRhKTsKICAgICBbTmV3T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEF0dHIgY3Jl
YXRlQXR0cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUp
OwotICAgIFtOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0
ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBu
YW1lKTsKKworI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09C
SkVDVElWRV9DCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVu
dGl0eVJlZmVyZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1l
KTsKKyNlbmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VB
R0VfT0JKRUNUSVZFX0MKICAgICBbSW1wbGVtZW50ZWRBcz1nZXRFbGVtZW50c0J5VGFnTmFtZUZv
ck9iakNdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKFtEZWZhdWx0PVVuZGVmaW5lZF0g
b3B0aW9uYWwgRE9NU3RyaW5nIHRhZ25hbWUpOwpAQCAtOTIsMTQgKzk1LDIzIEBACiAKICAgICAv
LyBET00gTGV2ZWwgMiBUcmFudmVyc2FsIGFuZCBSYW5nZSAoRG9jdW1lbnRUcmF2ZXJzYWwgaW50
ZXJmYWNlKQogCi0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0
aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290
LAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElW
RV9DIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0VfR09CSkVDVAorICAg
IFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gTm9kZUl0ZXJh
dG9yIGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlIHJvb3QsCiAgICAgICAgIG9wdGlvbmFsIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCiAgICAgICAgIG9wdGlvbmFsIE5vZGVG
aWx0ZXI/IGZpbHRlciwKICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRp
b24sIE5ld09iamVjdF0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwKKyAg
ICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb25dIFRyZWVXYWxr
ZXIgY3JlYXRlVHJlZVdhbGtlcihOb2RlIHJvb3QsCiAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCiAgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0
ZXI/IGZpbHRlciwKICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzKTsKKyNlbHNlCisgICAgW1JhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBOb2RlSXRlcmF0
b3IgY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9vdCwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKKyAgICAgICAgb3B0aW9uYWwgTm9kZUZp
bHRlcj8gZmlsdGVyKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIFRyZWVXYWxr
ZXIgY3JlYXRlVHJlZVdhbGtlcihOb2RlIHJvb3QsCisgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCisgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0
ZXI/IGZpbHRlcik7CisjZW5kaWYKIAogICAgIC8vIERPTSBMZXZlbCAyIEFic3RyYWN0IFZpZXdz
IChEb2N1bWVudFZpZXcgaW50ZXJmYWNlKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFn
bWVudC5jcHAKaW5kZXggZjliMzhhMGJkMjhlOGUzYzYwOTM0YWZmMWE2MDA1OTI3MDkwM2ZlYy4u
YTY3MDAyYzRiZjk4NzQ0YTI5NTNmNDllMjZlNjFiYTBjYWQzNzFhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtNjAsNyArNjAsNiBAQCBib29sIERvY3VtZW50
RnJhZ21lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICAgICAg
Y2FzZSBDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgVEVYVF9OT0RFOgogICAgICAgICBjYXNl
IENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICAgICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZDMwNzRkMWU4Mzc0YjBi
Nzc3YjZlNzA0M2I0NzliYjU2ODQ2ZTU0Li41OGZjODA0Njc4MjQyZjRkZGI2MjZjYmFhNjk4NDgw
ZjFhNDhmY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNzU1LDcgKzE3NTUsNiBAQCBi
b29sIEVsZW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICBj
YXNlIENPTU1FTlRfTk9ERToKICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToK
ICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCmluZGV4IDdlOTFhNDYyZGE4MjA5
ZDkyMmM0NWRjODRjNDFhMDg1NWFkNmJlMWEuLmU1ODI0ZjEwOGJiNmY1NDNiNWEwNzY3YWZlMWZh
ODRhMmQ0ODFkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVu
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCkBAIC0y
NSwzMCArMjUsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBFbnRpdHlSZWZl
cmVuY2U6OkVudGl0eVJlZmVyZW5jZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
ZW50aXR5TmFtZSkKK2lubGluZSBFbnRpdHlSZWZlcmVuY2U6OkVudGl0eVJlZmVyZW5jZShEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYpCiAgICAgOiBDb250YWluZXJOb2RlKGRvY3Vt
ZW50KQotICAgICwgbV9lbnRpdHlOYW1lKGVudGl0eU5hbWUpCiB7CiB9CiAKLVJlZjxFbnRpdHlS
ZWZlcmVuY2U+IEVudGl0eVJlZmVyZW5jZTo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBlbnRpdHlOYW1lKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVudGl0
eVJlZmVyZW5jZShkb2N1bWVudCwgZW50aXR5TmFtZSkpOwotfQotCi1TdHJpbmcgRW50aXR5UmVm
ZXJlbmNlOjpub2RlTmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZW50aXR5TmFtZTsKLX0K
LQotTm9kZTo6Tm9kZVR5cGUgRW50aXR5UmVmZXJlbmNlOjpub2RlVHlwZSgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIEVOVElUWV9SRUZFUkVOQ0VfTk9ERTsKLX0KLQotUmVmPE5vZGU+IEVudGl0eVJl
ZmVyZW5jZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9u
aW5nT3BlcmF0aW9uKQotewotICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIG1fZW50
aXR5TmFtZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRW50aXR5UmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJl
bmNlLmgKaW5kZXggODZkZmViMzk4MjViMzQ1MGU3NTM1OTI1MDY4NTExMGIzYWYwY2E4Zi4uMThj
MmVjMWFmY2U1NzBlODBlODY1YTA4NDViYWJkODg2NmY5NjEwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bnRpdHlSZWZlcmVuY2UuaApAQCAtMjYsMTggKzI2LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBFbnRpdHlSZWZlcmVuY2UgZmluYWwgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxFbnRpdHlSZWZlcmVuY2U+IGNyZWF0ZShEb2N1bWVu
dCYsIGNvbnN0IFN0cmluZyYgZW50aXR5TmFtZSk7Ci0KK2NsYXNzIEVudGl0eVJlZmVyZW5jZSA6
IHB1YmxpYyBDb250YWluZXJOb2RlIHsKIHByaXZhdGU6CiAgICAgRW50aXR5UmVmZXJlbmNlKERv
Y3VtZW50JiwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKTsKLQotICAgIHZpcnR1YWwgU3RyaW5n
IG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7Ci0KLSAgICBTdHJpbmcg
bV9lbnRpdHlOYW1lOwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5
UmVmZXJlbmNlLmlkbAppbmRleCA2ZDA1MzVmOWJjMWRhYTc5MTc4MzFlZmRiZTZhYmQwN2FlOWI3
ZGJhLi4yNzMxZDdhNjYwOTYzNWJkNmMxNmU2ZDJjNjZlNjA3ZWJiOGM0Y2IwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbApAQCAtMTcsOCArMTcsMTIgQEAKICAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVD
VElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQworCiBbCisgICAgTm9JbnRlcmZhY2VPYmpl
Y3QsCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKIF0gaW50ZXJmYWNlIEVudGl0eVJlZmVyZW5j
ZSA6IE5vZGUgewogfTsKIAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggNDM2MmQ2NTZkYzQ3
ZmQ2NDMzNWI0Njg2MTRiZTczNjU4ODEzMDJiYS4uZGVmMjRjZTY3MDk1NTY2NGJjYmExMzUwNDcx
NmZjNDE3Y2FmNjMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTAzLDcgKzEwMyw2IEBAIHZvaWQg
Tm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgIHNpemVfdCB0ZXh0Tm9kZXMgPSAwOwogICAgIHNp
emVfdCBjZGF0YU5vZGVzID0gMDsKICAgICBzaXplX3QgY29tbWVudE5vZGVzID0gMDsKLSAgICBz
aXplX3QgZW50aXR5UmVmZXJlbmNlTm9kZXMgPSAwOwogICAgIHNpemVfdCBlbnRpdHlOb2RlcyA9
IDA7CiAgICAgc2l6ZV90IHBpTm9kZXMgPSAwOwogICAgIHNpemVfdCBkb2N1bWVudE5vZGVzID0g
MDsKQEAgLTE2OCwxMCArMTY3LDYgQEAgdm9pZCBOb2RlOjpkdW1wU3RhdGlzdGljcygpCiAgICAg
ICAgICAgICAgICAgKytjb21tZW50Tm9kZXM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERTogewotICAg
ICAgICAgICAgICAgICsrZW50aXR5UmVmZXJlbmNlTm9kZXM7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlIEVOVElUWV9OT0RFOiB7CiAgICAg
ICAgICAgICAgICAgKytlbnRpdHlOb2RlczsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIx
MSw3ICsyMDYsNiBAQCB2b2lkIE5vZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICBwcmludGYoIiAg
TnVtYmVyIG9mIFRleHQgbm9kZXM6ICV6dVxuIiwgdGV4dE5vZGVzKTsKICAgICBwcmludGYoIiAg
TnVtYmVyIG9mIENEQVRBU2VjdGlvbiBub2RlczogJXp1XG4iLCBjZGF0YU5vZGVzKTsKICAgICBw
cmludGYoIiAgTnVtYmVyIG9mIENvbW1lbnQgbm9kZXM6ICV6dVxuIiwgY29tbWVudE5vZGVzKTsK
LSAgICBwcmludGYoIiAgTnVtYmVyIG9mIEVudGl0eVJlZmVyZW5jZSBub2RlczogJXp1XG4iLCBl
bnRpdHlSZWZlcmVuY2VOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBFbnRpdHkgbm9k
ZXM6ICV6dVxuIiwgZW50aXR5Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgUHJvY2Vz
c2luZ0luc3RydWN0aW9uIG5vZGVzOiAlenVcbiIsIHBpTm9kZXMpOwogICAgIHByaW50ZigiICBO
dW1iZXIgb2YgRG9jdW1lbnQgbm9kZXM6ICV6dVxuIiwgZG9jdW1lbnROb2Rlcyk7CkBAIC0zODQs
MTQgKzM3OCw4IEBAIFN0cmluZyBOb2RlOjpub2RlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KIAotdm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiAvKm5v
ZGVWYWx1ZSovLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgTm9kZTo6c2V0Tm9kZVZhbHVlKGNv
bnN0IFN0cmluZyYgLypub2RlVmFsdWUqLywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgLy8gTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgd2hlbiB0aGUgbm9kZSBpcyByZWFkb25s
eQotICAgIGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FU
SU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gQnkgZGVm
YXVsdCwgc2V0dGluZyBub2RlVmFsdWUgaGFzIG5vIGVmZmVjdC4KIH0KIApAQCAtODkwLDExICs4
NzgsNiBAQCB2b2lkIE5vZGU6OmNoZWNrU2V0UHJlZml4KGNvbnN0IEF0b21pY1N0cmluZyYgcHJl
Zml4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlm
IChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9X
RURfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gRklYTUU6IFJhaXNlIE5B
TUVTUEFDRV9FUlIgaWYgcHJlZml4IGlzIG1hbGZvcm1lZCBwZXIgdGhlIE5hbWVzcGFjZXMgaW4g
WE1MIHNwZWNpZmljYXRpb24uCiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5vZGVOYW1lc3Bh
Y2VVUkkgPSBuYW1lc3BhY2VVUkkoKTsKQEAgLTE0MjIsNyArMTQwNSw2IEBAIHN0YXRpYyB2b2lk
IGFwcGVuZFRleHRDb250ZW50KGNvbnN0IE5vZGUqIG5vZGUsIGJvb2wgY29udmVydEJSc1RvTmV3
bGluZXMsIGJvb2wmCiAgICAgICAgIH0KICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2FzZSBO
b2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9E
RToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGlzTnVs
bFN0cmluZyA9IGZhbHNlOwogICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbm9kZS0+Zmlyc3RD
aGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewpAQCAtMTQ1OCw3
ICsxNDQwLDYgQEAgdm9pZCBOb2RlOjpzZXRUZXh0Q29udGVudChjb25zdCBTdHJpbmcmIHRleHQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNlIEVM
RU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBBVFRSSUJVVEVfTk9ERToKLSAgICAgICAgY2FzZSBF
TlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgRE9DVU1FTlRfRlJBR01FTlRfTk9E
RTogewogICAgICAgICAgICAgUmVmPENvbnRhaW5lck5vZGU+IGNvbnRhaW5lcihkb3duY2FzdDxD
b250YWluZXJOb2RlPigqdGhpcykpOwogICAgICAgICAgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZSBtdXRhdGlvbihjb250YWluZXIpOwpAQCAtMTQ3OCw3ICsxNDU5LDYgQEAgdm9pZCBOb2RlOjpz
ZXRUZXh0Q29udGVudChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiBF
bGVtZW50KiBOb2RlOjphbmNlc3RvckVsZW1lbnQoKSBjb25zdAogewotICAgIC8vIEluIHRoZW9y
eSwgdGhlcmUgY2FuIGJlIEVudGl0eVJlZmVyZW5jZSBub2RlcyBiZXR3ZWVuIGVsZW1lbnRzLCBi
dXQgdGhpcyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZC4KICAgICBmb3IgKENvbnRhaW5lck5v
ZGUqIGFuY2VzdG9yID0gcGFyZW50Tm9kZSgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rv
ci0+cGFyZW50Tm9kZSgpKSB7CiAgICAgICAgIGlmIChpczxFbGVtZW50PigqYW5jZXN0b3IpKQog
ICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PEVsZW1lbnQ+KGFuY2VzdG9yKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CmluZGV4IDA0ZTM4ZDI1YjQzYjQwZmJkNWIzNjRjZjQzM2U3N2MzYzEwNzM1YzQuLmEyZmM0Mzg4
OTQwZTIyY2Y3NWJmNTk1Yjc0ODlkZDgzOTJkNTAxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMTI1LDcg
KzEyNSw2IEBAIHB1YmxpYzoKICAgICAgICAgQVRUUklCVVRFX05PREUgPSAyLAogICAgICAgICBU
RVhUX05PREUgPSAzLAogICAgICAgICBDREFUQV9TRUNUSU9OX05PREUgPSA0LAotICAgICAgICBF
TlRJVFlfUkVGRVJFTkNFX05PREUgPSA1LAogICAgICAgICBQUk9DRVNTSU5HX0lOU1RSVUNUSU9O
X05PREUgPSA3LAogICAgICAgICBDT01NRU5UX05PREUgPSA4LAogICAgICAgICBET0NVTUVOVF9O
T0RFID0gOSwKQEAgLTEzNCw2ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFhQQVRIX05BTUVT
UEFDRV9OT0RFID0gMTMsCiAgICAgfTsKICAgICBlbnVtIERlcHJlY2F0ZWROb2RlVHlwZSB7Cisg
ICAgICAgIEVOVElUWV9SRUZFUkVOQ0VfTk9ERSA9IDUsCiAgICAgICAgIEVOVElUWV9OT0RFID0g
NiwKICAgICAgICAgTk9UQVRJT05fTk9ERSA9IDEyLAogICAgIH07CkBAIC00MTcsNyArNDE3LDYg
QEAgcHVibGljOgogICAgIGJvb2wgaXNJblNoYWRvd1RyZWUoKSBjb25zdCB7IHJldHVybiBnZXRG
bGFnKElzSW5TaGFkb3dUcmVlRmxhZyk7IH0KICAgICBib29sIGlzSW5UcmVlU2NvcGUoKSBjb25z
dCB7IHJldHVybiBnZXRGbGFnKHN0YXRpY19jYXN0PE5vZGVGbGFncz4oSW5Eb2N1bWVudEZsYWcg
fCBJc0luU2hhZG93VHJlZUZsYWcpKTsgfQogCi0gICAgYm9vbCBpc1JlYWRPbmx5Tm9kZSgpIGNv
bnN0IHsgcmV0dXJuIG5vZGVUeXBlKCkgPT0gRU5USVRZX1JFRkVSRU5DRV9OT0RFOyB9CiAgICAg
Ym9vbCBpc0RvY3VtZW50VHlwZU5vZGUoKSBjb25zdCB7IHJldHVybiBub2RlVHlwZSgpID09IERP
Q1VNRU5UX1RZUEVfTk9ERTsgfQogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5v
ZGVUeXBlKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHVuc2lnbmVkIGNvdW50Q2hpbGRO
b2RlcygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAppbmRleCA0OGEwYTE5
MmE3YmVlMGNmZjIwOWQ1ZWE0ZDg5YzljMzFhMDRjNzA5Li5kYTlkMDIzYjI1ZThmOWYyYmY1N2Fj
ODgxMDM4ZDcyNWQ1ZTFjNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0
ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcApAQCAt
NzYsOCArNzYsOCBAQCBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVUb1ByZXZp
b3VzKE5vZGUqIHJvb3QpCiAgICAgcmV0dXJuIG5vZGU7CiB9CiAKLU5vZGVJdGVyYXRvcjo6Tm9k
ZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRv
U2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVy
ZW5jZXMpCi0gICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6
Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKK05vZGVJdGVyYXRvcjo6Tm9k
ZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRv
U2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyKQorICAgIDogTm9kZUl0ZXJhdG9yQmFz
ZShyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpCiAgICAgLCBtX3JlZmVy
ZW5jZU5vZGUocm9vdCgpLCB0cnVlKQogewogICAgIHJvb3QoKS0+ZG9jdW1lbnQoKS5hdHRhY2hO
b2RlSXRlcmF0b3IodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0
ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKaW5kZXggOTcxOTI3
NGEzZGExYjk3NTQwNmFhNzFjYzVlOWVhZTVmM2M3ZDMzNS4uNGYxNTA3ZGUwM2FjMzAzZTVmMTgw
YjMzMTEyNjgwNzRjNjk4MDg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJ
dGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaApAQCAtMzcs
OSArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBOb2RlSXRlcmF0b3Ig
OiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxOb2RlSXRlcmF0b3I+
LCBwdWJsaWMgTm9kZUl0ZXJhdG9yQmFzZSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMg
UmVmPE5vZGVJdGVyYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4
cGFuZEVudGl0eVJlZmVyZW5jZXMpCisgICAgICAgIHN0YXRpYyBSZWY8Tm9kZUl0ZXJhdG9yPiBj
cmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE5vZGVJdGVyYXRvcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RG
Ojptb3ZlKGZpbHRlciksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpKTsKKyAgICAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE5vZGVJdGVyYXRvcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RG
Ojptb3ZlKGZpbHRlcikpKTsKICAgICAgICAgfQogICAgICAgICB+Tm9kZUl0ZXJhdG9yKCk7CiAK
QEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIG5vZGVX
aWxsQmVSZW1vdmVkKE5vZGUmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIE5vZGVJdGVyYXRv
cihQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2Rl
RmlsdGVyPiYmLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworICAgICAgICBOb2RlSXRl
cmF0b3IoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8
Tm9kZUZpbHRlcj4mJik7CiAKICAgICAgICAgc3RydWN0IE5vZGVQb2ludGVyIHsKICAgICAgICAg
ICAgIFJlZlB0cjxOb2RlPiBub2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVJdGVyYXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbAppbmRl
eCAxMjAyNWRlNmI4YjQ5NDczZWZkN2Y3ODQwMTFmNDFmNzYxMzA3YjY3Li4yMzExMmQ5OTQzZjU5
MzM3YWZmMTVkYWNjN2MxZWU1YjdhNWY3OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZUl0ZXJhdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9y
LmlkbApAQCAtMjYsNyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJvb3Q7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdzsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7CisjaWYgZGVmaW5lZChMQU5HVUFH
RV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzOworI2VuZGlmCiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIE5vZGUgcmVmZXJlbmNlTm9kZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBwb2ludGVyQmVmb3JlUmVmZXJlbmNlTm9kZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1JhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5k
ZXggNTJlMmYxOTMyMTY3YWZjODVhNTE5ZGU1MDlmZDUxYmFmMTYwOTQ5My4uOGMxZTJiMGQ4MjQw
N2NkZTIzMDZhZmYzNmIxNWFhNDkxNzRhMzRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC01NzIs
NyArNTcyLDYgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsZW5ndGhPZkNvbnRlbnRzSW5Ob2Rl
KE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDaGFyYWN0ZXJEYXRhPigqbm9k
ZSkubGVuZ3RoKCk7CiAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CiAgICAgY2FzZSBOb2Rl
OjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9U
WVBFX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgpAQCAtNzMz
LDcgKzczMiw2IEBAIFJlZlB0cjxOb2RlPiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9m
ZnNldHMoQWN0aW9uVHlwZSBhY3Rpb24sIFBhc3NSZWZQdHI8CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgogICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6
Ci0gICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBOb2RlOjpE
T0NVTUVOVF9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgogICAgIGNh
c2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKQEAgLTg1NiwxMyArODU0LDYgQEAgdm9p
ZCBSYW5nZTo6aW5zZXJ0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHBycE5ld05vZGUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gTk9fTU9ESUZJQ0FU
SU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVyIG9mIGVpdGhl
ciBib3VuZGFyeS1wb2ludCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9ubHkuCi0gICAg
aWYgKGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElP
Tl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIEhJRVJBUkNI
WV9SRVFVRVNUX0VSUjogUmFpc2VkIGlmIHRoZSBjb250YWluZXIgb2YgdGhlIHN0YXJ0IG9mIHRo
ZSBSYW5nZSBpcyBvZiBhIHR5cGUgdGhhdAogICAgIC8vIGRvZXMgbm90IGFsbG93IGNoaWxkcmVu
IG9mIHRoZSB0eXBlIG9mIG5ld05vZGUgb3IgaWYgbmV3Tm9kZSBpcyBhbiBhbmNlc3RvciBvZiB0
aGUgY29udGFpbmVyLgogCkBAIC0xMDIyLDcgKzEwMTMsNiBAQCBOb2RlKiBSYW5nZTo6Y2hlY2tO
b2RlV09mZnNldChOb2RlKiBuLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QK
ICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICBjYXNl
IE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgot
ICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBO
b2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERTogewogICAgICAgICAgICAgaWYgKCFvZmZzZXQpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMDUyLDcgKzEwNDIsNiBAQCB2b2lk
IFJhbmdlOjpjaGVja05vZGVCQShOb2RlKiBuLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAg
ICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1F
TlRfVFlQRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAg
Y2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJP
Q0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToK
ICAgICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEwNzIsNyArMTA2
MSw2IEBAIHZvaWQgUmFuZ2U6OmNoZWNrTm9kZUJBKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBO
b2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RF
OgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2Fz
ZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6
VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAt
MTE0OSw3ICsxMTM3LDYgQEAgdm9pZCBSYW5nZTo6c2VsZWN0Tm9kZShOb2RlKiByZWZOb2RlLCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01F
TlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAg
ICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJ
VFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5T
VFJVQ1RJT05fTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAg
ICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTExNjUsNyArMTE1Miw2
IEBAIHZvaWQgUmFuZ2U6OnNlbGVjdE5vZGUoTm9kZSogcmVmTm9kZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6
OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0g
ICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5v
ZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhU
X05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMjA0
LDcgKzExOTAsNiBAQCB2b2lkIFJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMoTm9kZSogcmVmTm9k
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZS
QUdNRU5UX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAg
ICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgICAgIGNhc2UgTm9kZTo6
RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5H
X0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAg
ICAgICAgICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMjQzLDIwICsx
MjI4LDEyIEBAIHZvaWQgUmFuZ2U6OnN1cnJvdW5kQ29udGVudHMoUGFzc1JlZlB0cjxOb2RlPiBw
YXNzTmV3UGFyZW50LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2FzZSBOb2RlOjpDREFU
QV9TRUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAg
ICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVG
RVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9O
T0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpY
UEFUSF9OQU1FU1BBQ0VfTk9ERToKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIC8v
IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjogUmFpc2VkIGlmIGFuIGFuY2VzdG9yIGNvbnRh
aW5lciBvZiBlaXRoZXIgYm91bmRhcnktcG9pbnQgb2YKLSAgICAvLyB0aGUgUmFuZ2UgaXMgcmVh
ZC1vbmx5LgotICAgIGlmIChjb250YWluZWRCeVJlYWRPbmx5KCkpIHsKLSAgICAgICAgZWMgPSBO
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAg
ICAvLyBSYWlzZSBhIEhJRVJBUkNIWV9SRVFVRVNUX0VSUiBpZiBzdGFydENvbnRhaW5lcigpIGRv
ZXNuJ3QgYWNjZXB0IGNoaWxkcmVuIGxpa2UgbmV3UGFyZW50LgogICAgIE5vZGUqIHBhcmVudE9m
TmV3UGFyZW50ID0gJnN0YXJ0Q29udGFpbmVyKCk7CiAKQEAgLTEzMzAsMzYgKzEzMDcsMTYgQEAg
dm9pZCBSYW5nZTo6Y2hlY2tEZWxldGVFeHRyYWN0KEFjdGlvblR5cGUgYWN0aW9uLCBFeGNlcHRp
b25Db2RlJiBlYykKICAgICBpZiAoIWNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKCkpCiAgICAgICAg
IHJldHVybjsKIAorICAgIGlmIChhY3Rpb24gIT0gRXh0cmFjdCkKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgTm9kZSogcGFzdExhc3QgPSBwYXN0TGFzdE5vZGUoKTsKICAgICBmb3IgKE5vZGUqIG4g
PSBmaXJzdE5vZGUoKTsgbiAhPSBwYXN0TGFzdDsgbiA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm4p
KSB7Ci0gICAgICAgIGlmIChuLT5pc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgICAgICBlYyA9
IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmIChhY3Rpb24gPT0gRXh0cmFjdCAmJiBuLT5ub2RlVHlwZSgpID09
IE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERSkgeworICAgICAgICBpZiAobi0+aXNEb2N1bWVudFR5
cGVOb2RlKCkpIHsKICAgICAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotCi0gICAgaWYgKGNvbnRhaW5lZEJ5
UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQotYm9vbCBSYW5nZTo6Y29udGFpbmVkQnlSZWFk
T25seSgpIGNvbnN0Ci17Ci0gICAgZm9yIChOb2RlKiBuID0gJnN0YXJ0Q29udGFpbmVyKCk7IG47
IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgZm9yIChOb2RlKiBuID0gJmVu
ZENvbnRhaW5lcigpOyBuOyBuID0gbi0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgIGlmIChuLT5p
c1JlYWRPbmx5Tm9kZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJl
dHVybiBmYWxzZTsKIH0KIAogTm9kZSogUmFuZ2U6OmZpcnN0Tm9kZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5n
ZS5oCmluZGV4IGM4ZjI5OTNhZGQwZDE1OWZhYzUyYmRhYzdmMWNjOTMwYmRlNWY2ZWUuLjRjMTEx
NjIwYTcyZDcxNzg1ODI1NWNkOWUwMzUxZTM0ZWViZTI0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC0x
NjEsNyArMTYxLDYgQEAgcHJpdmF0ZToKIAogICAgIE5vZGUqIGNoZWNrTm9kZVdPZmZzZXQoTm9k
ZSosIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICB2b2lkIGNoZWNrTm9k
ZUJBKE5vZGUqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7Ci0gICAgYm9vbCBjb250YWluZWRCeVJl
YWRPbmx5KCkgY29uc3Q7CiAKICAgICBlbnVtIEFjdGlvblR5cGUgeyBEZWxldGUsIEV4dHJhY3Qs
IENsb25lIH07CiAgICAgdm9pZCBjaGVja0RlbGV0ZUV4dHJhY3QoQWN0aW9uVHlwZSwgRXhjZXB0
aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDA0Y2VmNWNhMWQxNDgz
N2IyN2FmN2Y3NDI5ZDY3ZDJmY2I3MGYzODYuLjQ1NTQ3ZmViMjRlMmJiYzUxMmM1MjRkZjNlMzYy
N2VkMmVlZjA3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTEwOSw3ICsxMDks
NiBAQCBib29sIFNoYWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29u
c3QKICAgICBjYXNlIENPTU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNl
IENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJhdmVyc2FsLmNwcAppbmRleCA3NGE5MjhmN2NjMDI5YjZmMzNjZmRjZTUxYTFm
MmEzYTMxZmVkYjUyLi4zYzRhOTU1YjExMTA2Y2RhMjIyODVhOWY1MjcxNzA3YjFkOWM3N2YxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcApAQCAtMzAsMTggKzMwLDE1IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVm
UHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2Rl
RmlsdGVyPiYmIG5vZGVGaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKK05vZGVJ
dGVyYXRvckJhc2U6Ok5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBub2RlRmlsdGVy
KQogICAgIDogbV9yb290KHJvb3ROb2RlKQogICAgICwgbV93aGF0VG9TaG93KHdoYXRUb1Nob3cp
CiAgICAgLCBtX2ZpbHRlcihXVEY6Om1vdmUobm9kZUZpbHRlcikpCi0gICAgLCBtX2V4cGFuZEVu
dGl0eVJlZmVyZW5jZXMoZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKIHsKIH0KIAogc2hvcnQgTm9k
ZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShOb2RlKiBub2RlKSBjb25zdAogewotICAgIC8vIEZJ
WE1FOiBUbyBoYW5kbGUgWE1MIHByb3Blcmx5IHdlIHdvdWxkIGhhdmUgdG8gY2hlY2sgbV9leHBh
bmRFbnRpdHlSZWZlcmVuY2VzLgotCiAgICAgLy8gVGhlIGJpdCB0d2lkZGxpbmcgaGVyZSBpcyBk
b25lIHRvIG1hcCBET00gbm9kZSB0eXBlcywgd2hpY2ggYXJlIGdpdmVuIGFzIGludGVnZXJzIGZy
b20KICAgICAvLyAxIHRocm91Z2ggMTQsIHRvIHdoYXRUb1Nob3cgYml0IG1hc2tzLgogICAgIGlm
ICghKCgoMSA8PCAobm9kZS0+bm9kZVR5cGUoKSAtIDEpKSAmIG1fd2hhdFRvU2hvdykpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RyYXZlcnNhbC5oCmluZGV4IGVkNmU4ZGRiZDBjMjY2MTVlMzM3YTJlNDJjOWI5ZDkzNThm
OGZkZGEuLmZmYmQ1NDliMWRlODQ4NjA0M2VlNGQwYjQyMGE3ZGRjYTc0OGZhN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJhdmVyc2FsLmgKQEAgLTM4LDE3ICszOCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIE5vZGUqIHJvb3QoKSBjb25zdCB7IHJldHVybiBtX3Jvb3QuZ2V0KCk7IH0KICAgICAg
ICAgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93KCkgY29uc3QgeyByZXR1cm4gbV93aGF0VG9TaG93
OyB9CiAgICAgICAgIE5vZGVGaWx0ZXIqIGZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVy
LmdldCgpOyB9Ci0gICAgICAgIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcygpIGNvbnN0IHsg
cmV0dXJuIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgfQorICAgICAgICBib29sIGV4cGFuZEVu
dGl0eVJlZmVyZW5jZXMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgcHJvdGVjdGVk
OgotICAgICAgICBOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVm
ZXJlbmNlcyk7CisgICAgICAgIE5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiwgdW5z
aWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAgIHNo
b3J0IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVm
UHRyPE5vZGU+IG1fcm9vdDsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX3doYXRUb1Nob3c7CiAg
ICAgICAgIFJlZlB0cjxOb2RlRmlsdGVyPiBtX2ZpbHRlcjsKLSAgICAgICAgYm9vbCBtX2V4cGFu
ZEVudGl0eVJlZmVyZW5jZXM7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVXYWxrZXIuY3BwCmluZGV4IGFkMGFjZTE5OWI3ZGE2OWVlY2IyMDQzYTI4Yzll
ZjQ0ZmMwNjNkNDYuLjg3NzQ4MmFmZjQ3YTNjNTQzNGFmNzUzMmU2ZGMwNTNkMTUxM2NkMWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKQEAgLTMzLDggKzMzLDggQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1UcmVlV2Fsa2VyOjpUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4gcm9v
dE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmls
dGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCi0gICAgOiBOb2RlSXRlcmF0b3JCYXNl
KHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVm
ZXJlbmNlcykKK1RyZWVXYWxrZXI6OlRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9k
ZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIp
CisgICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUo
ZmlsdGVyKSkKICAgICAsIG1fY3VycmVudChyb290KCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxr
ZXIuaAppbmRleCBiZjY5YmRlY2UwOTliY2QxNGRiYWZkNThmMDE3Y2ZiZDg3YjUxNTYzLi4yMjhm
MjNkNDc0NmEyMTU5YmI1MGJmNmFhNjI3ODhiNzMzNjRmYjlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fs
a2VyLmgKQEAgLTM3LDkgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3Mg
VHJlZVdhbGtlciA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPFRy
ZWVXYWxrZXI+LCBwdWJsaWMgTm9kZUl0ZXJhdG9yQmFzZSB7CiAgICAgcHVibGljOgotICAgICAg
ICBzdGF0aWMgUmVmPFRyZWVXYWxrZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2Rl
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwg
Ym9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorICAgICAgICBzdGF0aWMgUmVmPFRyZWVXYWxr
ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRU
b1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHJlZVdhbGtlcihyb290Tm9kZSwgd2hhdFRvU2hvdywg
V1RGOjptb3ZlKGZpbHRlciksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpKTsKKyAgICAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFRyZWVXYWxrZXIocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdU
Rjo6bW92ZShmaWx0ZXIpKSk7CiAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAKICAgICAgICAgTm9kZSogY3VycmVudE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQu
Z2V0KCk7IH0KQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBO
b2RlKiBuZXh0Tm9kZSgpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgVHJlZVdhbGtlcihQYXNz
UmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVy
PiYmLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworICAgICAgICBUcmVlV2Fsa2VyKFBh
c3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0
ZXI+JiYpOwogICAgICAgICAKICAgICAgICAgTm9kZSogc2V0Q3VycmVudChQYXNzUmVmUHRyPE5v
ZGU+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCmluZGV4IDQ4MDllZTNkNGYxZDFmZDQw
ODVlMWExMTk3M2E4ZGY0MDIwZTQ3MTUuLmFkNWNiNWQ2NDAzMTBmOGMwMzg5NjFmNTEzMmQ1YmRk
ZDIzNjZjN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKQEAgLTI2LDcgKzI2LDkgQEAK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByb290OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3c7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVG
aWx0ZXIgZmlsdGVyOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXM7ICAgICAgICAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAm
JiBMQU5HVUFHRV9PQkpFQ1RJVkVfQworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4
cGFuZEVudGl0eVJlZmVyZW5jZXM7CisjZW5kaWYKICAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9u
XSBhdHRyaWJ1dGUgTm9kZSBjdXJyZW50Tm9kZTsKIAogICAgIE5vZGUgcGFyZW50Tm9kZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCA4MzQ1
NTcyMDQ5NmEwZDEwZGQwNmZjMGVhNGVlYmY0MzhjYjRlYzI2Li43MTJhYmZhZjhjZWNjYzhmMjc3
NmVhNTA1ODZkYzNhMDEwYWNmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L01hcmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1
cEFjY3VtdWxhdG9yLmNwcApAQCAtNTczLDcgKzU3Myw2IEBAIHZvaWQgTWFya3VwQWNjdW11bGF0
b3I6OmFwcGVuZFN0YXJ0TWFya3VwKFN0cmluZ0J1aWxkZXImIHJlc3VsdCwgY29uc3QgTm9kZSYg
bm9kCiAgICAgICAgIGFwcGVuZENEQVRBU2VjdGlvbihyZXN1bHQsIGRvd25jYXN0PENEQVRBU2Vj
dGlvbj4obm9kZSkuZGF0YSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2RlOjpBVFRS
SUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBj
YXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhVdGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwCmluZGV4IDZmNjY0
ZDg0MDFmZjcxNzA1MjY4NjAzZTA0MWViZjc3YjU4ZjNjNDQuLmJlYWRiNGRmMjBmZThlNDQwYTI1
MzRjMjE5NGNjODg3YTY0NzY2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aFV0aWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwCkBAIC03MSw3
ICs3MSw2IEBAIGJvb2wgaXNWYWxpZENvbnRleHROb2RlKE5vZGUqIG5vZGUpCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RF
OgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKLSAgICAgICAgY2FzZSBO
b2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgcmV0dXJuICEobm9kZS0+
cGFyZW50Tm9kZSgpICYmIG5vZGUtPnBhcmVudE5vZGUoKS0+aXNBdHRyaWJ1dGVOb2RlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NSW50ZXJuYWxzLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tCmluZGV4IGU1YzZmMDJmYzhkYzgxMTA4
ODgzZWFiNzUwMmM1MjM4ODhmZTdlZTMuLmQ1N2RmY2QzZWJhMGQyNzU0Njk1MWZlZjRlNDgwNGRi
YTIyN2U4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0KQEAgLTc2LDcg
Kzc2LDYgQEAgc3RhdGljIENsYXNzIFdLRE9NTm9kZUNsYXNzKFdlYkNvcmU6Ok5vZGUqIGltcGwp
CiAgICAgICAgIHJldHVybiBbV0tET01UZXh0IGNsYXNzXTsKICAgICBjYXNlIFdlYkNvcmU6Ok5v
ZGU6OkFUVFJJQlVURV9OT0RFOgogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q0RBVEFfU0VDVElP
Tl9OT0RFOgotICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgog
ICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAg
IGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q09NTUVOVF9OT0RFOgogICAgIGNhc2UgV2ViQ29yZTo6Tm9k
ZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDg3MTA1YThiNmNmNmRhOTk5MDFjMTFk
N2FiYTA0YWZlZDJlZjgzZDEuLjg2M2E4NTRlOTZlNGZiMjVjNGY0MDhhNDU2ZjIxY2ZiODk5ZTRi
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KQEAgLTIzMjQsMTEgKzIzMjQsMTEgQEAgc3RhdGljIGlubGluZSBib29sIGlz
QXNzaXN0YWJsZUVsZW1lbnQoRWxlbWVudCYgbm9kZSkKICAgICBpZiAoaXM8SFRNTFNlbGVjdEVs
ZW1lbnQ+KG5vZGUpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoaXM8SFRNTFRleHRB
cmVhRWxlbWVudD4obm9kZSkpCi0gICAgICAgIHJldHVybiAhZG93bmNhc3Q8SFRNTFRleHRBcmVh
RWxlbWVudD4obm9kZSkuaXNSZWFkT25seU5vZGUoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpKSB7CiAgICAgICAgIEhUTUxJbnB1dEVs
ZW1lbnQmIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpOwog
ICAgICAgICAvLyBGSVhNRTogVGhpcyBsYXVuZHJ5IGxpc3Qgb2YgdHlwZXMgaXMgbm90IGEgZ29v
ZCB3YXkgdG8gZmFjdG9yIHRoaXMuIE5lZWQgYSBzdWl0YWJsZSBmdW5jdGlvbiBvbiBIVE1MSW5w
dXRFbGVtZW50IGl0c2VsZi4KLSAgICAgICAgcmV0dXJuICFpbnB1dEVsZW1lbnQuaXNSZWFkT25s
eU5vZGUoKSAmJiAoaW5wdXRFbGVtZW50LmlzVGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50Lmlz
RGF0ZUZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5w
dXRFbGVtZW50LmlzTW9udGhGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpKTsK
KyAgICAgICAgcmV0dXJuIGlucHV0RWxlbWVudC5pc1RleHRGaWVsZCgpIHx8IGlucHV0RWxlbWVu
dC5pc0RhdGVGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc0RhdGVUaW1lTG9jYWxGaWVsZCgpIHx8
IGlucHV0RWxlbWVudC5pc01vbnRoRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNUaW1lRmllbGQo
KTsKICAgICB9CiAgICAgcmV0dXJuIG5vZGUuaXNDb250ZW50RWRpdGFibGUoKTsKIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAxZTlmMzM2OTZjZWEzODJlZDZiYjQ5MDVkNDRjZTJjMGExZGQ4Njc1Li41YTY3NTE3NzliMDBk
ZGY2YjQzYzZlZjI2YjMzOWYwOTlhNWE0ODMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUt
MDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIHN1
cHBvcnQgZm9yIGxlZ2FjeSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBzZXZlcmFsIG91dGRh
dGVkIERPTSBjb21wbGlhbmNlIHRlc3RzLiBVcGRhdGUgLyBSZWJhc2VsaW5lIG90aGVycy4KKwog
MjAxNS0wOS0xOCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgTnVs
bCBkZXJlZmVyZW5jZSBsb2FkaW5nIEJsaW5rIGxheW91dCB0ZXN0IHN2Zy9maWx0ZXJzL2ZlSW1h
Z2UtZmFpbGVkLWxvYWQtY3Jhc2guaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggMDNiNGUzYTVlMGMzNzgyMTZhMDBlMzA2NTFhZTliNzA1ZGVjYzE0Zi4uOTRkOTQ5NjkxYTVk
Mzg5MTZjOWQwOGEzZTEwMzgyMjc2ZTIxYTBiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRpdHlSZWZlcmVu
Y2UgRE9NIE5vZGUgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmViYXNlbGluZSBXM0MgRE9NIHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVja3MgYXJl
IHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwt
ZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBFbnRpdHkgTm9kZSB0eXBlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9t
L2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRl
ZW50cmVmLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTJhOGU0
NjYxMjRiMThmZjRjNWI2NDdlYWJmYTc3MDE1NDRkODFkNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29y
ZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZgotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYuaHRtbCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3Jl
L2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjU5YWMzNjY5YTBjZDY3NmI0NmU0ZDlmY2I3NGZi
NjE2YjE4M2ExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBA
QAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAKLSAg
ICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCIgPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPmhjX3N0
YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmaHRtbC5q
cyI+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9ImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyI+
PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2Fk
Q29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAot
ICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7
ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAg
PHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwv
cD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3Jk
aWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIGIvTGF5b3V0VGVzdHMv
ZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTdlMTI3ODQxZWY5
ODZkNjE2ODY5YTIyNDE0ODE2MWEzOTE3MDAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcworKysgL2Rldi9udWxs
CkBAIC0xLDE0MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQg
V2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5v
bG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQg
TWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhp
cyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2Ug
WzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0
cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0y
MDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmll
cyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAq
LwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEw
MDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMg
Y2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0
aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4
Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3Rh
cnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0
ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVu
IGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgp
IHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0g
ICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRp
b24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0g
ICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJjcmVhdGVFbnRpdHlSZWZl
cmVuY2UodGFnTmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFMSURfQ0hBUkFDVEVSX0VS
UiBET01FeGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFtZSBjb250YWlucyBhbiBp
bnZhbGlkIGNoYXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBhdXRob3IgTWFyeSBCcmFk
eQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgx
MDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2NvbnN0YW50W0Bu
YW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0zOTJCNzVB
RQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgx
MDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3JhaXNlcy9leGNl
cHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJlZm9yZSguLCc6
Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1
Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlvbiBkb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsK
LSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUg
PT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVv
ZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2Vy
dFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0J
CWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAg
ICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJpbnZhbGlkXk5hbWUi
KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVl
KCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0
ZWVudHJlZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5YWViZTQwNDQ3OGQ4YjAyNWI1MWM2
YWUzYzM2NjVkNWEzNzAzOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLVRlc3Q6CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRl
ZW50cmVmMQotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYxLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDNiNmQwOWNkYWJjMjBjMTcyNjVhYWYyNTk3NmUzMzI0OWY1ZDFiOTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPCFET0NUWVBF
IGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAKLSAgICAiaHR0cDovL3d3
dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCIgPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVt
YmVyIDEuLS0+Ci08aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmaHRtbC5qcyI+PC9zY3JpcHQ+
PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMiPjwvc2NyaXB0Pjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZh
bXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+
Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+
Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8i
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+Mjcg
U291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9s
ZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYx
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGQxZWM5NzUzMjliMTdkNzIzY2Uz
YzBlOTc5ZTVkNWY5MGY0MGEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDAgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYxIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsK
LXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
YnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0
IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9u
cywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAg
T3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0
aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJp
bmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAg
c2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8g
ICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAg
ICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBj
aGVja0ZlYXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUNyZWF0aW5nIGFuIGVudGl0eSByZWZlcmVuY2Ugd2l0
aCBhbiBlbXB0eSBuYW1lIHNob3VsZCBjYXVzZSBhbiBJTlZBTElEX0NIQVJBQ1RFUl9FUlIuCi0K
LSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgv
UkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0y
NThBMDBBRicpL2NvbnN0YW50W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSNJRC0zOTJCNzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgv
UkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0z
OTJCNzVBRScpL3JhaXNlcy9leGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bb
c3Vic3RyaW5nLWJlZm9yZSguLCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2Vl
IGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD01MjUKLSovCi1m
dW5jdGlvbiBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCkg
ewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAi
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGJhZEVudGl0eVJlZjsKLSAgICAgIAot
ICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAn
dW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAg
IGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkK
LQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJ
c3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9j
LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZm9vIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsK
LSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNv
ZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1
Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxz
ZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlS
ZWZlcmVuY2UoIiIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7Ci0JfQot
Ci0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEoKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxMDgyY2JlYWU0ZjZk
ODhkZmQwNjRlZGI0YzJkOWFhYjk2MTVjM2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0
cmdldHZhbHVlMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRl
c3Q6CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNf
YXR0cmdldHZhbHVlMgotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmh0bWwgYi9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRiYjdiYjhjODEwOWNmNTkzZGZlZjg1YmM5Y2QzNGFlNGNiMjg4ZDEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBI
VE1MIDQuMDEvL0VOIiAKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0
ZCIgPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCI+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmaHRtbC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImhjX2F0dHJnZXR2YWx1ZTIuanMiPjwvc2NyaXB0Pjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZh
bXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+
Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+
Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8i
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+Mjcg
U291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIu
anMgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGNjMmFlMzVlMjdiNDk0NDhkMDdkNjE2
NGI0OWIwYTk4MzBjY2YxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkg
MjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5z
dGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3Ig
SW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdo
dHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBT
b2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5
cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVS
SSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmll
ciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVy
biAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19h
dHRyZ2V0dmFsdWUyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBjaGVja0Zl
YXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLUNoZWNrcyB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIHRoYXQg
Y29udGFpbnMgZW50aXR5IHJlZmVyZW5jZXMuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI0lELTIyMTY2MjQ3NAotKi8KLWZ1bmN0aW9uIGhjX2F0dHJnZXR2YWx1ZTIo
KSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIs
ICJoY19hdHRyZ2V0dmFsdWUyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAg
ICB2YXIgYWNyb255bUxpc3Q7Ci0gICAgICB2YXIgdGVzdE5vZGU7Ci0gICAgICB2YXIgYXR0cmli
dXRlczsKLSAgICAgIHZhciB0aXRsZUF0dHI7Ci0gICAgICB2YXIgdmFsdWU7Ci0gICAgICB2YXIg
dGV4dE5vZGU7Ci0gICAgICB2YXIgcmV0dmFsOwotICAgICAgdmFyIGZpcnN0Q2hpbGQ7Ci0gICAg
ICB2YXIgYWxwaGFSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgYWNyb255bUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImFj
cm9ueW0iKTsKLSAgICAgIHRlc3ROb2RlID0gYWNyb255bUxpc3QuaXRlbSgzKTsKLSAgICAgIGF0
dHJpYnV0ZXMgPSB0ZXN0Tm9kZS5hdHRyaWJ1dGVzOwotCi0gICAgICB0aXRsZUF0dHIgPSBhdHRy
aWJ1dGVzLmdldE5hbWVkSXRlbSgiY2xhc3MiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVy
LmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBhbHBoYVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlS
ZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nl
c3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0J
CX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0K
LQotCX0KLQkKLQkJZWxzZSB7Ci0JCQlhbHBoYVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVu
Y2UoImFscGhhIik7Ci0gICAgICBmaXJzdENoaWxkID0gdGl0bGVBdHRyLmZpcnN0Q2hpbGQ7Ci0K
LSAgICAgIHJldHZhbCA9IHRpdGxlQXR0ci5pbnNlcnRCZWZvcmUoYWxwaGFSZWYsZmlyc3RDaGls
ZCk7Ci0gICAgICB2YWx1ZSA9IHRpdGxlQXR0ci52YWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxz
KCJhdHRyVmFsdWUxIiwizrFZzrEiLHZhbHVlKTsKLSAgICAgICAKLQkJfQotCQotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgaGNfYXR0cmdldHZhbHVlMigpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVl
MDMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzBjN2MzZGIx
ZGZlNzhkODdhNTFjNGJhZDExNmQyOTgzOGYxYzBlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hj
X25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAot
VGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9o
Y19ub2RldmFsdWUwMwotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5odG1sIGIvTGF5b3V0VGVzdHMvZG9t
L2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjgwNDZmMTJmYjg4YjJlYjljZTY2Zjk2MGYyYjJiZDE5YTQ3N2E5ZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQu
MDEvL0VOIiAKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCIgPgot
PCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+
PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJzZWxmaHRtbC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9ImhjX25vZGV2YWx1ZTAzLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcyBiL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlNjE2NzFhYTRiMzhhNjVhMWNlZDRmOTU5YThiMTQ2MzVmMzEy
NTg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3Js
ZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFu
ZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBU
aGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5z
ZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlm
aWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAg
ICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFuIGVudGl0eSByZWZlcmVuY2UgaXMgY3JlYXRlZCwg
c2V0Tm9kZVZhbHVlIGlzIGNhbGxlZCB3aXRoIGEgbm9uLW51bGwgYXJndW1lbnQsIGJ1dCBnZXRO
b2RlVmFsdWUKLXNob3VsZCBzdGlsbCByZXR1cm4gbnVsbC4KLQotKiBAYXV0aG9yIEN1cnQgQXJu
b2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5
ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtRjY4RDA4MAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELTExQzk4
NDkwCi0qLwotZnVuY3Rpb24gaGNfbm9kZXZhbHVlMDMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJoY19ub2RldmFsdWUwMyIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5ld05vZGU7Ci0gICAgICB2YXIg
bmV3VmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIp
Ci0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAg
IG5ld05vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICAgIH0K
LQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRl
ZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NV
UFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQluZXdOb2Rl
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgYXNzZXJ0Tm90TnVs
bCgiY3JlYXRlZEVudFJlZk5vdE51bGwiLG5ld05vZGUpOwotbmV3VmFsdWUgPSBuZXdOb2RlLm5v
ZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgiaW5pdGlhbGx5TnVsbCIsbmV3VmFsdWUpOwot
ICAgIG5ld05vZGUubm9kZVZhbHVlID0gIlRoaXMgc2hvdWxkIGhhdmUgbm8gZWZmZWN0IjsKLQot
ICAgICAgbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgi
bnVsbEFmdGVyQXR0ZW1wdGVkQ2hhbmdlIixuZXdWYWx1ZSk7Ci0gICAgCi0JCX0KLQkKLX0KLQot
Ci0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhjX25vZGV2YWx1ZTAzKCk7Ci19CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9l
dmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
c3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VS
Ui1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzOGNlYzBhODlk
NGE1ZmFjZTZiM2NiMjQwMzY5ODdkNzk4YjZmODcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBh
dGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBP
UlRFRF9FUlI6IFN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwz
L3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIGIvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiZTAxOGM4
YTY2MzA1NDk2NzgzZDFiNzVhYzBlNzRiZjIyMzdkZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgv
WFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxMTkgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxk
IFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5k
IE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRo
aXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNl
IFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0
dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUt
MjAwMjEyMzEKLSovCi0KLQotLy8gZXhwb3NlIHRlc3QgZnVuY3Rpb24gbmFtZXMKLWZ1bmN0aW9u
IGV4cG9zZVRlc3RGdW5jdGlvbk5hbWVzKCkKLXsKLXJldHVybiBbJ1hQYXRoRXZhbHVhdG9yX2V2
YWx1YXRlX05PVF9TVVBQT1JURURfRVJSJ107Ci19Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAw
MDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUg
dGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2Vw
dGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRl
ZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBh
bmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVu
dGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsK
LSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAg
IC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24K
LSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAg
ICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1Jl
ZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0K
LSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVy
LCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9m
IAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgot
Ly8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBs
ZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRo
ZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogICAgICAgCi0g
ICAgICBUZXN0IGlmIFhQYXRoRXZhbHVhdG9yLmV2YWx1YXRlIHByb3Blcmx5IHRocm93cyBOT1Rf
U1VQUE9SVEVEX0VSUk9SCi0gICAgCi0qIEBhdXRob3IgUGhpbGlwcGUgTGUgSMOpZ2FyZXQKLSog
QGF1dGhvciBCb2IgQ2xhcnkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAzL0NSLURP
TS1MZXZlbC0zLVhQYXRoLTIwMDMwMzMxL3hwYXRoI1hQYXRoRXZhbHVhdG9yLWV2YWx1YXRlCi0q
LwotZnVuY3Rpb24gWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIoKSB7
Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJY
UGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUiIpICE9IG51bGwpIHJldHVy
bjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHhwRXZhbHVhdG9yOwotICAgICAgdmFyIHJlc3Vs
dDsKLSAgICAgIHZhciBudWxsTlNSZXNvbHZlciA9IG51bGw7Ci0KLSAgICAgIHZhciBudWxsUmVz
dWx0ID0gbnVsbDsKLQotICAgICAgdmFyIGNvbnRleHROb2RlOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9h
ZChkb2NSZWYsICJkb2MiLCAic3RhZmZOUyIpOwotICAgICAgeHBFdmFsdWF0b3IgPSBjcmVhdGVY
UGF0aEV2YWx1YXRvcihkb2MpOwotY29udGV4dE5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCJlbnRpdHluYW1lIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHhwRXZhbHVhdG9yLmV2YWx1YXRlKCIvL2ZvbzpiYXIi
LGNvbnRleHROb2RlLG51bGxOU1Jlc29sdmVyLDAsbnVsbFJlc3VsdCk7Ci0gICAgICAgIH0KLQkJ
Y2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmlu
ZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBP
UlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9y
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2
ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2Zwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzdiOGJkYzFjNmQ0MDk1OTZlMmFlNDg0MjBk
N2JlN2NlOTE4MmU4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFs
dWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAK
LTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpuaXN0PSJodHRw
Oi8vd3d3Lm5pc3QuZ292Ij48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEw
MCIvPg0KLTxzY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHNyYz0i
WFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMiLz4NCi08c2NyaXB0
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9InN2Z3VuaXQuanMiLz4N
Ci08L3N2Zz4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRl
X05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTBhN2RjYzZhNjQwZjdmNmYwNmNjYmY0YmUwNzA2MDUyNTU5NDc4MC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vc3Zn
L2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotWFBhdGhFeHByZXNzaW9u
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSOiBTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NV
UFBPUlRFRF9FUlIuanMgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4
cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGFjZjYxNDY2MTA5M2NjZmNjNTE3OGI4NjRhNmEyYzBiMjlkZjg2OTUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JU
RURfRVJSLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLS8vIGV4cG9zZSB0ZXN0IGZ1
bmN0aW9uIG5hbWVzCi1mdW5jdGlvbiBleHBvc2VUZXN0RnVuY3Rpb25OYW1lcygpCi17Ci1yZXR1
cm4gWydYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlInXTsKLX0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAgICAgICAKLSAgICAgIFRlc3QgaWYgWFBhdGhFeHByZXNzaW9uLmV2YWx1
YXRlIHByb3Blcmx5IHRocm93cyBOT1RfU1VQUE9SVEVEX0VSUk9SCi0gICAgCi0qIEBhdXRob3Ig
UGhpbGlwcGUgTGUgSMOpZ2FyZXQKLSogQGF1dGhvciBCb2IgQ2xhcnkKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDAzL0NSLURPTS1MZXZlbC0zLVhQYXRoLTIwMDMwMzMxL3hwYXRoI1hQ
YXRoRXhwcmVzc2lvbi1ldmFsdWF0ZQotKi8KLWZ1bmN0aW9uIFhQYXRoRXhwcmVzc2lvbl9ldmFs
dWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIlhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQ
UE9SVEVEX0VSUiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHhw
RXZhbHVhdG9yOwotICAgICAgdmFyIHJlc3VsdDsKLSAgICAgIHZhciBudWxsTlNSZXNvbHZlciA9
IG51bGw7Ci0KLSAgICAgIHZhciBudWxsUmVzdWx0ID0gbnVsbDsKLQotICAgICAgdmFyIGNvbnRl
eHROb2RlOwotICAgICAgdmFyIHhwYXRoRXhwcmVzc2lvbjsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVhdG9yID0gY3JlYXRlWFBh
dGhFdmFsdWF0b3IoZG9jKTsKLXhwYXRoRXhwcmVzc2lvbiA9IHhwRXZhbHVhdG9yLmNyZWF0ZUV4
cHJlc3Npb24oIi8vZm9vIixudWxsTlNSZXNvbHZlcik7Ci0gICAgICBjb250ZXh0Tm9kZSA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudGl0eW5hbWUiKTsKLSAgICAgIAotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVzdWx0ID0geHBhdGhFeHByZXNz
aW9uLmV2YWx1YXRlKGNvbnRleHROb2RlLDAsbnVsbFJlc3VsdCk7Ci0gICAgICAgIH0KLQkJY2F0
Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQn
ICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRF
RF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewot
ICAgWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCk7Ci19CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25f
ZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnIGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZl
bDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2Zwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY4NmQ3NTBhMzlkYWFmNDZjYjA0ZDlmMTNh
MjcwY2YyNTVjY2NmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZh
bHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBA
Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6bmlzdD0iaHR0
cDovL3d3dy5uaXN0LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIx
MDAiLz4NCi08c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9
IlhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyIvPg0KLTxzY3Jp
cHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHNyYz0ic3ZndW5pdC5qcyIv
Pg0KLTwvc3ZnPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29y
ZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQyZDZkMTc3MGExMjc4OTlhMjJhYWNmMzZmY2Y5ODYxMjYwNzczYWYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlv
bmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9k
b2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYKLVN0YXR1cwlTdWNj
ZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNy
ZWF0ZWVudHJlZi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U3ZTEyNzg0MWVm
OTg2ZDYxNjg2OWEyMjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9j
dW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTQzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3Js
ZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFu
ZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBU
aGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5z
ZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlm
aWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAg
ICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hh
cmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAt
MTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5n
IHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24g
ZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBz
dGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBs
ZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdo
ZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdl
KCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8K
LSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2Vw
dGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsK
LSAgICAgICBjaGVja0ZlYXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0g
MDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgp
IHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2gg
YXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2
ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0
aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkg
b2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0g
ICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLSAgICBUaGUgImNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSh0YWdOYW1lKSIgbWV0aG9kIHJhaXNlcyBhbgotICAgSU5WQUxJRF9DSEFSQUNURVJf
RVJSIERPTUV4Y2VwdGlvbiBpZiB0aGUgc3BlY2lmaWVkCi0gICB0YWdOYW1lIGNvbnRhaW5zIGFu
IGludmFsaWQgY2hhcmFjdGVyLiAKLQotKiBAYXV0aG9yIE5JU1QKLSogQGF1dGhvciBNYXJ5IEJy
YWR5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5
ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTI1OEEwMEFGJykvY29uc3RhbnRb
QG5hbWU9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELTM5MkI3
NUFFCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5
ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTM5MkI3NUFFJykvcmFpc2VzL2V4
Y2VwdGlvbltAbmFtZT0nRE9NRXhjZXB0aW9uJ10vZGVzY3IvcFtzdWJzdHJpbmctYmVmb3JlKC4s
JzonKT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
QnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTI0OQotKi8KLWZ1bmN0aW9uIGRvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZigpIHsKLSAgIHZhciBzdWNjZXNzOwot
ICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGJhZEVudGl0eVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlw
ZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0
cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5j
ZSgiZm9vIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlw
ZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNz
ZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkK
LQkJZWxzZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAg
ICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImludmFsaWReTmFt
ZSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihl
eC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwotCQl9Ci0JCWFzc2VydFRy
dWUoInRocm93X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JCX0KLQkK
LX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNy
ZWF0ZWVudHJlZi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4MTA5ODMzMjEwNGYxMGE5YTA3M2FkMDFlNGU0YTEzYjhh
MWUzOGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBhY3JvbnltIGRpciBDREFUQSAibHRyIj4KLV0+Ci08IS0tIFRo
aXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCAg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQv
amF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2Ny
aXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxs
YXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2Vt
PgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBF
bnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBD
REFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4K
LSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFs
bGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAw
MzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRt
ZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5n
LCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4K
LSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVj
dG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+
Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNp
YWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4
PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmM2JjOTk4NWI1YzJiN2Y2
MDFhMTBmODRlMzllNjUzNjgxMzQ2ODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmMQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGI0ZDFlYzk3NTMyOWIxN2Q3MjNjZTNjMGU5NzllNWQ1ZjkwZjQwYTIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlv
bmNyZWF0ZWVudHJlZjEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYx
IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVs
bDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJh
bWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAg
SWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0v
LyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3Rh
dHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGlt
bWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhl
IHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0g
J3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9j
dW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVy
ID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBjaGVja0ZlYXR1cmUoIlhNTCIs
IG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0g
cHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYg
KGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlv
bkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhl
IGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGlu
IHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1
bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3
aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQu
Ci1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8q
KgotKiAKLUNyZWF0aW5nIGFuIGVudGl0eSByZWZlcmVuY2Ugd2l0aCBhbiBlbXB0eSBuYW1lIHNo
b3VsZCBjYXVzZSBhbiBJTlZBTElEX0NIQVJBQ1RFUl9FUlIuCi0KLSogQGF1dGhvciBDdXJ0IEFy
bm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5
OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2NvbnN0YW50
W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9y
Zy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0zOTJC
NzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5
OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3JhaXNlcy9l
eGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJlZm9yZSgu
LCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD01MjUKLSovCi1mdW5jdGlvbiBkb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZhbGlkY2hh
cmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIg
ZG9jOwotICAgICAgdmFyIGJhZEVudGl0eVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50
VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgiZm9vIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAo
dHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJ
YXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0K
LQkKLQkJZWxzZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAg
ICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoIiIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JCX0KLQkKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZjEoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYxLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEueGh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGY4M2JhYjk4NGFlN2NhMmFmZWJjYTAyNGVjM2Q4MGI4N2Q0OGZlODQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlv
bmNyZWF0ZWVudHJlZjEueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0g
ICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1z
dHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJl
dGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRl
bHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZ
IGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlv
bjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+
Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJz
ZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRpbnZhbGlkY2hh
cmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZh
c2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+
PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAw
MTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291
bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0g
IDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRB
U2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMs
ICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9l
bT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQg
TWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAg
PHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlz
dDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGYyMDljM2U0MzY0ZWRjNDU1ZDU0ZDQx
NTIwOTRlMmU2NmFhZDc2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVl
Mi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFs
dWUyCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlhdHRyVmFsdWUxOiBhc3NlcnRFcXVhbHMgZmFp
bGVkLCBhY3R1YWwgWc6xLCBleHBlY3RlZCDOsVnOsS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDk0Y2MyYWUzNWUyN2I0OTQ0OGQwN2Q2MTY0YjQ5YjBhOTgzMGNjZjEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxNDYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxk
IFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5k
IE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRo
aXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNl
IFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0
dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUt
MjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZp
ZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAg
Ki8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53
My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyIjsK
LSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsK
LQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3
b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYg
dGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAg
ICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVz
Ci0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVk
aWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRl
c3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1
bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1l
bnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0g
Y3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBjaGVja0ZlYXR1cmUoIlhNTCIsIG51
bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLUNoZWNrcyB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIHRoYXQgY29udGFpbnMgZW50aXR5
IHJlZmVyZW5jZXMuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lE
LTIyMTY2MjQ3NAotKi8KLWZ1bmN0aW9uIGhjX2F0dHJnZXR2YWx1ZTIoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJoY19hdHRyZ2V0dmFs
dWUyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgYWNyb255bUxp
c3Q7Ci0gICAgICB2YXIgdGVzdE5vZGU7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAgICAgIHZh
ciB0aXRsZUF0dHI7Ci0gICAgICB2YXIgdmFsdWU7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAg
ICB2YXIgcmV0dmFsOwotICAgICAgdmFyIGZpcnN0Q2hpbGQ7Ci0gICAgICB2YXIgYWxwaGFSZWY7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
YWNyb255bUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImFjcm9ueW0iKTsKLSAgICAg
IHRlc3ROb2RlID0gYWNyb255bUxpc3QuaXRlbSgzKTsKLSAgICAgIGF0dHJpYnV0ZXMgPSB0ZXN0
Tm9kZS5hdHRyaWJ1dGVzOwotCi0gICAgICB0aXRsZUF0dHIgPSBhdHRyaWJ1dGVzLmdldE5hbWVk
SXRlbSgiY2xhc3MiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09
ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7
Ci0gICAgICAgICAgICBhbHBoYVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhh
Iik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4
LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1
ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxz
ZSB7Ci0JCQlhbHBoYVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0g
ICAgICBmaXJzdENoaWxkID0gdGl0bGVBdHRyLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIHJldHZhbCA9
IHRpdGxlQXR0ci5pbnNlcnRCZWZvcmUoYWxwaGFSZWYsZmlyc3RDaGlsZCk7Ci0gICAgICB2YWx1
ZSA9IHRpdGxlQXR0ci52YWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJhdHRyVmFsdWUxIiwi
zrFZzrEiLHZhbHVlKTsKLSAgICAgICAKLQkJfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgaGNfYXR0cmdldHZhbHVlMigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi54aHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGEyZTQwMTM4YzU1MDg0OWQ3OWQxN2E4NGE5ZTQyN2Iy
ODVlZWZiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBhY3Jvbnlt
IGRpciBDREFUQSAibHRyIj4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCAgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwN2IxYTI2MmZhODgxNmU5NzFlYzMw
Nzk2ZDc2NTk5NGVmOThlNTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAz
Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJRXJyb3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
OiBET00gRXhjZXB0aW9uIDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDEvY29yZS9oY19ub2RldmFsdWUwMy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEv
Y29yZS9oY19ub2RldmFsdWUwMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTYx
NjcxYWE0YjM4YTY1YTFjZWQ0Zjk1OWE4YjE0NjM1ZjMxMjU4NS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwx
L2NvcmUvaGNfbm9kZXZhbHVlMDMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAot
Ci0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0s
IAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2Vh
cmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVu
aXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNv
cnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0g
ICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAg
QHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdl
dFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotQW4gZW50aXR5IHJlZmVyZW5jZSBpcyBjcmVhdGVkLCBzZXROb2RlVmFsdWUgaXMgY2FsbGVk
IHdpdGggYSBub24tbnVsbCBhcmd1bWVudCwgYnV0IGdldE5vZGVWYWx1ZQotc2hvdWxkIHN0aWxs
IHJldHVybiBudWxsLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJ
RC1GNjhEMDgwCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVs
LTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMTFDOTg0OTAKLSovCi1mdW5jdGlvbiBoY19u
b2RldmFsdWUwMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgImhjX25vZGV2YWx1ZTAzIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBk
b2M7Ci0gICAgICB2YXIgbmV3Tm9kZTsKLSAgICAgIHZhciBuZXdWYWx1ZTsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
YyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkKLQko
YnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgbmV3Tm9kZSA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAg
c3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5
KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7
Ci0JfQotCi0JfQotCQotCQllbHNlIHsKLQkJCW5ld05vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhc3NlcnROb3ROdWxsKCJjcmVhdGVkRW50UmVmTm90TnVs
bCIsbmV3Tm9kZSk7Ci1uZXdWYWx1ZSA9IG5ld05vZGUubm9kZVZhbHVlOwotCi0gICAgICBhc3Nl
cnROdWxsKCJpbml0aWFsbHlOdWxsIixuZXdWYWx1ZSk7Ci0gICAgbmV3Tm9kZS5ub2RlVmFsdWUg
PSAiVGhpcyBzaG91bGQgaGF2ZSBubyBlZmZlY3QiOwotCi0gICAgICBuZXdWYWx1ZSA9IG5ld05v
ZGUubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnROdWxsKCJudWxsQWZ0ZXJBdHRlbXB0ZWRDaGFu
Z2UiLG5ld1ZhbHVlKTsKLSAgICAKLQkJfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgaGNfbm9kZXZhbHVlMDMoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy54aHRtbCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy54aHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTI3NjUxZWM4OWZhODgwYmI1MjRjYTI0YmFmOWUxYzUyODFmZDJlNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElE
QVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAi
JiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxv
biAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24y
IFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEg
Imx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iaGNfbm9kZXZhbHVlMDMuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgot
ICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9j
b2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVu
Y2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24g
d2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7
Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzNzkzZTA0Y2I2NGQ5YmU4YWY1ZjA2Yjdl
NTM4NmNmMjQ2YWJjNjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2Rl
MDYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9w
dG5vZGUwNgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDgwNGI5NDgxNTI4ZmUyMDgxZmIzYTRkYzNkNDlkMjVkMDU1YThmMjMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxNzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxk
IFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5k
IE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRo
aXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNl
IFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0
dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUt
MjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZp
ZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAg
Ki8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53
My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2
IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVs
bDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJh
bWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAg
SWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0v
LyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3Rh
dHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGlt
bWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhl
IHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0g
J3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9j
dW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVy
ID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0g
ICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBt
ZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNo
cm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBz
eW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBh
Z2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRo
ZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlm
ICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIGFkb3B0Tm9kZSBvbiBhIG5ldyBk
b2N1bWVudCB0byBhZG9wdCB0aGUgYSBuZXcgQXR0cmlidXRlIG5vZGUgaGF2aW5nIGEgVGV4dCBh
bmQgYW4gRW50aXR5UmVmZXJlbmNlIAotCWNoaWxkLiAgQ2hlY2sgaWYgdGhpcyBhdHRyaWJ1dGUg
aGFzIGJlZW4gYWRvcHRlZCBzdWNjZXNzZnVsbHkgYnkgdmVyaWZ5aW5nIHRoZSBub2RlTmFtZSwg
bmFtZXNwYWNlVVJJLCBwcmVmaXgsIAotCXNwZWNpZmllZCBhbmQgb3duZXJFbGVtZW50IGF0dHJp
YnV0ZXMgb2YgdGhlIGFkb3B0ZWQgbm9kZS4gIEFsc28gdmVyaWZ5IHRoZSBvd25lckRvY3VtZW50
IGF0dHJpYnV0ZQotCW9mIHRoZSBhZG9wdGVkIG5vZGUgYW5kIHRoZSBhZG9wdGVkIGNoaWxkcmVu
IG9mIHRoZSBhdHRyaWJ1dGUgbm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwg
RGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMt
Q29yZS0yMDA0MDQwNy9jb3JlI0RvY3VtZW50My1hZG9wdE5vZGUKLSovCi1mdW5jdGlvbiBkb2N1
bWVudGFkb3B0bm9kZTA2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFs
aXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRhZG9wdG5vZGUwNiIpICE9IG51bGwpIHJldHVybjsK
LSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5ld0RvYzsKLSAgICAgIHZhciBkb21JbXBsOwotICAg
ICAgdmFyIG5ld0F0dHI7Ci0gICAgICB2YXIgbmV3VGV4dDsKLSAgICAgIHZhciBuZXdFbnRSZWY7
Ci0gICAgICB2YXIgYWRvcHRlZEF0dHI7Ci0gICAgICB2YXIgYWRvcHRUZXh0OwotICAgICAgdmFy
IGFkb3B0RW50UmVmOwotICAgICAgdmFyIG5vZGVMaXN0OwotICAgICAgdmFyIG5vZGVOYW1lOwot
ICAgICAgdmFyIG5vZGVOYW1lc3BhY2VVUkk7Ci0gICAgICB2YXIgbm9kZVByZWZpeDsKLSAgICAg
IHZhciBhdHRyT3duZXJFbGVtOwotICAgICAgdmFyIGlzU3BlY2lmaWVkOwotICAgICAgdmFyIGFk
b3B0ZWRUZXh0Tm9kZVZhbHVlOwotICAgICAgdmFyIGFkb3B0ZWRFbnRSZWZOb2RlVmFsdWU7Ci0g
ICAgICB2YXIgbnVsbERvY1R5cGUgPSBudWxsOwotCi0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsK
LSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIHJvb3ROUzsKLSAgICAgIHZhciByb290TmFt
ZTsKLSAgICAgIHZhciB4bWxOUyA9ICJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3Bh
Y2UiOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICByb290TmFtZSA9IGRv
Y0VsZW0udGFnTmFtZTsKLQotICAgICAgcm9vdE5TID0gZG9jRWxlbS5uYW1lc3BhY2VVUkk7Ci0K
LSAgICAgIGRvbUltcGwgPSBkb2MuaW1wbGVtZW50YXRpb247Ci1uZXdEb2MgPSBkb21JbXBsLmNy
ZWF0ZURvY3VtZW50KHJvb3ROUyxyb290TmFtZSxudWxsRG9jVHlwZSk7Ci0gICAgICBuZXdBdHRy
ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKHhtbE5TLCJ4bWw6bGFuZyIpOwotICAgICAgbmV3VGV4
dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBOb2RlIik7Ci0gICAgICBuZXdFbnRSZWYgPSBk
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IG5ld0F0dHIuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gbmV3
QXR0ci5hcHBlbmRDaGlsZChuZXdFbnRSZWYpOwotICAgICAgYWRvcHRlZEF0dHIgPSBuZXdEb2Mu
YWRvcHROb2RlKG5ld0F0dHIpOwotICAgICAgCi0JaWYoCi0JCi0JKGFkb3B0ZWRBdHRyICE9IG51
bGwpCi0KLQkpIHsKLQlub2RlTmFtZSA9IGFkb3B0ZWRBdHRyLm5vZGVOYW1lOwotCi0gICAgICBu
b2RlTmFtZXNwYWNlVVJJID0gYWRvcHRlZEF0dHIubmFtZXNwYWNlVVJJOwotCi0gICAgICBub2Rl
UHJlZml4ID0gYWRvcHRlZEF0dHIucHJlZml4OwotCi0gICAgICBhdHRyT3duZXJFbGVtID0gYWRv
cHRlZEF0dHIub3duZXJFbGVtZW50OwotCi0gICAgICBpc1NwZWNpZmllZCA9IGFkb3B0ZWRBdHRy
LnNwZWNpZmllZDsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X25v
ZGVOYW1lIiwieG1sOmxhbmciLG5vZGVOYW1lKTsKLSAgICAgICBhc3NlcnRFcXVhbHMoImRvY3Vt
ZW50YWRvcHRub2RlMDZfbmFtZXNwYWNlVVJJIix4bWxOUyxub2RlTmFtZXNwYWNlVVJJKTsKLSAg
ICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfcHJlZml4IiwieG1sIixub2Rl
UHJlZml4KTsKLSAgICAgICBhc3NlcnROdWxsKCJkb2N1bWVudGFkb3B0bm9kZTA2X293bmVyRG9j
IixhdHRyT3duZXJFbGVtKTsKLSAgICBhc3NlcnRUcnVlKCJkb2N1bWVudGFkb3B0bm9kZTA2X3Nw
ZWNpZmllZCIsaXNTcGVjaWZpZWQpOwotbm9kZUxpc3QgPSBhZG9wdGVkQXR0ci5jaGlsZE5vZGVz
OwotCi0gICAgICBhZG9wdFRleHQgPSBub2RlTGlzdC5pdGVtKDApOwotICAgICAgYWRvcHRFbnRS
ZWYgPSBub2RlTGlzdC5pdGVtKDEpOwotICAgICAgYWRvcHRlZFRleHROb2RlVmFsdWUgPSBhZG9w
dFRleHQubm9kZVZhbHVlOwotCi0gICAgICBhZG9wdGVkRW50UmVmTm9kZVZhbHVlID0gYWRvcHRF
bnRSZWYubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUw
Nl9UZXh0Tm9kZVZhbHVlIiwiVGV4dCBOb2RlIixhZG9wdGVkVGV4dE5vZGVWYWx1ZSk7Ci0gICAg
ICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X0VudFJlZk5vZGVWYWx1ZSIsImFs
cGhhIixhZG9wdGVkRW50UmVmTm9kZVZhbHVlKTsKLSAgICAgICAKLQl9Ci0JCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGFkb3B0bm9kZTA2KCk7Ci19CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5v
ZGUwNi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFk
b3B0bm9kZTA2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTJkODkwZGFk
YjVhODczNTlmNDlmZWQ0MTk5NDczNTg0ZDIxNzIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9k
b2N1bWVudGFkb3B0bm9kZTA2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRt
bAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRt
bDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElU
WSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElU
WSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90
YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZp
bGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHht
bG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAot
ICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAg
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBz
cGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAg
ICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
Ci0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRhZG9w
dG5vZGUwNi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1l
bnRhZG9wdG5vZGUxNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI4YWIxODg2MWZiZThhNTBmNTljODEyYWViZDA1MzM5ZWE1N2NmNWQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNgotU3RhdHVzCVN1
Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudGFkb3B0bm9kZTE2LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50YWRvcHRub2RlMTYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmZDZl
MmZkYzM0N2EzNDExMDU1YmRhMmVkZTlhMjIyOWJlOWVmZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL2RvY3VtZW50YWRvcHRub2RlMTYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzAgKzAsMCBA
QAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRp
dW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJl
c2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlv
IFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmli
dXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0Nv
bnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQot
Ci0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAg
KiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRh
cmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2IjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi1DcmVhdGUgYSBkb2N1bWVudCBmcmFnbWVudCB3aXRoIGFuIGVudGl0eSByZWZl
cmVuY2UsIGFkb3B0IHRoZSBub2RlIGFuZCBjaGVjawotdGhhdCB0aGUgZW50aXR5IHJlZmVyZW5j
ZSB2YWx1ZSBjb21lcyBmcm9tIHRoZSBhZG9wdGluZyBkb2N1bWVudHMgRFRELgotCi0qIEBhdXRo
b3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjRG9jdW1lbnQzLWFkb3B0
Tm9kZQotKi8KLWZ1bmN0aW9uIGRvY3VtZW50YWRvcHRub2RlMTYoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGFkb3B0bm9k
ZTE2IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZ21l
bnQ7Ci0gICAgICB2YXIgY2hpbGRMaXN0OwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBj
aGlsZDsKLSAgICAgIHZhciBjaGlsZHNBdHRyOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZh
ciB0ZXh0Tm9kZTsKLSAgICAgIHZhciBhZG9wdGVkOwotICAgICAgdmFyIHBhcmVudEltcDsKLSAg
ICAgIHZhciBjaGlsZEltcDsKLSAgICAgIHZhciBhdHRyaWJ1dGVzOwotICAgICAgdmFyIGNoaWxk
QXR0ckltcDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsK
LSAgICAgIHZhciBhdHRyTm9kZTsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGZp
cnN0Q2hpbGRUeXBlOwotICAgICAgdmFyIGZpcnN0Q2hpbGROYW1lOwotICAgICAgdmFyIGZpcnN0
Q2hpbGRWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBkb2NGcmFnbWVudCA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0g
ICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlRWxlbWVudCgicGFyZW50Iik7Ci0gICAgICBjaGlsZCA9
IGRvYy5jcmVhdGVFbGVtZW50KCJjaGlsZCIpOwotICAgICAgY2hpbGRzQXR0ciA9IGRvYy5jcmVh
dGVBdHRyaWJ1dGUoInN0YXRlIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJnYW1tYSIpOwotICAgICAgdGV4dE5vZGUgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRl
c3QiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBjaGlsZHNBdHRyLmFwcGVuZENoaWxkKGVudFJl
Zik7Ci0gICAgICBhdHRyTm9kZSA9IGNoaWxkLnNldEF0dHJpYnV0ZU5vZGUoY2hpbGRzQXR0cik7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gY2hpbGQuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAg
ICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChjaGlsZCk7Ci0gICAgICBhcHBl
bmRlZENoaWxkID0gZG9jRnJhZ21lbnQuYXBwZW5kQ2hpbGQocGFyZW50KTsKLSAgICAgIGFkb3B0
ZWQgPSBkb2MuYWRvcHROb2RlKGRvY0ZyYWdtZW50KTsKLSAgICAgIAotCWlmKAotCQotCShhZG9w
dGVkICE9IG51bGwpCi0KLQkpIHsKLQlwYXJlbnRJbXAgPSBhZG9wdGVkLmZpcnN0Q2hpbGQ7Ci0K
LSAgICAgIGNoaWxkSW1wID0gcGFyZW50SW1wLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGF0dHJpYnV0
ZXMgPSBjaGlsZEltcC5hdHRyaWJ1dGVzOwotCi0gICAgICBjaGlsZEF0dHJJbXAgPSBhdHRyaWJ1
dGVzLmdldE5hbWVkSXRlbSgic3RhdGUiKTsKLSAgICAgIGZpcnN0Q2hpbGQgPSBjaGlsZEF0dHJJ
bXAuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZmlyc3RDaGlsZE5vdE51bGwi
LGZpcnN0Q2hpbGQpOwotZmlyc3RDaGlsZE5hbWUgPSBmaXJzdENoaWxkLm5vZGVOYW1lOwotCi0g
ICAgICBmaXJzdENoaWxkVmFsdWUgPSBmaXJzdENoaWxkLm5vZGVWYWx1ZTsKLQotICAgICAgZmly
c3RDaGlsZFR5cGUgPSBmaXJzdENoaWxkLm5vZGVUeXBlOwotCi0gICAgICAKLQlpZigKLQkoNSA9
PSBmaXJzdENoaWxkVHlwZSkKLQkpIHsKLQlhc3NlcnRFcXVhbHMoImZpcnN0Q2hpbGRFbnQzUmVm
IiwiZ2FtbWEiLGZpcnN0Q2hpbGROYW1lKTsKLSAgICAgICAKLQl9Ci0JCi0JCWVsc2UgewotCQkJ
YXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTE2IiwiVGV4YXMiLGZpcnN0Q2hpbGRWYWx1
ZSk7Ci0gICAgICAgCi0JCX0KLQkKLQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICBkb2N1bWVudGFkb3B0bm9kZTE2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmJiOWRlMWZiOTM4YjA3OTc1MzBmMTEzMGM4
NzE4NmU3NjM3ZDFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRhZG9wdG5vZGUxNi5qcyIvPjxzY3Jp
cHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0
VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+
Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8
L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAg
Tm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ry
b25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRo
IEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4g
YWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7
Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5l
dHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8
L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCww
MDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5Q
TyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0
cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9j
b2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgot
ICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxj
b2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2
YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVu
YW1lbm9kZTI3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDM3
MzQ0MWQ0MzAyMTQ5MmY5NDM3ZGZiNjYwZGMwZTRmYTM2MzgyZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdl
CXRocm93X05PVF9TVVBQT1JURURfRVJSXzE6IGFzc2VydFRydWUgZmFpbGVkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcu
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2Rl
MjcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2NzNjYWNiYzY4OTZjNjZjYTIz
MzAyZjZhMjFhYjY5Y2UzZDg0YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVu
YW1lbm9kZTI3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTg5ICswLDAgQEAKLQotLyoKLUNvcHly
aWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0
aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4g
QWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2Fs
LzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAg
KiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJp
IGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0g
ICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
Ci0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
ICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1
aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRp
b24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVz
dHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMg
Y29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxv
d3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJ
bnZva2UgdGhlIHJlbmFtZU5vZGUgbWV0aG9kIHRvIGF0dGVtcHQgdG8gcmVuYW1lIG5ldyBUZXh0
LCBDb21tZW50LCBDRGF0YVNlY3Rpb24sCi0JUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZCBFbnRp
dHlSZWZlcmVuY2Ugbm9kZXMgb2YgYSBuZXcgRG9jdW1lbnQuCi0JQ2hlY2sgaWYgYSBOT1RfU1VQ
UE9SVEVEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNEb2N1bWVudDMtcmVuYW1lTm9kZQotKi8KLWZ1bmN0aW9uIGRvY3Vt
ZW50cmVuYW1lbm9kZTI3KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFs
aXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRyZW5hbWVub2RlMjciKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAg
ICAgIHZhciB0ZXh0OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAg
ICB2YXIgcGk7Ci0gICAgICB2YXIgZW50cmVmOwotICAgICAgdmFyIHJlbmFtZWRUeHQ7Ci0gICAg
ICB2YXIgcmVuYW1lZENvbW1lbnQ7Ci0gICAgICB2YXIgcmVuYW1lZENkYXRhOwotICAgICAgdmFy
IHJlbmFtZWRQaTsKLSAgICAgIHZhciByZW5hbWVkRW50UmVmOwotICAgICAgdmFyIG51bGxEb2NU
eXBlID0gbnVsbDsKLQotICAgICAgdmFyIGRvY0VsZW07Ci0gICAgICB2YXIgcm9vdE5TOwotICAg
ICAgdmFyIHJvb3ROYW1lOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBy
b290TlMgPSBkb2NFbGVtLm5hbWVzcGFjZVVSSTsKLQotICAgICAgcm9vdE5hbWUgPSBkb2NFbGVt
LnRhZ05hbWU7Ci0KLSAgICAgIGRvbUltcGwgPSBkb2MuaW1wbGVtZW50YXRpb247Ci1uZXdEb2Mg
PSBkb21JbXBsLmNyZWF0ZURvY3VtZW50KHJvb3ROUyxyb290TmFtZSxudWxsRG9jVHlwZSk7Ci0g
ICAgICB0ZXh0ID0gbmV3RG9jLmNyZWF0ZVRleHROb2RlKCJ0ZXh0Iik7Ci0gICAgICBjb21tZW50
ID0gbmV3RG9jLmNyZWF0ZUNvbW1lbnQoImNvbW1lbnQiKTsKLSAgICAgIGNkYXRhID0gbmV3RG9j
LmNyZWF0ZUNEQVRBU2VjdGlvbigiY2RhdGEiKTsKLSAgICAgIHBpID0gbmV3RG9jLmNyZWF0ZVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbigicGl0IiwicGlkIik7Ci0gICAgICBlbnRyZWYgPSBuZXdEb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW5hbWVkVHh0ID0gbmV3RG9jLnJlbmFtZU5v
ZGUodGV4dCwiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJ0ZXh0Iik7Ci0gICAgICAgIH0K
LQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRl
ZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NV
UFBPUlRFRF9FUlJfMSIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0J
CXRyeSB7Ci0gICAgICAgICAgICByZW5hbWVkQ29tbWVudCA9IG5ld0RvYy5yZW5hbWVOb2RlKGNv
bW1lbnQsImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwiY29tbWVudCIpOwotICAgICAgICB9
Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5k
ZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9T
VVBQT1JURURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZENkYXRhID0gbmV3RG9jLnJlbmFtZU5vZGUoY2Rh
dGEsImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwiY2RhdGEiKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9S
VEVEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIHJlbmFtZWRQaSA9IG5ld0RvYy5yZW5hbWVOb2RlKHBpLCJodHRwOi8v
d3d3LnczLm9yZy9ET00vVGVzdCIsInBpIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJfNCIsc3Vj
Y2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAg
ICByZW5hbWVkRW50UmVmID0gbmV3RG9jLnJlbmFtZU5vZGUoZW50cmVmLCJodHRwOi8vd3d3Lncz
Lm9yZy9ET00vVGVzdCIsImVudHJlZiIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAg
ICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09
IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSXzUiLHN1Y2Nl
c3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRy
ZW5hbWVub2RlMjcoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy54aHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZGU3ODExYjQyZGUyYzQ2N2U1YTJhNjBlMTgyOTFkMmQxMDhmODNjOS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZ
TEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBn
YW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkg
ZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBk
aXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENE
QVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQg
UElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgot
PCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgi
Lz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJkb2N1bWVudHJlbmFtZW5vZGUyNy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4
dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9z
Y3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+
TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxz
dXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBE
YWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBS
YXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVy
ZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RB
VEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAg
PGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4K
LSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAg
PGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAg
PHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0i
Xzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2
aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93
d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9j
b25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3Vw
Pjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAw
NTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVy
IFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9h
Y3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjAueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjAueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3OGU0ZTY2NDY2
ZmJkYzE0MDc2NzU1Mzg3YTlhMzVmMGYxZWE5NmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0g
ICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJ
U1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAg
ICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBM
SUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwh
QVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21t
ZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEt
aW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjAuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0
IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBU
ZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMK
LTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVt
YmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlv
biB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNl
Y3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5F
TVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRl
cGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVu
dDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4
YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2
aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9z
dHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgot
ICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFs
aXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4K
LSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwMjQz
NzM4ZjYwYTA4ODQ2NGRhZDg0ODI3ZWE2YzE0ZWIwMTNmNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2Ci1TdGF0dXMJ
ZmFpbHVyZQotTWVzc2FnZQllbnRSZWZDaGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvbjI2LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzZThiM2ZhZTg4NzlhMGEzNGRmMDFiNjQ1ZGMzNzYwYWJlMDI3MzFjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsK
LXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
YnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0
IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9u
cywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAg
T3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0
aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJp
bmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAg
c2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8g
ICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAg
ICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAg
ZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAg
ICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBl
eCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAot
Ly8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8K
LS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRl
ZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQot
Ly8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgY29t
cGFyZURvY3VtZW50UG9zaXRpb24gY2hlY2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGNv
bnRhaW5zIGFuZCBwcmVjZWRlcyBpdCdzIGZpcnN0Ci0JY2hpbGRFbGVtZW50LCBhbmQgdGhhdCB0
aGUgY2hpbGRFbGVtZW50IGlzIGNvbnRhaW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5UmVmZXJl
bmNlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2Nv
cmUjTm9kZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5p
dGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2IikgIT0g
bnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZh
ciB2YXJFbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0g
ICAgICB2YXIgZW50UmVmUG9zaXRpb247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
Ci0JaWYoCi0JKGdldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzIikgPT0gZmFsc2UpCi0JKSB7Ci0JdmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgidmFyIik7Ci0gICAgICB2YXJFbGVtID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAgYXNzZXJ0
Tm90TnVsbCgidmFyRWxlbU5vdE51bGwiLHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxlbS5maXJz
dENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRSZWYpOwot
Ci0JfQotCQotCQllbHNlIHsKLQkJCWVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImVudDQiKTsKLSAgICAgIAotCQl9Ci0JZW50UmVmQ2hpbGQxID0gZW50UmVmLmZpcnN0Q2hpbGQ7
Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMU5vdE51bGwiLGVudFJlZkNoaWxk
MSk7Ci1lbnRSZWZQb3NpdGlvbiA9IGVudFJlZi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRS
ZWZDaGlsZDEpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b25Jc0NvbnRhaW5lZEZvbGxvd2luZzI2IiwyMCxlbnRSZWZQb3NpdGlvbik7Ci0gICAgICAgZW50
UmVmQ2hpbGQxUG9zaXRpb24gPSBlbnRSZWZDaGlsZDEuY29tcGFyZURvY3VtZW50UG9zaXRpb24o
ZW50UmVmKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
Q29udGFpbnNQUkVDRURJTkcyNiIsMTAsZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIAot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi54aHRtbCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzczM2UwZDA2NThiYmZiZjRmYTUwODNlMGEy
Mzk3MzJhNDRjMWU5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJp
Y3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEg
IiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRh
ICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFs
cGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFG
aWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0g
ICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1z
dGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAg
ICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0g
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElU
WSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVu
dCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1s
bnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+
Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1s
bnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAg
ICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0
YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNl
dD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9h
ZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+
Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBp
cyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4K
LTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVu
Y2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgot
ICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8
c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2Vy
PC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxl
bT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+
UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJf
OTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQu
IERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0
dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0
IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxz
dXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5v
cmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDcyOWI0Y2Q4MDU4YTNjNzVjYTgx
MmI0MjUyNzViMzZmOGU0MjlmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdl
CWVudFJlZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZTE5
Yjc2NzAyYjM0YTk4NWU4MjRmODFlYWNhYWYzZWU0YmUwZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTMzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBu
dWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBm
cmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8g
ICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMK
LS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBz
dGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMg
aW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0
aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMg
PSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBk
b2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxk
ZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBjb21wYXJlRG9jdW1lbnRQb3Np
dGlvbiB0byBjaGVjayBpZiB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUgY29udGFpbnMgYW5kIHBy
ZWNlZGVzIGl0J3MgbGFzdAotCWNoaWxkRWxlbWVudCwgYW5kIHRoYXQgdGhpcyBjaGlsZEVsZW1l
bnQgaXMgY29udGFpbmVkIGFuZCBmb2xsb3dzIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZS4KLQot
KiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIEplbm55IEhzdQotKiBAc2VlIGh0dHA6Ly93d3cudzMu
b3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy1jb21w
YXJlRG9jdW1lbnRQb3NpdGlvbgotKi8KLWZ1bmN0aW9uIG5vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjI3KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihi
dWlsZGVyLCAibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjciKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB2YXJMaXN0OwotICAgICAgdmFyIHZhckVsZW07Ci0g
ICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsKLSAgICAgIHZhciBlbnRS
ZWZQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
YyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkoZ2V0
SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiKSA9PSBmYWxz
ZSkKLQkpIHsKLQl2YXJMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ2YXIiKTsKLSAg
ICAgIHZhckVsZW0gPSB2YXJMaXN0Lml0ZW0oMik7Ci0gICAgICBhc3NlcnROb3ROdWxsKCJ2YXJF
bGVtTm90TnVsbCIsdmFyRWxlbSk7Ci1lbnRSZWYgPSB2YXJFbGVtLmZpcnN0Q2hpbGQ7Ci0KLSAg
ICAgIGFzc2VydE5vdE51bGwoImVudFJlZk5vdE51bGwiLGVudFJlZik7Ci0KLQl9Ci0JCi0JCWVs
c2UgewotCQkJZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAg
ICAgCi0JCX0KLQllbnRSZWZDaGlsZDEgPSBlbnRSZWYubGFzdENoaWxkOwotCi0gICAgICBhc3Nl
cnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50UmVmUG9z
aXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQxKTsKLSAg
ICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uSXNDb250YWluZWRG
b2xsb3dpbmcyNyIsMjAsZW50UmVmUG9zaXRpb24pOwotICAgICAgIGVudFJlZkNoaWxkMVBvc2l0
aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZik7Ci0gICAg
ICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbkNvbnRhaW5zUFJFQ0VE
SU5HIiwxMCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNygpOwotfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI3LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzMWFiZTAxYmY5YmQ4OWQxYTFlYWY2ZWNiYzAxYjA5M2U2ZWJmYjEzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/
VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9E
VEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwh
RU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwh
RU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8
IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0g
ICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxu
czp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9Q
SXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElF
RD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LmpzIi8+
PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsg
c3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUo
KSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAx
PC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3Vu
dGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0g
IDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9u
IHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBp
cyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFi
O11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZn
YW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBK
b25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+
MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgot
ICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0
b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5
ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0Lmdv
diI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4K
LSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4K
LSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZp
bmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3M2QzMjQ5ZDg0YmIzYzI2MTY3NWUzZTRlOGNhZDM2Mjk4YTNm
ODVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
OC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yOAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90
TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
OC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYyYjI4ZTgzYzMwNTQ0ZGFhYTg0
MWYxN2ZkMTVkN2I4ZGJjNTJlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjguanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCI7Ci0gICB9Ci0KLXZh
ciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAg
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUK
LS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBu
byBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3Vt
ZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAg
IGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8g
ICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1
bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAg
IHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIs
IG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZp
Z3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotCVVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIGNoZWNrIHRoZSBk
b2N1bWVudCBwb3NpdGlvbiBvZiB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUgZW50NCdzCi0JZmly
c3QgY2hpbGQgYW5kIGxhc3QgY2hpbGQuICBJbnZva2UgY29tcGFyZURvY3VtZW50UG9zaXRvbiBv
biBmaXJzdCBjaGlsZCB3aXRoIGxhc3QgY2hpbGQgYXMgYSBwYXJhbWV0ZXIKLQlzaG91bGQgcmV0
dXJuIEZPTExPV0lORywgYW5kIHNob3VsZCByZXR1cm4gUFJFQ0VESU5HIHZpY2UgdmVyc2EuCi0K
LSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtY29t
cGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4IikgIT0gbnVsbCkgcmV0dXJu
OwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZhciB2YXJFbGVtOwot
ICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0gICAgICB2YXIgZW50
UmVmQ2hpbGQyOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0aW9uOwotICAgICAgdmFyIGVu
dFJlZkNoaWxkMlBvc2l0aW9uOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCShnZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgi
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIpID09IGZhbHNlKQotCSkgewotCXZhckxpc3QgPSBkb2Mu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoInZhciIpOwotICAgICAgdmFyRWxlbSA9IHZhckxpc3QuaXRl
bSgyKTsKLSAgICAgIGFzc2VydE5vdE51bGwoInZhckVsZW1Ob3ROdWxsIix2YXJFbGVtKTsKLWVu
dFJlZiA9IHZhckVsZW0uZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVm
Tm90TnVsbCIsZW50UmVmKTsKLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICAKLQkJfQotCWVudFJlZkNoaWxkMSA9
IGVudFJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFO
b3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50UmVmQ2hpbGQyID0gZW50UmVmLmxhc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQyTm90TnVsbCIsZW50UmVmQ2hpbGQy
KTsKLWVudFJlZkNoaWxkMVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBv
c2l0aW9uKGVudFJlZkNoaWxkMik7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbkZvbGxvd2luZzI4Iiw0LGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAg
ICBlbnRSZWZDaGlsZDJQb3NpdGlvbiA9IGVudFJlZkNoaWxkMi5jb21wYXJlRG9jdW1lbnRQb3Np
dGlvbihlbnRSZWZDaGlsZDEpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb25QUkVDRURJTkcyOCIsMixlbnRSZWZDaGlsZDJQb3NpdGlvbik7Ci0gICAgICAg
Ci19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yOCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LnhodG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjUwODI5ZjEyYzI5NmI2MTk1NmI4MWZj
NjY2NTgyZTM2MzIyOWViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAg
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0
cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0
YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVs
dGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9u
MUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4K
LSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpk
bXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAg
ICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255
bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5U
SVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVt
ZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4
bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4t
LT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4
bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNf
c3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFy
c2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvbjI4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlz
IGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11d
PgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVy
ZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+
Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0g
IDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFn
ZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9
Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9h
ZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0i
aHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2Jl
cnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAg
PHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEg
Tm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmNhNzgxN2M4MTQ4NWVlYjFm
ZDRiZTRmODViZDFlZTIxN2Y0OTZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yOS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOQotU3RhdHVzCWZhaWx1cmUKLU1lc3Nh
Z2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yOS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQ5
ZmQ0NWZhOTE1YzRmNTJhMGMwODc3YTE2Yjk1ZWE3YTJkODkxOS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwxMjggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUg
V2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ks
IEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhl
bWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29y
ayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBp
biB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93
d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEy
MzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhl
IHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1
bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yOSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAw
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkg
ewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRo
aXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBh
c3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZl
cnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRo
ZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBv
ZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAg
ICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUNyZWF0ZSB0d28gZW50aXR5IHJlZmVy
ZW5jZSBub2Rlcy4gVXNpbmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gdG8gY2hlY2sgaWYgdGhl
IGNoaWxkIG9mIHRoZSBmaXJzdCBFbnRpdHkgCi0JUmVmIG5vZGUgcHJlY2VkZXMgdGhlIGNoaWxk
IG9mIHRoZSBzZWNvbmQgRW50aXR5IFJlZiBub2RlLCBhbmQgdGhhdCB0aGUgY2hpbGQgb2YgdGhl
IHNlY29uZCBFbnRpdHkgUmVmIG5vZGUKLQlmb2xsb3dzIHRoZSBjaGlsZCBvZiB0aGUgZmlyc3Qg
RW50aXR5IFJlZiBub2RlLiAgCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UK
LSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIw
MDQwNDA3L2NvcmUjTm9kZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBu
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bjI5IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRWxlbTsK
LSAgICAgIHZhciBlbnRSZWYxOwotICAgICAgdmFyIGVudFJlZjI7Ci0gICAgICB2YXIgZW50UmVm
Q2hpbGQxOwotICAgICAgdmFyIGVudFJlZkNoaWxkMjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQ
b3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDJQb3NpdGlvbjsKLSAgICAgIHZhciBhcHBl
bmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIGVudFJlZjEgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0g
ICAgICBlbnRSZWYyID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAg
ZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBk
b2NFbGVtLmFwcGVuZENoaWxkKGVudFJlZjEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0Vs
ZW0uYXBwZW5kQ2hpbGQoZW50UmVmMik7Ci0gICAgICBlbnRSZWZDaGlsZDEgPSBlbnRSZWYxLmZp
cnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMU5vdE51bGwiLGVu
dFJlZkNoaWxkMSk7Ci1lbnRSZWZDaGlsZDIgPSBlbnRSZWYyLmxhc3RDaGlsZDsKLQotICAgICAg
YXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQyTm90TnVsbCIsZW50UmVmQ2hpbGQyKTsKLWVudFJl
ZkNoaWxkMVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVu
dFJlZkNoaWxkMik7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbkZvbGxvd2luZzI5Iiw0LGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAgICBlbnRSZWZD
aGlsZDJQb3NpdGlvbiA9IGVudFJlZkNoaWxkMi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRS
ZWZDaGlsZDEpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b25QUkVDRURJTkcyOSIsMixlbnRSZWZDaGlsZDJQb3NpdGlvbik7Ci0gICAgICAgCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
OSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LnhodG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTNkMmE5YjcyMTFkNGRmNjM1YzQ2NWJiNTk2ZDA1YmE5
MTJiYjBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yOS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249
IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAi
LS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQi
IFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7
Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4
OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRU
TElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAg
ICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQg
IjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8
L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFU
QSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1s
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNk
Ij48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bjI5LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2Fk
Q29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNv
ZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RB
VEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RB
VEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBh
IHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+
MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBE
YWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+
Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+
Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAw
MDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25u
ZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFz
LCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3
dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8
L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCww
MDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBS
b2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVh
dHVyZTA0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0ZmVhdHVyZTA0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjdhOTVhMWY2MmNlMTQ3NDhmMzQ2MDQyMDRjNzMyOGI3Njk0NGJlYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJTGlu
ZSAxMDE6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVnZXRmZWF0dXJlMDQuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWdldGZlYXR1cmUwNC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjlmNWQyMGY3N2JmYjlkY2EwYTEwZTgwZTFkZjU1ZWJmYjIzYzRkYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDIwMiArMCww
IEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29y
dGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4g
UmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtl
aW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQot
Ci0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAg
ICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0
VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQiOwotICAgfQotCi12YXIgZG9j
c0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlz
IGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAg
ICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29u
ZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBs
b2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBz
ZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAg
ICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlv
biBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkg
ewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkg
dGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVk
QnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQg
Kz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICAgIAotICAgICAgIGlm
IChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRp
b25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBp
biBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9j
dW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQg
d2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVk
LgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0v
KioKLSogCi1DaGVjayBpbXBsZW1lbnRhdGlvbiBvZiBOb2RlLmdldEZlYXR1cmUgb24gRW50aXR5
UmVmZXJlbmNlLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtZ2V0
RmVhdHVyZQotKi8KLWZ1bmN0aW9uIG5vZGVnZXRmZWF0dXJlMDQoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlZ2V0ZmVhdHVyZTA0
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgbm9kZTsKLSAgICAg
IHZhciBudWxsVmVyc2lvbiA9IG51bGw7Ci0KLSAgICAgIHZhciBmZWF0dXJlSW1wbDsKLSAgICAg
IHZhciBpc1N1cHBvcnRlZDsKLSAgICAgIHZhciBkb21JbXBsOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9h
ZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVu
dGF0aW9uOwotbm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAg
IGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJDb3JlIixudWxsVmVyc2lvbik7Ci0gICAg
ICBhc3NlcnRTYW1lKCJjb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJbXBsKTsK
LWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIixudWxsVmVyc2lvbik7Ci0gICAg
ICBhc3NlcnRTYW1lKCJjT3JFVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJbXBsKTsK
LWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCIrY09yRSIsbnVsbFZlcnNpb24pOwotICAg
ICAgYXNzZXJ0U2FtZSgiUGx1c0NvcmVVbnNwZWNpZmllZFZlcnNpb24iLG5vZGUsZmVhdHVyZUlt
cGwpOwotZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIm9yZy53M2MuZG9tdHMuYm9ndXMu
ZmVhdHVyZSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0TnVsbCgidW5yZWNvZ25pemVkRmVh
dHVyZSIsZmVhdHVyZUltcGwpOwotICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJj
T3JFIiwiMi4wIik7Ci0gICAgICBhc3NlcnRTYW1lKCJDb3JlMjAiLG5vZGUsZmVhdHVyZUltcGwp
OwotZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoImNPckUiLCIzLjAiKTsKLSAgICAgIGFz
c2VydFNhbWUoIkNvcmUzMCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1pc1N1cHBvcnRlZCA9IG5vZGUu
aXNTdXBwb3J0ZWQoIlhNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2Rl
LmdldEZlYXR1cmUoIlhNTCIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0
ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJYTUxVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7
Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJTVkciLG51bGxWZXJzaW9u
KTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJTVkciLG51bGxWZXJzaW9u
KTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiU1ZHVW5z
cGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5p
c1N1cHBvcnRlZCgiSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2Rl
LmdldEZlYXR1cmUoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9y
dGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiSFRNTFVuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBs
KTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkV2ZW50cyIsbnVsbFZl
cnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIkV2ZW50cyIsbnVs
bFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1l
KCJFdmVudHNVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0
ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJMUyIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUlt
cGwgPSBub2RlLmdldEZlYXR1cmUoIkxTIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlp
c1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIkxTVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVy
ZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiTFMtQXN5bmMi
LG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJMUy1B
c3luYyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlh
c3NlcnRTYW1lKCJMU0FzeW5jVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQot
CWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiWFBhdGgiLG51bGxWZXJzaW9uKTsKLSAg
ICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJYUGF0aCIsbnVsbFZlcnNpb24pOwot
ICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJYUGF0aFVuc3Bl
Y2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNT
dXBwb3J0ZWQoIitIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUu
Z2V0RmVhdHVyZSgiSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0
ZWQKLQkpIHsKLQlhc3NlcnROb3ROdWxsKCJQbHVzSFRNTFVuc3BlY2lmaWVkIixmZWF0dXJlSW1w
bCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCIrU1ZHIixudWxsVmVy
c2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZHIixudWxsVmVy
c2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydE5vdE51bGwo
IlBsdXNTVkdVbnNwZWNpZmllZCIsZmVhdHVyZUltcGwpOwotCi0JfQotCQotfQotCi0KLQotCi1m
dW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWdldGZlYXR1cmUwNCgpOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0
bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC54
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODdkODVjNTNjMzgyM2JiODExYjFl
NzQ5MzM5YTU1NzNiMjU3MDQ2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1
cmUwNC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
IFsKLTwhRU5USVRZIGVudDEgJ2Zvbyc+Ci08IUVOVElUWSBlbnQyICdmb288YnIvPic+Ci08IUVM
RU1FTlQgaHRtbCAoaGVhZCwgYm9keSk+Ci08IUFUVExJU1QgaHRtbCB4bWxucyBDREFUQSAjSU1Q
TElFRD4KLTwhRUxFTUVOVCBoZWFkICh0aXRsZSxzY3JpcHQqKT4KLTwhRUxFTUVOVCBzY3JpcHQg
KCNQQ0RBVEEpPgotPCFBVFRMSVNUIHNjcmlwdCAKLSAgICAgc3JjIENEQVRBICNJTVBMSUVECi0g
ICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKLSAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRD4KLTwh
RUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Ci08IUVMRU1FTlQgYm9keSAocCk+Ci08IUFUVExJU1Qg
Ym9keSBvbmxvYWQgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgcCAoI1BDREFUQXxicikqPgot
PCFFTEVNRU5UIGJyIEVNUFRZPgotXT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJz4KLTxoZWFkPgotPHRpdGxlPnJlcGxhY2VXaG9sZVRleHQgc2FtcGxlPC90aXRs
ZT4KLTxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J3NlbGZ4aHRtbC5qcyc+PC9z
Y3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSdVVEYtOCcgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9
J25vZGVnZXRmZWF0dXJlMDQuanMnPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci08cD5iYXI8L3A+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWdldHRleHRjb250ZW50MTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOWM1YzI5Y2RkOTk3YmFlOTFiYzBjNWFiNzk0MDViODAxMjY4
MzNjYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUK
LVN0YXR1cwllcnJvcgotTWVzc2FnZQlMaW5lIDEyMTogVHlwZUVycm9yCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUuanMg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxNDY3YTNiYzQxNjIwZDM5MGVjN2Q0
ZDVkOTIyOGI4ODQwYzkwYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE1LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMxICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZWdldHRleHRjb250ZW50MTUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAg
ICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUpOwot
ICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
IiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotCVRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgcmV0dXJucyB0aGUgdGV4dCBjb250
ZW50IG9mIHRoaXMgbm9kZSBhbmQgaXRzIGRlc2NlbmRhbnRzLgotCQotCUludm9rZSB0aGUgbWV0
aG9kIGdldFRleHRDb250ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSB3aXRoIG5ldyBUZXh0LCBF
bnRpdHlSZWZlcmVuY2VzICAKLQlDREFUQVNlY3Rpb24sIFBJIGFuZCBDb21tZW50IG5vZGVzIGFu
ZCBjaGVjayBpZiB0aGUgdmFsdWUgcmV0dXJuZWQgaXMgYSBzaW5nbGUgCi0JY29uY2F0ZW5hdGVk
IFN0cmluZyB3aXRoIGl0cyBjb250ZW50LiAgCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBO
ZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZl
bC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5v
ZGVnZXR0ZXh0Y29udGVudDE1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0
aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWdldHRleHRjb250ZW50MTUiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHR4dDsKLSAgICAg
IHZhciBjb21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAg
IHZhciBwaTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxk
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
IGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIs
ImRvbTM6ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0ICIpOwot
ICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwotICAgICAgZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgcGkgPSBkb2Mu
Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0
YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGls
ZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwot
ICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgdGV4
dENvbnRlbnQgPSBlbGVtLnRleHRDb250ZW50OwotCi0gICAgICBkb2Mubm9ybWFsaXplRG9jdW1l
bnQoKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50MTUiLCJUZXh0IM6y
Q0RhdGEiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE1KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUueGh0bWwgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiZDM2Y2JhM2MzZGEwOTBjYmFkNzc0
N2QwZTg5MWM1ZjI0YjY5NDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE1LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElD
ICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0
ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0
NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5
NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFB
VFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENE
QVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAg
ICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50
NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0
YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENE
QVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0
bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhz
aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54
c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVU
Ri04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRjb250ZW50MTUuanMi
Lz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
eyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0
ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2Nv
dW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4K
LSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0
YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywg
JmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgot
IEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1
cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3Qu
Z292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25n
PgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3Vw
PgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIEly
dmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVu
dDE2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNiNDE0NGQwNWZmMDhkNzJlOGU5ODRhYTExMzE1NDg2NGI4MTFhNGIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2Ci1TdGF0dXMJZXJyb3IKLU1l
c3NhZ2UJTGluZSAxMjM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LmpzIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1NDFmN2M4NDE5ZThkMTE1NjQyMDg4NDk1ODg2OGZhYWQ2MTU1ZDlh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcworKysgL2Rl
di9udWxsCkBAIC0xLDEzNSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQg
V29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2Yg
VGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGlj
cyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZl
ZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExp
Y2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1b
MV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0
d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRl
bnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QK
LSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVy
ID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rp
bmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8K
LS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9u
b3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0
aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9u
IGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkg
b2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRl
c3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBi
dWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1lbnRh
dGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBzZXRJbXBsZW1l
bnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUpOwotCi0gICAg
ICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQot
ICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIs
IGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2Yg
Ci0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0v
LwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxl
dGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhl
Ci0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlUaGUgbWV0
aG9kIGdldFRleHRDb250ZW50IHJldHVybnMgdGhlIHRleHQgY29udGVudCBvZiB0aGlzIG5vZGUg
YW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJbnZva2UgdGhlIG1ldGhvZCBnZXRUZXh0Q29udGVu
dCBvbiBhIG5ldyBEb2N1bWVudEZyYWdtZW50IG5vZGUgd2l0aCBuZXcgVGV4dCwgRW50aXR5UmVm
ZXJlbmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29tbWVudCBub2RlcyBhbmQgY2hlY2sg
aWYgdGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAotCWNvbmNhdGVuYXRlZCBTdHJpbmcg
d2l0aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4
dGNvbnRlbnQxNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE2IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFy
IGVsZW1DaGlsZDsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZh
ciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2YXIgdGV4
dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRw
Oi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImRvbTM6ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNy
ZWF0ZVRleHROb2RlKCJUZXh0ICIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50
KCJDb21tZW50ICIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
YmV0YSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQi
LCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRh
Iik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRl
ZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5k
Q2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQo
ZWxlbSk7Ci0gICAgICBkb2Mubm9ybWFsaXplRG9jdW1lbnQoKTsKLSAgICAgIHRleHRDb250ZW50
ID0gZG9jRnJhZy50ZXh0Q29udGVudDsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlZ2V0dGV4
dGNvbnRlbnQxNiIsIlRleHQgzrJDRGF0YSIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWdldHRleHRjb250ZW50MTYoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4
dGNvbnRlbnQxNi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0dGV4dGNvbnRlbnQxNi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZl
ZmMxNWViNGVmMDFmYjNmZWQxY2JkODU4NjRlNDU1OTFkMWNmOS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyAr
MCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9D
VFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgot
ICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAg
IDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAg
IDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4K
LSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVC
TElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90
YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAg
ICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElT
VCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAg
ICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFB
VFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1l
bnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1p
bnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8
L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIv
PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rl
Z2V0dGV4dGNvbnRlbnQxNi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVz
YS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUx
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFb
VGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50
MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9j
b2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2Vt
PgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBN
YW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1Mzwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+
Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAg
PGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsi
IGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRo
IFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVt
cDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4x
ODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwv
Ym9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWdldHRleHRjb250ZW50MTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzZiZWIzMjdkODBkZWYyYzk3OWViNDkxMWZiMzc3NzEw
MzMzMjJjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTctZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTcKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCW5vZGVnZXR0ZXh0Y29udGVudDE3OiBhc3NlcnRF
cXVhbHMgZmFpbGVkLCBhY3R1YWwgLCBleHBlY3RlZCDOsi4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDI0YmE2MDFhOTFmZTUxNThhOGIxMzI3YzgzMzIz
OGNmYjlhNTg2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkg
MjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5z
dGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3Ig
SW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdo
dHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBT
b2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5
cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVS
SSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmll
ciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVy
biAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
Z2V0dGV4dGNvbnRlbnQxNyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSB0aGUg
bWV0aG9kIGdldFRleHRDb250ZW50IG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGFuZCBj
aGVjayBpZiB0aGUgCi0JdmFsdWUgcmV0dXJuZWQgaXMgdGhlIEVudGl0eVJlZmVyZW5jZSdzIGNv
bnRlbnQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29y
ZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVnZXR0ZXh0Y29udGVudDE3KCkg
ewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAi
bm9kZWdldHRleHRjb250ZW50MTciKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAg
ICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsK
LSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0g
ICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgdGV4dENvbnRl
bnQgPSBlbnRSZWYudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRl
eHRjb250ZW50MTciLCLOsiIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgbm9kZWdldHRleHRjb250ZW50MTcoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQx
Ny54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNv
bnRlbnQxNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc5YzIyYzRkMWU1
ODRkYTBkYWY5ZTgzNmRjNDVjMWE2MzQzOTRlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWdldHRleHRjb250ZW50MTcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1s
Ci0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1s
MS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZ
IGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZ
IGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5U
SVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3Rh
dGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmls
ZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1s
bnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0g
ICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFj
cm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNw
YW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAg
ICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIK
LSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlZ2V0dGV4dGNv
bnRlbnQxNy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWlu
c2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzOTdmYTgzMTBkMzdkZWUwMTBiZTVjNDkxNzkwNjY1MTdlOGIzMWUzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExCi1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNl
cnRiZWZvcmUxMS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5z
ZXJ0YmVmb3JlMTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4YThiOWVjMmMy
MDQwZGIxODJkMTFiNmMxZGM4OWRmZDgyNDU0NDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVpbnNlcnRiZWZvcmUxMS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0NSArMCwwIEBACi0KLS8q
Ci1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0o
TWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2gg
Q29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVy
c2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
Ci10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1
bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8q
KgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0
dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJ
KCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotCi0KLQotCVVzaW5nIGluc2VydEJlZm9yZSBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBh
dHRlbXB0IHRvIGluc2VydCBhIGNoaWxkIG5vZGVzIGJlZm9yZQotCW90aGVyIHBlcm1pc3NpYmxl
IG5vZGVzIGFuZCB2ZXJpZnkgdGhlIGNvbnRlbnRzL25hbWUgb2YgZWFjaCBpbnNlcnRlZCBub2Rl
LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQt
OTUyMjgwNzI3Ci0qLwotZnVuY3Rpb24gbm9kZWluc2VydGJlZm9yZTExKCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWluc2VydGJl
Zm9yZTExIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJh
ZzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIGNvbW1lbnQ7Ci0g
ICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIGVSZWY7Ci0gICAgICB2
YXIgaW5zZXJ0ZWQ7Ci0gICAgICB2YXIgaW5zZXJ0ZWRWYWw7Ci0gICAgICB2YXIgYXBwZW5kZWRD
aGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVsZW0g
PSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiYm9k
eSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVRhcmdl
dCIsIlBJRGF0YSIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50
Iik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIGNkYXRh
ID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEEiKTsKLSAgICAgIGVSZWYgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0Zy
YWcuYXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBl
bmRDaGlsZChwaSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChj
b21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKHR4dCk7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChjZGF0YSk7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAgIGluc2Vy
dGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUoY29tbWVudCxwaSk7Ci0gICAgICBpbnNlcnRlZFZh
bCA9IGluc2VydGVkLmRhdGE7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWluc2VydGJlZm9y
ZTExX0NvbW1lbnQiLCJDb21tZW50IixpbnNlcnRlZFZhbCk7Ci0gICAgICAgaW5zZXJ0ZWQgPSBk
b2NGcmFnLmluc2VydEJlZm9yZSh0eHQsY29tbWVudCk7Ci0gICAgICBpbnNlcnRlZFZhbCA9IGlu
c2VydGVkLmRhdGE7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWluc2VydGJlZm9yZTExX1Rl
eHQiLCJUZXh0IixpbnNlcnRlZFZhbCk7Ci0gICAgICAgaW5zZXJ0ZWQgPSBkb2NGcmFnLmluc2Vy
dEJlZm9yZShjZGF0YSx0eHQpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5kYXRhOwot
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9DREFUQSIsIkNEQVRBIixp
bnNlcnRlZFZhbCk7Ci0gICAgICAgaW5zZXJ0ZWQgPSBkb2NGcmFnLmluc2VydEJlZm9yZShlUmVm
LGNkYXRhKTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5zZXJ0ZWQubm9kZU5hbWU7Ci0KLSAgICAg
IGFzc2VydEVxdWFscygibm9kZWluc2VydGJlZm9yZTExX0VudDEiLCJhbHBoYSIsaW5zZXJ0ZWRW
YWwpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWlu
c2VydGJlZm9yZTExKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMWE0YWE2ODM3Mzg1ZTAwMDMzM2Q2YmM1YzQ4MTE4Njc5NDZhZDVkZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLnhodG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJ
REFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg
U3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEg
IiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2ls
b24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04g
bm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENE
QVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAj
SU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0
YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0g
VGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAw
MS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRp
dGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJz
ZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ibm9kZWluc2VydGJlZm9yZTExLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRz
Ci08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51
bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rp
b24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZl
bnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRh
dmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwv
c3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4K
LSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lh
bGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxNDJmM2U2MzU0NzUwN2VlNWRhMmRmMzZl
ZWQxNWI0Y2MyZmQ1N2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUx
NS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVm
b3JlMTUKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggN2YzNzE2ZWExOWQ0YWY3MTdkYjY0YTFiMDYzNWU0NTk1OTA1ZTNlNC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMTc3ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRl
IFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5
LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRo
ZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdv
cmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0g
aW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8v
d3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIx
MjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRo
ZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1m
dW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1IjsKLSAg
IH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogCi0JQSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMg
cmFpc2VkIGlmIHRoZSBub2RlIGlzIHJlYWQtb25seS4KLQkKLQlVc2luZyBpbnNlcnRCZWZvcmUg
b24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byBpbnNlcnQgRWxlbWVudCwg
VGV4dCwKLQlDb21tZW50LCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gYW5kIENEQVRBU2VjdGlvbiBu
b2RlcyBiZWZvcmUgYW4gZWxlbWVudCBjaGlsZAotCWFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3Ig
TmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2
ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtOTUyMjgwNzI3Ci0qLwotZnVuY3Rpb24gbm9kZWlu
c2VydGJlZm9yZTE1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAibm9kZWluc2VydGJlZm9yZTE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVsZW1DaGlsZDsKLSAgICAg
IHZhciB0eHQ7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFy
IHBpOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIGluc2VydGVkOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
ID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBlbGVtQ2hpbGQgPSBlbnRSZWYu
Zmlyc3RDaGlsZDsKLQotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFU
QVNlY3Rpb24iKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAg
ICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKGNkYXRhLGVsZW1DaGlsZCk7
Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNv
ZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgi
dGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzEiLHN1Y2Nlc3MpOwotCX0KLXBpID0g
ZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwotICAgICAg
Ci0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9
IGVudFJlZi5pbnNlcnRCZWZvcmUocGksZWxlbUNoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChl
eCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYg
ZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05f
QUxMT1dFRF9FUlJfMiIsc3VjY2Vzcyk7Ci0JfQotY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50
KCJDb21tZW50Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjb21tZW50LGVsZW1DaGls
ZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4
LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1
ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLXR4
dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZv
cmUodHh0LGVsZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nl
c3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0J
CX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzQiLHN1
Y2Nlc3MpOwotCX0KLWVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIiwiYm9keSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0J
CXRyeSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoZWxlbSxl
bGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl81IixzdWNjZXNzKTsK
LQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVpbnNlcnRiZWZv
cmUxNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVpbnNlcnRiZWZvcmUxNS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZmMGQwMGI5Y2ExNjM3MWVmYzAyZjhlNDAxZWI0NWQ4NTdmNDFkYzEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/Pgot
PCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8v
RU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsi
PgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0Nzsi
PgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0
OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVN
ICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRs
JwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0g
ICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMg
Y29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
ZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Im5vZGVpbnNlcnRiZWZvcmUxNS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMWMwZTE3NTRmN2E5MmNmZWU4OTQxOTI4YjRlZjZiMTdiOWE3
N2YxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIKLVN0YXR1
cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTIuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlMThh
MjI3MWU4YWM5ZTg2OWJjMWY5YWY1ZDE3MTE2Mzc4OThiODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZW1vdmVjaGlsZDEyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAK
LQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVt
LCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNl
YXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBV
bml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25z
b3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQot
ICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICog
IEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJn
ZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIiOwotICAgfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2Fy
ZSIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQg
Kz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAg
aWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXph
dGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24g
dGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVk
IGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBk
b2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdl
ZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0
ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LS8qKgotKiAKLQlUaGUgbWV0aG9kIHJlbW92ZUNoaWxkIHJlbW92ZXMgdGhlIGNoaWxkIG5vZGUg
aW5kaWNhdGVkIGJ5IG9sZENoaWxkIGZyb20gdGhlIGxpc3QgCi0Jb2YgY2hpbGRyZW4sIGFuZCBy
ZXR1cm5zIGl0LiAKLQotCVVzaW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IERvY3VtZW50RnJhZ21l
bnQgbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZS4KLSAg
ICAgICAgQWxzbyBhdHRlbXB0IHRvIHJlbW92ZSB0aGUgZG9jdW1lbnQgZnJhZ21lbnQgbm9kZSBm
cm9tIHRoZSBFbnRpdHlSZWZlcmVuY2UuICBWZXJpZnkgdGhhdCBhIAotICAgICAgICBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlIgKEVudGl0eVJlZmVyZW5jZSBub2RlIGlzIHJlYWQtb25seSkg
b3IgYSBOT1RfRk9VTkRfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9y
IE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxl
dmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlvbiBub2Rl
cmVtb3ZlY2hpbGQxMigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6
YXRpb24oYnVpbGRlciwgIm5vZGVyZW1vdmVjaGlsZDEyIikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFy
IHJlbW92ZWRFUmVmOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIgcmVtb3Zl
ZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZVJl
ZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVSZWYpOwotICAgICAgcmVtb3ZlZENoaWxkID0gZG9j
RnJhZy5yZW1vdmVDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92ZWRFUmVmID0gZG9jRnJhZy5maXJz
dENoaWxkOwotCi0gICAgICBhc3NlcnROdWxsKCJub2RlcmVtb3ZlY2hpbGQxMiIscmVtb3ZlZEVS
ZWYpOwotICAgIAotICAgICAgdHJ5IHsKLSAgICAgIHJlbW92ZWRDaGlsZCA9IGVSZWYucmVtb3Zl
Q2hpbGQoZG9jRnJhZyk7Ci0gICAgICAKLSAgICAgIH0gY2F0Y2ggKGV4KSB7Ci0JCSAgaWYgKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJykgeyAgICAgIAotICAgICAgIHN3aXRjaChleC5j
b2RlKSB7Ci0gICAgICAgY2FzZSAvKiBOT1RfRk9VTkRfRVJSICovIDggOgotICAgICAgIGJyZWFr
OwotICAgICAgY2FzZSAvKiBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgKi8gNyA6Ci0gICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICB0aHJvdyBleDsKLSAgICAg
ICAgICB9Ci0gICAgICAgfSBlbHNlIHsgCi0gICAgICAgdGhyb3cgZXg7Ci0gICAgICAgIH0KLSAg
ICAgICAgIH0KLSAgICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBu
b2RlcmVtb3ZlY2hpbGQxMigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3MzZlZDkyZjAzYmE1NGFlYzgyN2RiNzg0ZjYwNTZkOTIzNDk0OTRmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQ
SURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhh
ICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1h
ICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNp
bG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBD
REFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRh
dGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEyLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRz
Ci08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51
bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rp
b24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZl
bnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRh
dmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwv
c3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4K
LSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lh
bGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NmU1NmE2YzZhMDYzMjAwODY1MTUwZmRlODhj
ODNmOTRmNTJhNGFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3
dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQx
MwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdHh0Tm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWls
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVt
b3ZlY2hpbGQxMy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVt
b3ZlY2hpbGQxMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM4MGZmYjRhNjUy
ZDkwMmRhMmQyZGZmNTE3Njg2N2ZlOTYyZjNkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlbW92ZWNoaWxkMTMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
CVVzaW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQg
dG8gcmVtb3ZlIHRoZSBmaXJzdCBjaGlsZCAKLQlvZiB0aGlzIG5vZGUgYW5kIHZlcmlmeSBpZiBh
IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0K
LSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQv
UkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVu
Y3Rpb24gbm9kZXJlbW92ZWNoaWxkMTMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVj
a0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxMyIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBlUmVmOwotICAg
ICAgdmFyIHJlbW92ZWQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgZVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7
Ci0gICAgICB0eHQgPSBlUmVmLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoInR4
dE5vdE51bGwiLHR4dCk7Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAg
ICAgICAgIHJlbW92ZWQgPSBlUmVmLnJlbW92ZUNoaWxkKHR4dCk7Ci0gICAgICAgIH0KLQkJY2F0
Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQn
ICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FU
SU9OX0FMTE9XRURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgIG5vZGVyZW1vdmVjaGlsZDEzKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMueGh0bWwgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxMzE3YTQ2M2UxOWU5NmQ5YzEyNTQ2NzlmYjU3
NWU3YjlmYzA1NWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnho
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+
PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0Mv
L0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAg
PCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAg
PCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAg
IDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAK
LSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBM
SUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIg
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHht
bG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4g
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48
P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBM
SUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDov
L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFk
PjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFy
c2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlbW92ZWNoaWxkMTMuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyMzViZjRkZmRiMDBl
MjVlMDgxOGIxNmQwZDBjYWE1ODk1Zjc5NjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZW1vdmVjaGlsZDE0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
VGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE0Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlwaU5vdE51bGw6IGFzc2Vy
dE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAzZDVhMTkzM2VlOTc2NWEyOWM1NzViY2I1ZjBmNTlkZDFhZmVlYTEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQiOwotICAgfQotCi12YXIg
ZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0v
LyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8g
Y29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVu
dCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBp
cyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAg
ICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5j
dGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0
cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBt
YXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1
cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2Fk
ZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAg
ICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFs
aXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQg
b24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFy
dGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRl
ZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hh
bmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhl
Y3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLS8qKgotKiAKLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ug
bm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBpdHMgbGFzdCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gCi0J
Y2hpbGQgbm9kZSBhbmQgdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlz
IHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlvbiBub2RlcmVtb3ZlY2hpbGQxNCgpIHsKLSAg
IHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVy
ZW1vdmVjaGlsZDE0IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
cmVtb3ZlZDsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIGVudE5h
bWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIHBpID0g
ZVJlZi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoInBpTm90TnVsbCIscGkpOwot
Ci0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW1vdmVkID0g
ZVJlZi5yZW1vdmVDaGlsZChwaSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1
Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7
Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIixz
dWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVy
ZW1vdmVjaGlsZDE0KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwODRmN2Q3NDVlZmQyN2M0NmVkODU3NWY2NzdkODJmMDg3NjQzNmUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFU
QT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYj
OTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24g
IiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBT
WVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRB
ICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
Om5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1Q
TElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+
Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9Y
TUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
eGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ibm9kZXJlbW92ZWNoaWxkMTQuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwMmUwYzJiYThiZjhlY2E2MWE4NTJmOTU2ZjBjODFk
NWJiOGM5MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1Ci1T
dGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbGVtTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTNiM2Y3Y2M4ZTA4MTFi
YjgwYjNlN2I0Y2E5OTA0OWRkMDk1YzdkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
bW92ZWNoaWxkMTUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjIgKzAsMCBAQAotCi0vKgotQ29w
eXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3Nh
Y2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNv
cnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkp
LiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0
aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhl
IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVn
YWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAg
ICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1
cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsK
LSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEw
MDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMg
Y2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0
aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4
Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3Rh
cnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0
ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVu
IGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgp
IHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0g
ICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRp
b24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0K
LSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRv
Y1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAg
ICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVp
bGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlv
biBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0
cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBj
b21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93
cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVz
aW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8g
cmVtb3ZlIGFuIEVsZW1lbnQgY2hpbGQgCi0JYW5kIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElP
Tl9BTExPV0VEX0VSUiBpcyB0aHJvd24uIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVp
bCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwt
My1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5vZGVyZW1v
dmVjaGlsZDE1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlv
bihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTUiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgZW50TmFt
ZTsKLSAgICAgIHZhciByZW1vdmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJl
bnQ0Iik7Ci0gICAgICBlbGVtID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3RO
dWxsKCJlbGVtTm90TnVsbCIsZWxlbSk7Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIHJlbW92ZWQgPSBlUmVmLnJlbW92ZUNoaWxkKGVsZW0pOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hpbGQxNSgpOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1Lnho
dG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTQ4NjI3YTVjMTFiZTI2N2Uw
ZGNhMzRkMDU4Yjg0ZGI5MDUyYzUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNp
b249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5k
dGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5
NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYj
OTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwh
QVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAg
ICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVu
dDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRh
dGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBD
REFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxo
dG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4
c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYu
eHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJV
VEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDE1LmpzIi8+
PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsg
c3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUo
KSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAx
PC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3Vu
dGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0g
IDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9u
IHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBp
cyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFi
O11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZn
YW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBK
b25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+
MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgot
ICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0
b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5
ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0Lmdv
diI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4K
LSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4K
LSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZp
bmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQxOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNk
OWY4NDE4OGRmMWEwMWQ5NGUwM2JjNTI0NzY3NTFiMzI5MTIxNWQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4Lmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEwYjY3MmJjNDhkOWE3YzU2MDljNjZm
NjhmYjljMGMxYTkyMjQ4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDE4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDD
gsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRz
IEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAot
Zm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAot
UmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OC
wq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIv
Y29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0
cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50
aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICBy
ZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDE4IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsK
LXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
YnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0
IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9u
cywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAg
T3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0
aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJp
bmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAg
c2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8g
ICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAg
ICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAg
ZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAg
ICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBl
eCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAot
Ly8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8K
LS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRl
ZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQot
Ly8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVw
bGFjZUNoaWxkIG9uIGEgRG9jdW1lbnRGcmFnbWVudCBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBh
IENEQVRBU2VjdGlvbiBub2RlIHdpdGggCi0JYSBFbnRpdHlSZWZlcmVuY2UgYW5kIHZpY2UgdmVy
c2EgdmVyaWZ5IHRoZSBkYXRhIG9mIHRoZSByZXBsYWNlZCBub2Rlcy4KLQotKiBAYXV0aG9yIElC
TQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1
bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQxOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQxOCIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZW50
UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkQ0RhdGE7Ci0gICAgICB2
YXIgcmVwbGFjZWRFcmVmOwotICAgICAgdmFyIGNkYXRhTmFtZTsKLSAgICAgIHZhciBlcmVmTmFt
ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRG
cmFnbWVudCgpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNl
Y3Rpb24iKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhh
Iik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlbnRSZWYpOwot
ICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAg
cmVwbGFjZWRDRGF0YSA9IGRvY0ZyYWcucmVwbGFjZUNoaWxkKGVudFJlZixjZGF0YSk7Ci0gICAg
ICBjZGF0YU5hbWUgPSByZXBsYWNlZENEYXRhLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1
YWxzKCJub2RlcmVwbGFjZWNoaWxkMThfMSIsIkNEQVRBU2VjdGlvbiIsY2RhdGFOYW1lKTsKLSAg
ICAgICByZXBsYWNlZEVyZWYgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChjZGF0YSxlbnRSZWYpOwot
ICAgICAgZXJlZk5hbWUgPSByZXBsYWNlZEVyZWYubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVx
dWFscygibm9kZXJlcGxhY2VjaGlsZDE4XzIiLCJhbHBoYSIsZXJlZk5hbWUpOwotICAgICAgIAot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDE4KCk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDE4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ3
NjdiOWVhZjg0ZTJhY2VkMzFjYTU5Y2ZhMzkxNDM2ZDNjMmUzYS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZ
UEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAg
ICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8
IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8
IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJ
QyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0
aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAg
ICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
aHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAg
ICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRU
TElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
Ci0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5z
dGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJl
cGxhY2VjaGlsZDE4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlz
IGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11d
PgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVy
ZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+
Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0g
IDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFn
ZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9
Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9h
ZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0i
aHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2Jl
cnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAg
PHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEg
Tm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGE4YTJkMzYxZTkxMDZkNGQxZDgwZTUxMmJjZGVjNTgwYjNiMGU3NDgu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkKLVN0YXR1cwlT
dWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDE5LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGI5YTE3
ZGY5N2Y0M2QwMzUyZjNiZDhhZDFjNWM5MzQwOGYzNWIxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDE5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE4ICswLDAgQEAK
LQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVt
LCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNl
YXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBV
bml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25z
b3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQot
ICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICog
IEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJn
ZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5IjsKLSAgIH0KLQotdmFyIGRvY3NM
b2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAg
ICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZp
Z3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9h
ZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0
IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAg
cmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24g
c2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsK
LSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRo
cm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1
aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9
IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlm
IChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRp
b25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBp
biBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9j
dW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQg
d2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVk
LgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0v
KioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgRG9jdW1lbnRGcmFnbWVudCBub2RlIGF0
dGVtcHQgdG8gcmVwbGFjZSBhbiBFbGVtZW50IG5vZGUgd2l0aCAKLQlpdHMgRW50aXR5UmVmZXJl
bmNlIGNoaWxkIHZlcmlmeSB0aGUgbm9kZU5hbWUgb2YgdGhlIHJlcGxhY2VkIG5vZGUuCi0KLSog
QGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMu
b3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODcz
MDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMTkoKSB7Ci0gICB2YXIgc3VjY2VzczsK
LSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMTki
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAg
ICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAg
ICAgdmFyIG5vZGVOYW1lOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Mg
PSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5j
cmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnRO
UygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRvbTM6cCIpOwotICAgICAgZW50UmVm
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9j
RnJhZy5hcHBlbmRDaGlsZChlbGVtKTsKLSAgICAgIHJlcGxhY2VkID0gZG9jRnJhZy5yZXBsYWNl
Q2hpbGQoZW50UmVmLGVsZW0pOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsK
LQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMTkiLCJkb20zOnAiLG5vZGVO
YW1lKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVy
ZXBsYWNlY2hpbGQxOSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDMyNWIyY2IzYjNiZTcwZWQ3OTRiZTFmMDIwMzBiMzZkMTkzNDczZTcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS54aHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQ
SURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhh
ICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1h
ICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNp
bG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBD
REFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRh
dGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQxOS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZh
c2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+
PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2Fy
ZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMs
IFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xk
cwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBu
dW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0
aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+
U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVt
PkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+
RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4m
ZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0
ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0
YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8
L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+
Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNp
YWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3Jvbnlt
PgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjItZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTFkYWYyZmVmMzVlZGIzNzM5NWY0NDk3
M2M4ODE1NTIyNmJiN2I3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MjItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDIyCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZkM2Y0MjNmNzM1ZjNmMWIyNWNhNWU0Y2IzNjA4MjU2MzAzYTc0NWEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi5qcworKysgL2Rldi9udWxsCkBA
IC0xLDE0NSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lk
ZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9n
eSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0
aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3
b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFd
IGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDov
L3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAy
MTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0
aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwot
ZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMiI7Ci0g
ICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0K
LS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29y
ayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRo
ZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAg
ICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwot
Ly8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlh
dGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0
LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5u
aW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50
IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNy
ZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAlj
YXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91
cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hy
b25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0
YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVz
dCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIG5ldyBFbnRp
dHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYW4gRW50aXR5UmVmZXJlbmNlIG5v
ZGUgd2l0aCAKLQlpdHMgRWxlbWVudCBwYXJlbnQsIHdpdGggaXRzZWxmIGFuZCB2aWNlIHZlcnNh
IHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24uCi0KLSog
QGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMu
b3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODcz
MDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMjIoKSB7Ci0gICB2YXIgc3VjY2VzczsK
LSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMjIi
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbnRSZWZNYWluOwot
ICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGFwcGVuZGVkQ2hp
bGQ7Ci0gICAgICB2YXIgcmVwbGFjZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygi
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRvbTM6cCIpOwotICAgICAgZW50UmVmTWFp
biA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBlbnRSZWYgPSBk
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
ZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7
Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNlZENoaWxkID0gZW50UmVmTWFpbi5yZXBsYWNl
Q2hpbGQoZWxlbSxlbnRSZWYpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNj
ZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwot
CQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixz
dWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAg
ICAgIHJlcGxhY2VkQ2hpbGQgPSBlbnRSZWZNYWluLnJlcGxhY2VDaGlsZChlbnRSZWYsZWxlbSk7
Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNv
ZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgi
dGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0KLQotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWRDaGlsZCA9
IGVudFJlZk1haW4ucmVwbGFjZUNoaWxkKGVudFJlZk1haW4sZW50UmVmKTsKLSAgICAgICAgfQot
CQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVm
aW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlJfMyIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMjIoKTsKLX0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIueGh0
bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIy
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjMyNTRlMmNhYmEzMmJiNDA1
M2Q3NDY0OWNjOWZhODMwMWFlZDBmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMjIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJz
aW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3Qu
ZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYj
OTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICIm
Izk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhh
ICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxl
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8
IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAg
ICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBl
bnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBk
YXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMg
Q0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08
aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6
eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZm
LnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0i
VVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMjIuanMi
Lz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
eyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0
ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2Nv
dW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4K
LSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0
YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywg
JmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgot
IEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1
cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3Qu
Z292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25n
PgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3Vw
PgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIEly
dmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQy
My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NDE4Yjc3YjM4ZTNiYzFjMzdhYmFmNjZkY2FlYWMwZDk0YWViNDlmOS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMwotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMu
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIz
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzMxYWZjOWRjN2U1NDAzYTg1Y2Y0
NzU0ZDg2YmZjNGVkMmU2YTE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMjMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0
IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0
dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0g
Ci1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwg
Ci1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzND
w4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
Mi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBH
ZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRl
bnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAg
IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMjMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAg
ICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQot
ICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIs
IGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2Yg
Ci0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0v
LwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxl
dGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhl
Ci0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBy
ZXBsYWNlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byByZXBs
YWNlIGFuIEVsZW1lbnQsIFRleHQsCi0JQ29tbWVudCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFu
ZCBDREFUQVNlY3Rpb24gbm9kZXMgd2l0aCBlYWNoIG90aGVyIGFuZCBpbiBlYWNoIGNhc2UKLQl2
ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBh
dXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9y
Zy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3
Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0g
ICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDIzIikg
IT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAg
dmFyIHR4dDsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIg
cGk7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICB2YXIgYXBw
ZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCIsImRvbTM6cCIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIp
OwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50Iik7Ci0gICAgICBj
ZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBU2VjdGlvbiIpOwotICAgICAgcGkg
PSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJ0YXJnZXQiLCJkYXRhIik7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBl
bGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2Rh
dGEpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAg
ICByZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQoY2RhdGEsZWxlbSk7Ci0gICAgICAgIH0K
LQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRl
ZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9
IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNo
aWxkKHBpLGNkYXRhKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9
ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQot
CQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMiIsc3VjY2Vz
cyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBy
ZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQoY29tbWVudCxwaSk7Ci0gICAgICAgIH0KLQkJ
Y2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmlu
ZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZh
bHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxk
KHR4dCxjb21tZW50KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9
ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQot
CQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNCIsc3VjY2Vz
cyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBy
ZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQoZWxlbSx0eHQpOwotICAgICAgICB9Ci0JCWNh
dGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVk
JyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNB
VElPTl9BTExPV0VEX0VSUl81IixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQyMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1OGExZDI1MTYzZmQ1YTNmYmFjN2Qx
MDE0OTNkNGE1NzFhZWIxN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQyMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249
IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAi
LS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQi
IFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7
Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4
OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRU
TElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAg
ICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQg
IjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8
L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFU
QSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1s
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNk
Ij48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQyMy5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWY4
M2U3NGI5MjY3MzMxYzE3MDNiZDI4ZDE2ZWZjMjFmNDZmYjA3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzAtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3MzU4ZjkzNDcyNjNiODI3YThlODg4MTNl
N2FlMzdjMGI3NjMyZGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
MC5qcworKysgL2Rldi9udWxsCkBAIC0xLDE2OCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzMCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCi0KLQotCVVzaW5n
IHJlcGxhY2VDaGlsZCBvbiBhbiBFbGVtZW50IG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGEgbmV3
IEVsZW1lbnQgY2hpbGQgbm9kZSB3aXRoIAotCW5ldyBjaGlsZCBub2RlcyBhbmQgdmljZSB2ZXJz
YSBhbmQgaW4gZWFjaCBjYXNlIHZlcmlmeSB0aGUgbmFtZSBvZiB0aGUgcmVwbGFjZWQgbm9kZS4K
LQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4
NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMCgpIHsKLSAgIHZhciBzdWNj
ZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hp
bGQzMCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHBhcmVudDsK
LSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdFbGVtZW50OwotICAgICAgdmFyIG5l
d1RleHQ7Ci0gICAgICB2YXIgbmV3Q29tbWVudDsKLSAgICAgIHZhciBuZXdQSTsKLSAgICAgIHZh
ciBuZXdDZGF0YTsKLSAgICAgIHZhciBuZXdFUmVmOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAg
ICAgdmFyIG5vZGVOYW1lOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Mg
PSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50ID0gZG9jLmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1sOmh0bWwi
KTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCIsInhodG1sOmhlYWQiKTsKLSAgICAgIG5ld0VsZW1lbnQgPSBkb2MuY3Jl
YXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwieGh0bWw6Ym9keSIp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChvbGRDaGlsZCk7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG5ld0VsZW1lbnQpOwotICAg
ICAgbmV3VGV4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdUZXh0KTsKLSAgICAgIG5ld0NvbW1lbnQgPSBk
b2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVu
dC5hcHBlbmRDaGlsZChuZXdDb21tZW50KTsKLSAgICAgIG5ld1BJID0gZG9jLmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IHBhcmVudC5hcHBlbmRDaGlsZChuZXdQSSk7Ci0gICAgICBuZXdDZGF0YSA9IGRvYy5jcmVhdGVD
REFUQVNlY3Rpb24oIkNkYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVu
ZENoaWxkKG5ld0NkYXRhKTsKLSAgICAgIG5ld0VSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCJkZWx0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChu
ZXdFUmVmKTsKLSAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdFbGVtZW50
LG9sZENoaWxkKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAg
IGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzEiLCJ4aHRtbDpoZWFkIixub2RlTmFt
ZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5ld0Vs
ZW1lbnQpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNz
ZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfMiIsInhodG1sOmJvZHkiLG5vZGVOYW1lKTsK
LSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3VGV4dCxvbGRDaGlsZCk7
Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVh
bHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8zIiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAgICAg
IHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdUZXh0KTsKLSAgICAg
IG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZXJlcGxhY2VjaGlsZDMwXzQiLCIjdGV4dCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0g
cGFyZW50LnJlcGxhY2VDaGlsZChuZXdDb21tZW50LG9sZENoaWxkKTsKLSAgICAgIG5vZGVOYW1l
ID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2Vj
aGlsZDMwXzUiLCJ4aHRtbDpoZWFkIixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJl
bnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5ld0NvbW1lbnQpOwotICAgICAgbm9kZU5hbWUgPSBy
ZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxk
MzBfNiIsIiNjb21tZW50Iixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVw
bGFjZUNoaWxkKG9sZENoaWxkLG5ld1BJKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9k
ZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzciLCJ0YXJn
ZXQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xk
Q2hpbGQsbmV3Q2RhdGEpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQot
ICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfOCIsIiNjZGF0YS1zZWN0aW9u
Iixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENo
aWxkLG5ld0VSZWYpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAg
ICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfOSIsImRlbHRhIixub2RlTmFtZSk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFj
ZWNoaWxkMzAoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzAueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjZGI1Y2JiMTMzZmFhZjJlYjRmMTA0M2QyMWZjNDM1MDhiN2RjN2UzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJub2RlcmVwbGFjZWNoaWxkMzAuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMzZjkyOTMzNTgyYTcwNTQyNjE1ZDEyNTBhNDkx
MGE3NDkzZDBhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
MwotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlNzRiZTQ0ZDRiMGE3NzFjYjc5MjA0MzZjN2EzYzJkOGE2MjE2NGI2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjAgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBkZWZhdWx0IEF0dHIg
bm9kZSB0byByZXBsYWNlIGl0cyBUZXh0IENoaWxkIHdpdGggYSAKLQluZXcgRW50aXR5UmVmZXJl
bmNlIE5vZGUgYW5kIHZlcmlmeSB0aGUgdmFsdWUgb2YgdGhlIHJlcGxhY2VkIGNoaWxkLgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3
MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDMzKCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDMz
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgY2hpbGRMaXN0Owot
ICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwot
ICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFyIG5vZGVW
YWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICBuZXdDaGlsZCA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAg
ICBjaGlsZExpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKTsKLSAgICAgIGVsZW0g
PSBjaGlsZExpc3QuaXRlbSgzKTsKLSAgICAgIHBhcmVudCA9IGVsZW0uZ2V0QXR0cmlidXRlTm9k
ZSgiZGlyIik7Ci0gICAgICBvbGRDaGlsZCA9IHBhcmVudC5sYXN0Q2hpbGQ7Ci0KLSAgICAgIHJl
cGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICBu
b2RlVmFsdWUgPSByZXBsYWNlZC5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZXJlcGxhY2VjaGlsZDMzIiwicnRsIixub2RlVmFsdWUpOwotICAgICAgIAotfQotCi0KLQotCi1m
dW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDMzKCk7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMz
LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzMy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDc5OTBjMTU4MDY1NTVl
ZGVjZDE1ZjMyMTAxYThjZmEyNDYzYTY3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDMzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwg
dmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAg
UFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3Ry
aWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRh
ICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0
YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24x
RmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgot
ICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRt
c3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAg
ICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAg
ICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jvbnlt
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJ
VFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1l
bnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHht
bG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHht
bG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19z
dGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJz
ZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDMz
LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFb
VGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRh
YiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxs
YXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9n
ZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0g
IDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8
L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwg
RGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0
cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8
L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQzNWVlNGQ1ODZjZjAwOTg2YzkwMWVlZDRmMTRjOTQ3M2JjNzNlYmMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzNC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY0YTM1YTAxZWE0ZTNlOGZi
YTljMDkzMjFhMmY4MDQ4ODJlNWJlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLQotLyoKLUNvcHly
aWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0
aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4g
QWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2Fs
LzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAg
KiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJp
IGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0g
ICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNp
bmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IEVudGl0
eVJlZmVyZW5jZSBDaGlsZCB3aXRoIGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5IHRoZSB2
YWx1ZSBvZiB0aGUgbmV3IGNoaWxkLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBE
ZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1D
b3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2Vj
aGlsZDM0KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihi
dWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDM0IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBk
b2M7Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5l
d0NoaWxkOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwot
ICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDov
L3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENo
aWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgbmV3Q2hpbGQgPSBk
b2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxh
Y2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICBub2RlVmFsdWUgPSBwYXJlbnQudmFs
dWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDM0IiwiVGV4dCIsbm9k
ZVZhbHVlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5v
ZGVyZXBsYWNlY2hpbGQzNCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDMwNjliYjAzODBkMTVkY2UzNWFjYTg1MGE1ODM2MmI0ZDFiNmMyYjku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC54aHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlM
RSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFs
cGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdh
bW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBl
cHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRp
ciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQ
SWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIv
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9q
YXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3Jp
cHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFy
Z2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+
NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxs
YXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlu
b2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5j
ZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFT
ZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNv
ZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAg
PGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNv
ZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZh
cj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4
NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5n
LCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cu
YWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25u
b3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwv
ZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNw
ZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3Jv
bnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTFjOTg4ZjY0ZmM5ODMyMzU4NzI4
YzEwMzc1YTcyOTZhMDc3NmUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM1Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS5qcyBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFiYWU4NjdhNWVmMmJiN2RjYTkxZWI3MjdmMmRjNTVjNjA4MTE5YjMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS5qcworKysgL2Rldi9udWxs
CkBAIC0xLDEyNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQg
V2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5v
bG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQg
TWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhp
cyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2Ug
WzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0
cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0y
MDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmll
cyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAq
LwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNSI7
Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7
Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1l
d29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElm
IHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8g
ICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1
cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1l
ZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0
ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdy
dW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3Vt
ZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9
IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwot
ICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAg
IAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0
aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJv
bm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3lu
Y2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdl
IHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUg
dGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAo
Kytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIG5ldyBB
dHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcm5lY2UgQ2hpbGQgd2l0aCBhIAot
CW5ldyBBdHRyIE5vZGUgYW5kIHZlcmlmeSBpZiBhIEhJRVJBUkNIWV9SRVFVRVNUX0VSUiBpcyB0
aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29y
ZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzUoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVw
bGFjZWNoaWxkMzUiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBw
YXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0gICAgICB2
YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIgcmVwbGFj
ZWQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgcGFyZW50ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwv
MTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5h
cHBlbmRDaGlsZChvbGRDaGlsZCk7Ci0gICAgICBuZXdDaGlsZCA9IGRvYy5jcmVhdGVBdHRyaWJ1
dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciKTsK
LSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVw
bGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAgICAg
fQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3Vu
ZGVmaW5lZCcgJiYgZXguY29kZSA9PSAzKTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19ISUVS
QVJDSFlfUkVRVUVTVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM1KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LnhodG1sIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU2NzIxY2Q5NGYxNWUyNmNmZTVhY2Y4
MzU0MjNmZmQ2ZDY5ODhhNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM1LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM1LmpzIi8+PHNj
cmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3Rh
cnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdp
dGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBh
biBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11d
Pjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1t
YTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
bmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25l
czwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAw
LDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1
NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcg
VGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxOTll
MDE2MTE5YmNiOTA0MTI0OTNjNzJmMTBlYWYxODczYzQ3NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwy
ICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LmpzIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVhMjI1YmVlZjJmYTM4ZWVjOTVlMDA4ZTEy
YjY3OTU3NmMwYTRhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKp
IDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIElu
c3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9y
IEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmln
aHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4g
U29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29w
eXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBV
UkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZp
ZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1
cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDM2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZh
ciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
dGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1
aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywg
YXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3Ro
ZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUg
ZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcg
dGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0
VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBj
cmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAv
LwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9j
c0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYg
KHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhp
cy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9j
IiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9
IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQot
Ly8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8g
ICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8v
ICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwK
LS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8g
ICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFj
ZUNoaWxkIG9uIGEgbmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IEVudGl0eVJlZmVybmVj
ZSBub2RlIHdpdGggYSAKLQluZXcgVGV4dCBOb2RlIGFuZCB2ZXJpZnkgaWYgYSBOT1RfRk9VTkRf
RVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNigp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVyZXBsYWNlY2hpbGQzNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsK
LSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Mg
PSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50ID0gZG9jLmNy
ZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4
bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJk
ZWx0YSIpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAg
ICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFj
ZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAgICAgfQot
CQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVm
aW5lZCcgJiYgZXguY29kZSA9PSA4KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfRk9V
TkRfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIG5vZGVyZXBsYWNlY2hpbGQzNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi54aHRtbCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhYTg4MGIwNzJhMzU3ODQwMWZiMWJlZWZkN2EyNGE2YWMx
ODgwYzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNi5qcyIvPjxzY3JpcHQgdHlwZT0n
dGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9
PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJv
bmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0g
IDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZl
LiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRo
YSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJl
ZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4K
LSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29t
Ij4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4K
LSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4K
LSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBp
ZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcg
SXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6
Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55
IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8
c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4
PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzctZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmMxYWE1YmY4ODlkMjU2
NmFhMzUzYjA5YzQ0MWFhNzdhMGJmNmEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1U
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDM3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19XUk9OR19ET0NV
TUVOVF9FUlI6IGFzc2VydFRydWUgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LmpzIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNGZkMDI2NDQxM2RiNzY2YmI0YWZmMjA2MzRhOTg3YzM5MjE3NDQ4OS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3Js
ZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFu
ZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBU
aGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5z
ZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlm
aWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAg
ICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3
IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVs
bDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJh
bWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAg
SWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0v
LyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3Rh
dHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGlt
bWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhl
IHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0g
J3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9j
dW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVy
ID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICAgIAotICAgICAgdmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYzIpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlzLmRvYzI7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jMlJlZiwgImRvYzIiLCAi
aGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMikgewotICAg
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0
Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwot
Ly8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAg
IGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBX
aGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8g
ICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAg
IGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAyKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hp
bGQgb24gYSBuZXcgQXR0ciBub2RlLCByZXBsYWNlIGl0cyBuZXcgVGV4dCBub2RlIHdpdGggYSAK
LQluZXcgRW50aXR5UmVmZXJlbmNlIE5vZGUgY3JlYXRlZCBieSBhbm90aGVyIGRvY3VtZW50IGFu
ZCB2ZXJpZnkgaWYgYSAKLQlXUk9OR19ET0NVTUVOVF9FUlIgaXMgcmFpc2VkLgotCi0qIEBhdXRo
b3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0q
LwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDM3KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDM3IikgIT0g
bnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jMjsKLSAgICAgIHZhciBw
YXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0gICAgICB2
YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFyIGFwcGVuZGVkQ2hp
bGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgCi0gICAgICB2YXIgZG9jMlJlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
MikgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jMlJlZiA9IHRoaXMuZG9jMjsKLSAgICAg
IH0KLSAgICAgIGRvYzIgPSBsb2FkKGRvYzJSZWYsICJkb2MyIiwgImhjX3N0YWZmIik7Ci0gICAg
ICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnL1hNTC8x
OTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVU
ZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MyLmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQo
b2xkQ2hpbGQpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDQpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X1dST05HX0RPQ1VNRU5UX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzcoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM3LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWRkYmQyMzMxOTk3ZTMz
Mzg1ZmFhMGZmMjczMjk0OWJlZmJhZjY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJp
Y3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEg
IiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRh
ICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFs
cGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFG
aWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0g
ICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1z
dGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAg
ICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0g
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElU
WSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVu
dCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1s
bnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+
Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1s
bnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAg
ICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0
YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNl
dD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzcu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29u
dGVudDEwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQ3NjA5MzRmZWM0ZDk0Nzg2YWUxYmY1OGY1ZDQ1YTU5YjFhOTJjNTYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwCi1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDEwLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDEwLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTcxYWU3
NzM4YTBiMjgzYmM5MmM4N2FmZDNhYzUxMzYyOWIzMTU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwIjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNl
QXdhcmUiLCB0cnVlKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5k
RW50aXR5UmVmZXJlbmNlcyIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlUaGUgbWV0aG9kIHNldFRleHRDb250ZW50IGhhcyBu
byBlZmZlY3Qgd2hlbiB0aGUgbm9kZSBpcyBkZWZpbmVkIHRvIGJlIG51bGwuCi0JCi0JVXNpbmcg
c2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRWxlbWVudCBub2RlLCBhdHRlbXB0IHRvIHNldCBpdHMg
Y29udGVudCB0byBFTEVNRU5ULgotCVJldHJlaXZlIHRoZSB0ZXh0Q29udGVudCBhbmQgdmVyaWZ5
IGlmIGl0IGlzIHdhcyBzZXQgdG8gRUxFTUVOVC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9y
IE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxl
dmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24g
bm9kZXNldHRleHRjb250ZW50MTAoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0lu
aXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2Rlc2V0dGV4dGNvbnRlbnQxMCIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgdHh0OwotICAg
ICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAg
ICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVuZGVkQ2hp
bGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0
IiwiZG9tMzplbGVtIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7
Ci0gICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBl
bnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBwaSA9IGRv
Yy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oIlBJVCIsIlBJRGF0YSAiKTsKLSAgICAgIGNk
YXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5h
cHBlbmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENo
aWxkKGVudFJlZik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChwaSk7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjZGF0YSk7Ci0gICAgICBl
bGVtLnRleHRDb250ZW50ID0gIkVMRU1FTlQiOwotCi0gICAgICB0ZXh0Q29udGVudCA9IGVsZW0u
dGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXNldHRleHRjb250ZW50MTAi
LCJFTEVNRU5UIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICBub2Rlc2V0dGV4dGNvbnRlbnQxMCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwLnhodG1s
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEw
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWRlNzYwZjBmMGEyYjc1OGU2
ZjJlZTgwZTMwYzVjOWY0YTU3NDVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4
dGNvbnRlbnQxMC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29udGVudDEw
LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFb
VGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRh
YiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxs
YXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9n
ZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0g
IDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8
L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwg
RGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0
cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8
L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiYmMxNDcwODg2YmYwNGU0YjA5NTI2N2Y2NTM0NWUwNGIzZWEzMzZjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMQotU3RhdHVzCVN1Y2Nl
c3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
c2V0dGV4dGNvbnRlbnQxMS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ0MzFm
NzkyMzFmMDBiMjRjNTQ4MDhhOTY4YzM5MzllNjMxZTJlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXNldHRleHRjb250ZW50MTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBA
QAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRp
dW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJl
c2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlv
IFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmli
dXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0Nv
bnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQot
Ci0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAg
KiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRh
cmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMSI7Ci0gICB9Ci0KLXZhciBk
b2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8v
ICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBj
b25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50
IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlz
IHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAg
ICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0
aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRy
eSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1h
eSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3Vy
ZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRl
ZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAg
ICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxp
emF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBv
biB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0
ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVk
IGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFu
Z2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVj
dXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotLyoqCi0qIAotCi0JCi0JVXNpbmcgc2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRG9jdW1lbnRG
cmFnbWVudCBub2RlIEVsZW1lbnQgY2hpbGQsIGF0dGVtcHQgdG8gc2V0IGl0cyBjb250ZW50IHRv
IAotCURPQ1VNRU5URlJBR01FTlQuICBSZXRyZWl2ZSB0aGUgdGV4dENvbnRlbnQgYW5kIHZlcmlm
eSBpZiBpdCBpcyB3YXMgc2V0IHRvIERPQ1VNRU5URlJBR01FTlQKLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwot
ZnVuY3Rpb24gbm9kZXNldHRleHRjb250ZW50MTEoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBp
ZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2Rlc2V0dGV4dGNvbnRlbnQxMSIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2
YXIgZWxlbTsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFy
IGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFy
IHBpOwotICAgICAgdmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9j
RnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1sOnAiKTsK
LSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQg
PSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVh
dGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBwaSA9IGRvYy5jcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oIlBJVCIsIlBJRGF0YSAiKTsKLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0
ZUNEQVRBU2VjdGlvbigiQ0RhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVu
ZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjb21t
ZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChwaSk7Ci0gICAgICBhcHBlbmRl
ZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjZGF0YSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
ZG9jRnJhZy5hcHBlbmRDaGlsZChlbGVtKTsKLSAgICAgIGVsZW0udGV4dENvbnRlbnQgPSAiRE9D
VU1FTlRGUkFHTUVOVCI7Ci0KLSAgICAgIGVsZW1DaGlsZCA9IGRvY0ZyYWcubGFzdENoaWxkOwot
Ci0gICAgICB0ZXh0Q29udGVudCA9IGVsZW1DaGlsZC50ZXh0Q29udGVudDsKLQotICAgICAgYXNz
ZXJ0RXF1YWxzKCJub2RlZ2V0dGV4dGNvbnRlbnQxMSIsIkRPQ1VNRU5URlJBR01FTlQiLHRleHRD
b250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5v
ZGVzZXR0ZXh0Y29udGVudDExKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEueGh0bWwgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyY2JkMDRhYzkxZmQ5OGY0MDIxMzk3NDMxOTg1ZGRlMWI4
MTNmZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9U
RVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFF
TlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwh
RU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAg
ICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5z
OnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJ
dGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVE
PgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3
dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2Nh
dGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXNldHRleHRjb250ZW50MTEuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRl
bnQxMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhMGZiZjQy
YjJlOTY3NTA4M2YyMTdjMTVmYWQ3ODJkZDdmZGQ0NGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVzZXR0ZXh0Y29udGVudDEyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIg
KzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
My9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyLmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEy
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmMzNmZlNmIxMWVjYmU4MWM1NjM2
ZGFhZWE4MGI0NTliNzBhODdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVzZXR0ZXh0Y29udGVudDEyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0KLQkK
LQlVc2luZyBzZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSwgYXR0
ZW1wdCB0byBzZXQgaXRzIHZhbHVlLgotCVNpbmNlIEVudGl0eVJlZmVyZW5jZSBub2RlcyBhcmUg
UmVhZE9ubHksIGNoZWNrIGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSICAKLQlpcyBy
YWlzZWQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29y
ZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0ZXh0Y29udGVudDEyKCkg
ewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAi
bm9kZXNldHRleHRjb250ZW50MTIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAg
ICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsK
LSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0g
ICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgCi0JewotCQlz
dWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBlbnRSZWYudGV4dENvbnRlbnQg
PSAiTkEiOwotCi0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlw
ZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNz
ZXJ0VHJ1ZSgibm9kZXNldHRleHRjb250ZW50MTIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXNldHRleHRjb250ZW50MTIoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRiZjk2
ODdhMGViNGQ4NzM5NDI3MzM1NWYwNzM0M2QxZjFiYzkzNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXNldHRleHRjb250ZW50MTIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0
dGV4dGNvbnRlbnQxMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9u
bG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhp
cyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50Mjtd
XT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2Rl
PgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0g
IDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNv
ZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlk
PSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9
Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9i
ZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0g
IDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIx
IE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHVzZXJkYXRhMDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjhkN2FmMmZmOTgzZTE3MzFlMDZkYWRiNTNmNDgwMmZkZGUyZjZlYS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgKLVN0YXR1cwllcnJv
cgotTWVzc2FnZQlMaW5lIDExMzogVHlwZUVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDguanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDguanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDliNmY1ODYzYmY0Njc4YWU1MGFlOTVkODg2ZDY2ZTBjOGUzNTRkZDgu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTM0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3Js
ZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFu
ZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBU
aGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5z
ZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlm
aWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAg
ICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgi
OwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxs
OwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFt
ZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJ
ZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8v
ICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0
dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1t
ZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUg
dGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAn
cnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1
bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIg
PSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAg
ICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1l
dGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hy
b25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5
bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFn
ZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhl
IHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYg
KCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZva2Ugc2V0VXNlckRhdGEgb24gYSBDREFU
QVNlY3Rpb24gYW5kIEVudGl0eVJlZmVyZW5jZSBub2RlIHRvIHNldCB0aGVpciAKLQlVc2VyRGF0
YSB0byB0aGlzIERvY3VtZW50IGFuZCBEb2N1bWVudEVsZW1lbnQgbm9kZS4gIFZlcmlmeSBpZiB0
aGUgVXNlckRhdGEgCi0Jb2JqZWN0IHRoYXQgd2FzIHNldCBmb3IgYm90aCBub2RlcyBpcyBkaWZm
ZXJlbnQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29y
ZSNOb2RlMy1zZXRVc2VyRGF0YQotKi8KLWZ1bmN0aW9uIG5vZGVzZXR1c2VyZGF0YTA4KCkgewot
ICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9k
ZXNldHVzZXJkYXRhMDgiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZh
ciBkb2NFbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjRGF0YTsKLSAgICAgIHZh
ciBlbGVtTGlzdDsKLSAgICAgIHZhciBlbGVtTmFtZTsKLSAgICAgIHZhciB1c2VyRGF0YTsKLSAg
ICAgIHZhciByZXR1cm5lZDE7Ci0gICAgICB2YXIgcmV0dXJuZWQyOwotICAgICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgICB2YXIgcmV0VXNlckRhdGE7Ci0gICAgICB2YXIgbnVsbEhhbmRsZXIgPSBudWxs
OwotCi0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAgIGVudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBjRGF0YSA9IGRvYy5jcmVhdGVD
REFUQVNlY3Rpb24oIkNEQVRBU2VjdGlvbiIpOwotICAgICAgaWYgKG51bGwgPT0gbnVsbEhhbmRs
ZXIpIHsKLSAgICAgICAgIGVudFJlZi5zZXRVc2VyRGF0YSgiS2V5MSIsIGRvYywgbnVsbCk7Ci0g
ICAgICB9IGVsc2UgewotICAgICAgICAgIGVudFJlZi5zZXRVc2VyRGF0YSgiS2V5MSIsIGRvYywg
bnVsbEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAgICBpZiAobnVsbCA9PSBudWxsSGFu
ZGxlcikgewotICAgICAgICAgY0RhdGEuc2V0VXNlckRhdGEoIktleTIiLCBkb2NFbGVtLCBudWxs
KTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgY0RhdGEuc2V0VXNlckRhdGEoIktleTIiLCBk
b2NFbGVtLCBudWxsSGFuZGxlci5oYW5kbGUpOwotICAgICAgfQotICAgICAgIHJldHVybmVkMSA9
IGVudFJlZi5nZXRVc2VyRGF0YSgiS2V5MSIpOwotICAgICAgcmV0dXJuZWQyID0gY0RhdGEuZ2V0
VXNlckRhdGEoIktleTIiKTsKLSAgICAgIHN1Y2Nlc3MgPSByZXR1cm5lZDEuaXNFcXVhbE5vZGUo
cmV0dXJuZWQyKTsKLSAgICAgIGFzc2VydEZhbHNlKCJub2Rlc2V0dXNlcmRhdGEwOCIsc3VjY2Vz
cyk7Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR1c2VyZGF0
YTA4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHVzZXJkYXRhMDgueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXNldHVzZXJkYXRhMDgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRmNDY0MDY5NmU2ZjkyNDNhNjA4MWY3OTIyMTc4ZGMxZWI2YWFmY2EuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0g
ICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJ
U1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAg
ICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBM
SUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwh
QVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21t
ZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEt
aW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9k
ZXNldHVzZXJkYXRhMDguanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBv
bmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2Eu
Y29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ry
b25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1Ro
aXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7
XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVm
ZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29k
ZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4K
LSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFu
YWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgot
ICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxj
b2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBp
ZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBS
b2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAy
PSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJv
YmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgot
ICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgy
MSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2Jv
ZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjVhMzgwOWQ3OTAxZmEwNDQ2Yzc3NzdiNGVhYWNi
ZDRmNGVlMTFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hv
bGV0ZXh0MDYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcyBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0ZDE4ZjI3NjEyNDM1MTRhYmExNmZiZjQzMmZjZWM4YWZkMzdj
ZDAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzCisr
KyAvZGV2L251bGwKQEAgLTEsMTMzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEt
MjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0
ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9y
bWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJl
c2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdh
cmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
Ci0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0
LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhh
dCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2Yg
dGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxh
Y2V3aG9sZXRleHQwNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIg
YnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRo
ZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0
ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFz
eW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVy
d2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4
Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRo
ZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVw
UGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3Jl
YXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8K
LSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1w
bGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAgICAgc2V0
SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0cnVlKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0J
VGhlIG1ldGhvZCByZXBsYWNlV2hvbGVUZXh0IHN1YnN0aXR1dGVzIHRoZSBhIHNwZWNpZmllZCB0
ZXh0IGZvciB0aGUgdGV4dCBvZiAKLQl0aGUgY3VycmVudCBub2RlIGFuZCBhbGwgbG9naWNhbGx5
LWFkamFjZW50IHRleHQgbm9kZXMuICBUaGlzIG1ldGhvZCByYWlzZXMKLQlhIE5PX01PRElGSUNB
VElPTl9BTExPV0VEX0VSUiBpZiBvbmUgb2YgdGhlIFRleHQgbm9kZXMgYmVpbmcgcmVwbGFjZWQg
aXMgcmVhZG9ubHkuCi0JCi0JSW52b2tlIHJlcGxhY2VXaG9sZVRleHQgb24gYW4gZXhpc3Rpbmcg
dGV4dCBub2RlIHdpdGggbmV3bHkgY3JlYXRlZCB0ZXh0IGFuZCBFbnRpdHlyZWZlcmVuY2UKLQlu
b2RlcyAod2hvc2UgcmVwbGFjZW1lbnQgdGV4dCBpcyBhIGNoYXJhY3RlciBlbnRpdHkgcmVmZXJl
bmNlKSBhcHBlbmRlZCBhcyBjaGlsZHJlbiBvZiBpdHMgcGFyZW50IGVsZW1lbnQgbm9kZS4gIAot
CVdoZXJlIHRoZSBub2RlcyB0byBiZSByZW1vdmVkIGFyZSByZWFkLW9ubHkgZGVzY2VuZGFudHMg
b2YgYW4gRW50aXR5UmVmZXJlbmNlLCB0aGUgRW50aXR5UmVmZXJlbmNlIAotICAgICAgICBtdXN0
IGJlIHJlbW92ZWQgaW5zdGVhZCBvZiB0aGUgcmVhZC1vbmx5IG5vZGVzLiBPbmx5IGlmIGFueSBF
bnRpdHlSZWZlcmVuY2UgdG8gYmUgcmVtb3ZlZCBoYXMgCi0gICAgICAgIGRlc2NlbmRhbnRzIHRo
YXQgYXJlIG5vdCBFbnRpdHlSZWZlcmVuY2UsIFRleHQsIG9yIENEQVRBU2VjdGlvbiBub2Rlcywg
dGhlIHJlcGxhY2VXaG9sZVRleHQgCi0gICAgICAgIG1ldGhvZCBtdXN0IGZhaWwsIHJhaXNpbmcg
YSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIuIFZlcmlmeSB0aGF0IHRoZSBtZXRob2QgZG9l
cyBub3QgcmFpc2UKLSAgICAgICAgYW4gZXhjZXB0aW9uIGFuZCB2ZXJpZnkgdGhlIGNvbnRlbnQg
b2YgdGhlIHJldHVybmVkIHRleHQgbm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5l
aWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVs
LTMtQ29yZS0yMDA0MDQwNy9jb3JlI1RleHQzLXJlcGxhY2VXaG9sZVRleHQKLSovCi1mdW5jdGlv
biB0ZXh0cmVwbGFjZXdob2xldGV4dDA2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAidGV4dHJlcGxhY2V3aG9sZXRleHQwNiIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGl0ZW1MaXN0OwotICAgICAgdmFy
IGVsZW1lbnRTdHJvbmc7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgZXJlZk5vZGU7
Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAg
ICB2YXIgbm9kZVZhbHVlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIGl0ZW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzdHJv
bmciKTsKLSAgICAgIGVsZW1lbnRTdHJvbmcgPSBpdGVtTGlzdC5pdGVtKDApOwotICAgICAgdGV4
dE5vZGUgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIk5ldyBUZXh0Iik7Ci0gICAgICBlcmVmTm9kZSA9
IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtZW50U3Ryb25nLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtZW50U3Ryb25nLmFwcGVuZENoaWxkKGVyZWZOb2RlKTsKLSAgICAgIHRleHROb2Rl
ID0gZWxlbWVudFN0cm9uZy5maXJzdENoaWxkOwotCi0gICAgICByZXBsYWNlZFRleHQgPSB0ZXh0
Tm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJOZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAgIG5vZGVW
YWx1ZSA9IHRleHROb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJ0ZXh0cmVw
bGFjZXdob2xldGV4dDA2IiwiTmV3IFRleHQgYW5kIENkYXRhIixub2RlVmFsdWUpOwotICAgICAg
IAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgdGV4dHJlcGxhY2V3aG9sZXRl
eHQwNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzk3MGI2MGIxMDkwOGEwYzc5ZmQ1N2M4MTM5YmQ5MThjMzcxZWMyYi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi54aHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlM
RSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFs
cGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdh
bW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBl
cHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRp
ciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQ
SWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIv
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InRleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMiLz48c2NyaXB0IHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwv
c2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25n
Pk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8
c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4g
RGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEg
UmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZl
cmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENE
QVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0g
IDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+
Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0g
IDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0g
IDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9
Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IEly
dmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8v
d3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBP
Y29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1
cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAw
MDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRl
ciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwv
YWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0
MDctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDc1ZWNiZDA4
ZTY4NmY2OWZhZmU0YTYzN2FjOTY1NjIwYTJmNDljLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90
ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIg
KzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQw
Ny5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xl
dGV4dDA3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTY0ZDMyZGQzMTMyOWQ2
N2E5OTFhNzkxNDIxMDBmMDAxZjNlYjA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM5ICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9h
ZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAg
cnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1
cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRp
bmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0
byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJh
aXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNl
dFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0g
ICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJv
dyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWls
ZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJl
IiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotQXBwZW5kIGFuIGVudGl0eSByZWZlcmVuY2UgYW5kIGEgdGV4dCBub2RlIGFmdGVy
IHRvIHRoZSBjb250ZW50IG9mIHRoZQotZmlyc3Qgc3Ryb25nIGVsZW1lbnQuICBUaGVuIGNhbGwg
cmVwbGFjZVdob2xlVGV4dCBvbiBpbml0aWFsIGNvbnRlbnQKLW9mIHRoYXQgZWxlbWVudC4gIFNp
bmNlIHRoZSBlbnRpdHkgcmVmZXJlbmNlIGRvZXMgbm90IGNvbnRhaW4gYW55IAotbG9naWNhbGx5
LWFkamFjZW50IHRleHQgY29udGVudCwgb25seSB0aGUgaW5pdGlhbCB0ZXh0IGVsZW1lbnQgc2hv
dWxkCi1iZSByZXBsYWNlZC4gCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGlt
YQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI1RleHQzLXJlcGxhY2VXaG9sZVRl
eHQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9
NDI1Ci0qLwotZnVuY3Rpb24gdGV4dHJlcGxhY2V3aG9sZXRleHQwNygpIHsKLSAgIHZhciBzdWNj
ZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hv
bGV0ZXh0MDciKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVt
TGlzdDsKLSAgICAgIHZhciBlbGVtZW50TmFtZTsKLSAgICAgIHZhciB0ZXh0Tm9kZTsKLSAgICAg
IHZhciBlcmVmTm9kZTsKLSAgICAgIHZhciByZXBsYWNlZFRleHQ7Ci0gICAgICB2YXIgYXBwZW5k
ZWRDaGlsZDsKLSAgICAgIHZhciBub2RlOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZh
ciBub2RlVHlwZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3Ryb25nIik7
Ci0gICAgICBlbGVtZW50TmFtZSA9IGl0ZW1MaXN0Lml0ZW0oMCk7Ci0gICAgICBlcmVmTm9kZSA9
IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIHRleHROb2RlID0gZG9j
LmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW1l
bnROYW1lLmFwcGVuZENoaWxkKGVyZWZOb2RlKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVt
ZW50TmFtZS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICB0ZXh0Tm9kZSA9IGVsZW1lbnRO
YW1lLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIHJlcGxhY2VkVGV4dCA9IHRleHROb2RlLnJlcGxhY2VX
aG9sZVRleHQoIk5ldyBUZXh0IGFuZCBDZGF0YSIpOwotICAgICAgdGV4dE5vZGUgPSBlbGVtZW50
TmFtZS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnRTYW1lKCJyZXR2YWxfc2FtZSIsdGV4dE5v
ZGUscmVwbGFjZWRUZXh0KTsKLW5vZGVWYWx1ZSA9IHRleHROb2RlLm5vZGVWYWx1ZTsKLQotICAg
ICAgYXNzZXJ0RXF1YWxzKCJub2RlVmFsdWVTYW1lIiwiTmV3IFRleHQgYW5kIENkYXRhIixub2Rl
VmFsdWUpOwotICAgICAgIG5vZGUgPSB0ZXh0Tm9kZS5uZXh0U2libGluZzsKLQotICAgICAgYXNz
ZXJ0Tm90TnVsbCgic2Vjb25kQ2hpbGROb3ROdWxsIixub2RlKTsKLW5vZGVUeXBlID0gbm9kZS5u
b2RlVHlwZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJzZWNvbmRDaGlsZElzRW50UmVmIiw1LG5v
ZGVUeXBlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIHRl
eHRyZXBsYWNld2hvbGV0ZXh0MDcoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1sIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkMjk3N2JhMTg4YWExYjEzODg2NmVkYWIzNTU1
Yjc5N2MyNDE3ODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0
MDcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBb
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+
Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsi
PgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1
MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJ
U1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAg
ICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8
c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9z
cGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEg
I0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA3LmpzIi8+
PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsg
c3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUo
KSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAx
PC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3Vu
dGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0g
IDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9u
IHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBp
cyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFi
O11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZn
YW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBK
b25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+
MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgot
ICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0
b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5
ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0Lmdv
diI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4K
LSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4K
LSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZp
bmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4
dDA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0
cmVwbGFjZXdob2xldGV4dDA4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjQ1MWE0NjZiNjQzMWEyNGQ2YjdhNDkzMmE2ZGNkMzE0NDVlNjQyZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4Ci1TdGF0dXMJZmFp
bHVyZQotTWVzc2FnZQl0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IGFzc2VydFRy
dWUgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
dGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlMDg1NGIzMGYyZmZhNzRkNzNhNzE0YWZmN2RjN2JkMzBhMDU4OWMxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMTI2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRl
IFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5
LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRo
ZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdv
cmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0g
aW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8v
d3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIx
MjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRo
ZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1m
dW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOCI7
Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7
Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1l
d29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElm
IHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8g
ICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1
cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1l
ZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0
ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdy
dW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3Vt
ZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9
IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJiYXJmb28iKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFwcGVuZHMgYW4gZW50aXR5IHJlZmVyZW5jZSBjb250
YWluaW5nIHRleHQgYW5kIGFuIGVsZW1lbnQgdG8gYW4gZXhpc3RpbmcKLXRleHQgbm9kZSwgdGhl
biBjYWxscyBUZXh0LnJlcGxhY2VXaG9sZVRleHQgb24gdGhlIGV4aXN0aW5nIHRleHQgbm9kZS4K
LUEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIHNob3VsZCBiZSB0aHJvd24uCi0KLSogQGF1
dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTQyNQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD01NDAKLSov
Ci1mdW5jdGlvbiB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0g
ICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAidGV4dHJlcGxhY2V3aG9sZXRleHQw
OCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGl0ZW1MaXN0Owot
ICAgICAgdmFyIHA7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIG5vZGU7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJiYXJmb28iKTsKLSAgICAgIGl0ZW1MaXN0ID0g
ZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7Ci0gICAgICBwID0gaXRlbUxpc3QuaXRlbSgw
KTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDIiKTsKLSAg
ICAgIG5vZGUgPSBwLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBub2RlID0gcC5maXJzdENo
aWxkOwotCi0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAg
ICAgIG5vZGUgPSBub2RlLnJlcGxhY2VXaG9sZVRleHQoInlvIik7Ci0gICAgICAgIH0KLQkJY2F0
Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQn
ICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FU
SU9OX0FMTE9XRURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgIHRleHRyZXBsYWNld2hvbGV0ZXh0MDgoKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4Lnho
dG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0
ZXh0MDgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmYWU5OTY5YWY4YzZk
MTAyMzRmYTAwMzYyZDc4NTNlNjk3ZDBkMWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRy
ZXBsYWNld2hvbGV0ZXh0MDgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbCBbCi08IUVOVElUWSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50MiAnZm9v
PGJyLz4nPgotPCFFTEVNRU5UIGh0bWwgKGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0bWwgeG1s
bnMgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+Ci08IUVM
RU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KLTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNyYyBDREFU
QSAjSU1QTElFRAotICAgICB0eXBlIENEQVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQgQ0RBVEEg
I0lNUExJRUQ+Ci08IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJvZHkgKHAp
PgotPCFBVFRMSVNUIGJvZHkgb25sb2FkIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHAgKCNQ
Q0RBVEF8YnIpKj4KLTwhRUxFTUVOVCBiciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCc+Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hvbGVUZXh0
IHNhbXBsZTwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdzZWxm
eGh0bWwuanMnPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3RleHQvamF2
YXNjcmlwdCcgc3JjPSd0ZXh0cmVwbGFjZXdob2xldGV4dDA4LmpzJz48L3NjcmlwdD48c2NyaXB0
IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRl
c3QoKTsgfTwvc2NyaXB0PjwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgot
PHA+YmFyPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlvbnMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYWMzZDljYmRmNzAw
ZTY5NmI2YTA3NDg1MGM2MjZjNDM4NjM2Nzk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9y
ZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICsw
LDAgQEAKLVRlc3QgdG8gbWFrZSBzdXJlIEVudGl0eVJlZmVyZW5jZSBub2RlcyBhcmUgYWx3YXlz
IHRyZWF0ZWQgcmVhZG9ubHkKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mg
eG1sRG9jMi5hZG9wdE5vZGUoZW50aXR5UmVmZXJlbmNlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1QQVNTIGVudGl0
eVJlZmVyZW5jZS5vd25lckRvY3VtZW50IGlzIHhtbERvYwotUEFTUyBlbnRpdHlSZWZlcmVuY2Uu
bm9kZVZhbHVlID0gJ2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZVZh
bHVlIGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLnByZWZpeCA9ICdmb28nIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogTmFtZXNwYWNlRXJyb3I6IERPTSBFeGNlcHRpb24gMTQuCi1QQVNTIGVu
dGl0eVJlZmVyZW5jZS5wcmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2UudGV4dENv
bnRlbnQgPSAnZm9vJyB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1GQUlMIGVudGl0eVJlZmVyZW5jZS50ZXh0Q29udGVu
dCBzaG91bGQgYmUgPi4gV2FzIC4KLUZBSUwgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQgc2hv
dWxkIGJlIDEuIFdhcyAwLgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuYXBwZW5kQ2hpbGQodGV4dCkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGggaXMgY2hp
bGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQKLUZBSUwgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQg
c2hvdWxkIGJlIDEuIFdhcyAwLgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuaW5zZXJ0QmVmb3JlKHRl
eHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENoaWxkKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1QQVNTIGVudGl0eVJl
ZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCBpcyBjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZAot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNl
cHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9u
bHktZXhjZXB0aW9ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmIxNjQx
YmVkNDQ3MzA3MGZiYzJlOWYzNDljMTljYjgxZDNlOGYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVy
ZW5jZS9yZWFkb25seS1leGNlcHRpb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCww
IEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
cmVhZG9ubHktZXhjZXB0aW9ucy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRl
c3RzL1RFTVBMQVRFLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uv
c2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRiZWVkOTNhNWUwNmQ4ODQxMjhkZjNiMzRkYjU0MmQ4NTA3MWUzNWQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50
aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iWU9V
Ul9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9yZWFk
b25seS1leGNlcHRpb25zLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNl
L3NjcmlwdC10ZXN0cy9yZWFkb25seS1leGNlcHRpb25zLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhZjI0NjU3ZDgyZGIzZThhN2ZiYmU0ODc3ZDNkM2Q2M2IxMDlkNDc3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLWRlc2NyaXB0aW9uKCJUZXN0IHRvIG1h
a2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIGFsd2F5cyB0cmVhdGVkIHJlYWRvbmx5
IikKLQotdmFyIHhtbERvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50
KCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZhciB4bWxE
b2MyID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoImh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiLCAiaHRtbCIsIG51bGwpOwotdmFyIGVudGl0eVJlZmVyZW5jZSA9
IHhtbERvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci0KLXNob3VsZFRocm93KCJ4bWxE
b2MyLmFkb3B0Tm9kZShlbnRpdHlSZWZlcmVuY2UpIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJl
bmNlLm93bmVyRG9jdW1lbnQiLCAieG1sRG9jIikKLQotLy8gbm9kZVZhbHVlIGlzIGRlZmluZWQg
dG8gYmUgbnVsbCBmb3IgRW50aXR5IFJlZmVyZW5jZSBub2RlcywgYW5kIHRodXMgc2hvdWxkIHNp
bGVudGx5IGZhaWwgdG8gbW9kaWZ5Ci0vLyBTcGVjIGlzIGFtYmlnaW91cyBhcyB0byBpZiB3ZSBz
aG91bGQgdGhyb3cgaGVyZSBvciBub3QuICBJJ3ZlIHJlcXVlc3RlZCBjbGFyaWZpY2F0aW9uOgot
Ly8gaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8yMDA4SmFuTWFy
LzAwMDkuaHRtbAotc2hvdWxkVGhyb3coImVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUgPSAnZm9v
JyIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUiLCAibnVsbCIpOwotCi1z
aG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLnByZWZpeCA9ICdmb28nIik7Ci1zaG91bGRCZSgi
ZW50aXR5UmVmZXJlbmNlLnByZWZpeCIsICJudWxsIik7Ci0KLXNob3VsZFRocm93KCJlbnRpdHlS
ZWZlcmVuY2UudGV4dENvbnRlbnQgPSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5j
ZS50ZXh0Q29udGVudCIsICInPiciKTsKLQotdmFyIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5k
ID0gZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hvdWxkQmUoImNoaWxkcmVu
QmVmb3JlRmFpbGVkQXBwZW5kIiwgIjEiKTsKLXZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIkZBSUwiKTsKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2UuYXBwZW5kQ2hpbGQo
dGV4dCkiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGgiLCAi
Y2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQiKTsKLQotY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBl
bmQgPSBlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGg7Ci1zaG91bGRCZSgiY2hpbGRy
ZW5CZWZvcmVGYWlsZWRBcHBlbmQiLCAiMSIpOwotc2hvdWxkVGhyb3coImVudGl0eVJlZmVyZW5j
ZS5pbnNlcnRCZWZvcmUodGV4dCwgZW50aXR5UmVmZXJlbmNlLmZpcnN0Q2hpbGQpIik7Ci1zaG91
bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIiwgImNoaWxkcmVuQmVmb3Jl
RmFpbGVkQXBwZW5kIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2lu
aXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvaW5p
dGlhbC12YWx1ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDI2ZjBlYzJhM2RlYmZlN2E3ZWRlYjA4ZTJk
MTAxYTc0MTVkY2RmYjUuLjFjOTgxZmIzYjVkODkyN2Q1YTg0MzM4ZjM3MTI0NTNhNjBjZTgxZjEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvaW5pdGlhbC12YWx1ZXMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvaW5pdGlhbC12YWx1ZXMt
ZXhwZWN0ZWQudHh0CkBAIC0xMTMsMTIgKzExMyw2IEBAIFBBU1MgZWxlbWVudC5uYW1lc3BhY2VV
UkkgaXMgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCiBQQVNTIGVsZW1lbnQucHJlZml4
IGlzICdodG1sJwogUEFTUyBlbGVtZW50Lm5vZGVWYWx1ZSBpcyBudWxsCiBQQVNTIGVsZW1lbnQu
YXR0cmlidXRlcy50b1N0cmluZygpIGlzICdbb2JqZWN0IE5hbWVkTm9kZU1hcF0nCi1QQVNTIGRv
Y3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgnZ3QnKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCi1QQVNTIGVudGl0eVJlZmVyZW5j
ZS5ub2RlTmFtZSBpcyAnZ3QnCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5sb2NhbE5hbWUgaXMgbnVs
bAotUEFTUyBlbnRpdHlSZWZlcmVuY2UubmFtZXNwYWNlVVJJIGlzIG51bGwKLVBBU1MgZW50aXR5
UmVmZXJlbmNlLnByZWZpeCBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUg
aXMgbnVsbAogUEFTUyBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubm9kZU5hbWUgaXMgJ3htbC1zdHls
ZXNoZWV0JwogUEFTUyBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubG9jYWxOYW1lIGlzIG51bGwKIFBB
U1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5hbWVzcGFjZVVSSSBpcyBudWxsCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwtdmFsdWVz
LmpzCmluZGV4IDczMWE4MDYzOTA4Njk4YjQ2OTViMjhjMzZiNzczYTdkZDFhMzAzNTQuLjliMTJh
OTc5MDFjMDM5NDMyMzMyZDMzZGZjYWRjOTgyN2ZiNmFhZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwtdmFsdWVzLmpzCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwtdmFsdWVzLmpzCkBA
IC0xNTYsMTYgKzE1Niw2IEBAIHNob3VsZEJlKCJlbGVtZW50LnByZWZpeCIsICInaHRtbCciKTsK
IHNob3VsZEJlKCJlbGVtZW50Lm5vZGVWYWx1ZSIsICJudWxsIik7CiBzaG91bGRCZSgiZWxlbWVu
dC5hdHRyaWJ1dGVzLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgTmFtZWROb2RlTWFwXSciKTsKIAot
Ly8gTm90IHBvc3NpYmxlIHRvIGNyZWF0ZSBFbnRpdHkgbm9kZXMgdmlhIHRoZSBET00sIFdlYktp
dCBkb2Vzbid0IGNyZWF0ZSB0aGVtIGZyb20gcGFyc2luZwotCi1zaG91bGRUaHJvdygiZG9jdW1l
bnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCdndCcpIik7Ci12YXIgZW50aXR5UmVmZXJlbmNlID0g
eG1sRG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZ3QiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZl
cmVuY2Uubm9kZU5hbWUiLCAiJ2d0JyIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5sb2Nh
bE5hbWUiLCAibnVsbCIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5uYW1lc3BhY2VVUkki
LCAibnVsbCIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5wcmVmaXgiLCAibnVsbCIpOwot
c2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUiLCAibnVsbCIpOwotCiAvLyBOb3Qg
cG9zc2libGUgdG8gY3JlYXRlIE5vdGF0aW9uIG5vZGVzIHZpYSB0aGUgRE9NLCBXZWJLaXQgZG9l
c24ndCBjcmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKIAogdmFyIHByb2Nlc3NpbmdJbnN0cnVjdGlv
biA9IGRvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigneG1sLXN0eWxlc2hlZXQn
LCAndHlwZT1cInRleHQveHNsXCIgaHJlZj1cIm1pc3NpbmcueHNsXCInKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy1leHBl
Y3RlZC50eHQKaW5kZXggNzcxM2ZjOWNmNDg3ZjY5Nzk4MTg3NDIyZTEyNzFhYTg2MmJlNjI1Ny4u
NzQ3Y2Q3ZTYyNTljZGRjYTBiZTI1Y2VlNGI1Y2MyYTAxZjcwY2YyMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy1leHBl
Y3RlZC50eHQKQEAgLTMzLDggKzMzLDYgQEAgUEFTUzogY2FuR2V0KCdEb2N1bWVudFR5cGUnKSBz
aG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhblNldCgnRG9jdW1lbnRUeXBlJykgc2hv
dWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ0VsZW1lbnQnKSBzaG91bGQgYmUg
J3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhblNldCgnRWxlbWVudCcpIHNob3VsZCBiZSAndHJ1ZScg
YW5kIGlzLgotUEFTUzogY2FuR2V0KCdFbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQgYmUgJ3RydWUn
IGFuZCBpcy4KLVBBU1M6IGNhblNldCgnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICd0cnVl
JyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ0V2YWxFcnJvcicpIHNob3VsZCBiZSAndHJ1ZScgYW5k
IGlzLgogUEFTUzogY2FuU2V0KCdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4K
IFBBU1M6IGNhbkdldCgnRXZlbnQnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbAppbmRl
eCBmZmY1YzRhZDA4MTRhYjljMWNjMDQ2YWZlYmIxOGM5ZDc4YmM2NzQwLi40NDMxNmFjNzhmMTM4
NzgwNDkwZTRlNTYxMmFiMmFkOGZiN2UwOWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCkBAIC04NCw3ICs4NCw2IEBAIHZh
ciB3aW5kb3dSZWFkV3JpdGVQcm9wZXJ0aWVzID0gWwogICAgICJEb2N1bWVudEZyYWdtZW50Iiwg
CiAgICAgIkRvY3VtZW50VHlwZSIsIAogICAgICJFbGVtZW50IiwgCi0gICAgIkVudGl0eVJlZmVy
ZW5jZSIsIAogICAgICJFdmFsRXJyb3IiLCAKICAgICAiRXZlbnQiLCAKICAgICAiSFRNTEFuY2hv
ckVsZW1lbnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNv
dXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
cmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzCmluZGV4IGY5YzcwOTI5MjkyOThjNzZmNzlj
ZTVmNmE2YWU1MmZjOWNlYzBkZjUuLjlkNDMwZWNlYjJlYWM3YTU3MThiMzdmZDYzZGU3Y2UyNGFi
YTFiM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMv
d2luZG93LXByb3BlcnRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jl
c291cmNlcy93aW5kb3ctcHJvcGVydGllcy5qcwpAQCAtNTYsNyArNTYsNiBAQCB2YXIgcHJvcGVy
dHlJbmZvID0gWwogICAgIFsiRG9jdW1lbnRGcmFnbWVudCIsICJvYmplY3QiXSwKICAgICBbIkRv
Y3VtZW50VHlwZSIsICJvYmplY3QiXSwKICAgICBbIkVsZW1lbnQiLCAib2JqZWN0Il0sCi0gICAg
WyJFbnRpdHlSZWZlcmVuY2UiLCAib2JqZWN0Il0sCiAgICAgWyJFdmVudCIsICJvYmplY3QiXSwK
ICAgICBbIkV2ZW50RXhjZXB0aW9uIiwgIm9iamVjdCJdLAogICAgIFsiSFRNTEFuY2hvckVsZW1l
bnQiLCAib2JqZWN0Il0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CmluZGV4IDY3
ZDMwMmNlZWQ1MjA1NjNkZmUxZGJmN2Y3OTAwZDIwZmQ4NDg4YjAuLjExMjIxNGE3N2JmNTNmMGMx
MmZmM2FiYTNlNzA3ZWYxMzA3ZTZhYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0CkBAIC0xMTQsOCArMTE0LDYgQEAgUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2Jq
ZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0RvY3VtZW50
VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFT
UyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVl
CiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZl
cmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9
PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2lu
WydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdp
blsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3
aW5bJ0V2ZW50RXhjZXB0aW9uJ10gPT0gJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rv
cl0nIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dAppbmRleCAzMDJh
MDliODZhNWJmMmU3OTlkMjRjOGU2OWUxMzA3ZTFhNGQyNmQxLi5hYmY2N2FkMmU5YWY2MThjYWY4
NTc3NzBiYTA5MTE0NGExNzI0NGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQu
dHh0CkBAIC05Niw4ICs5Niw2IEBAIFBBU1M6IENvbW1lbnQgc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
CiBQQVNTOiBDREFUQVNlY3Rpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBEb2N1bWVu
dFR5cGUgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBOb3RhdGlvbiBzdWNjZXNzZnVsbHkg
c2hhZG93ZWQKLVBBU1M6IEVudGl0eSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKLVBBU1M6IEVudGl0
eVJlZmVyZW5jZSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IEhUTUxEb2N1bWVudCBzdWNjZXNzZnVs
bHkgc2hhZG93ZWQKIFBBU1M6IEhUTUxFbGVtZW50IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFk
b3dpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHkt
c2hhZG93aW5nLmh0bWwKaW5kZXggOWI0NmVhY2UwMTM3MGM1NTI2MmQwZWY2NGQ2ODFhZTU2ZWFi
YzAyYy4uY2I3NGZiMDRhMDcyNTJmMTBiNWRjNjNmOWM2MDRiMTUxOTBjNWQ5YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNo
YWRvd2luZy5odG1sCkBAIC0yMTUsMTAgKzIxNSw2IEBACiAgICAgICAgIGxvZyhEb2N1bWVudFR5
cGUgPT0gMSA/ICJQQVNTOiBEb2N1bWVudFR5cGUgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJG
QUlMOiBEb2N1bWVudFR5cGUgd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAgICB2YXIgTm90YXRp
b24gPSAxOwogICAgICAgICBsb2coTm90YXRpb24gPT0gMSA/ICJQQVNTOiBOb3RhdGlvbiBzdWNj
ZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IE5vdGF0aW9uIHdhcyBub3Qgc2hhZG93ZWQiKTsK
LSAgICAgICAgdmFyIEVudGl0eSA9IDE7Ci0gICAgICAgIGxvZyhFbnRpdHkgPT0gMSA/ICJQQVNT
OiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBFbnRpdHkgd2FzIG5vdCBz
aGFkb3dlZCIpOwotICAgICAgICB2YXIgRW50aXR5UmVmZXJlbmNlID0gMTsKLSAgICAgICAgbG9n
KEVudGl0eVJlZmVyZW5jZSA9PSAxID8gIlBBU1M6IEVudGl0eVJlZmVyZW5jZSBzdWNjZXNzZnVs
bHkgc2hhZG93ZWQiIDogIkZBSUw6IEVudGl0eVJlZmVyZW5jZSB3YXMgbm90IHNoYWRvd2VkIik7
CiAgICAgICAgIHZhciBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSAxOwogICAgICAgICBsb2coUHJv
Y2Vzc2luZ0luc3RydWN0aW9uID09IDEgPyAiUEFTUzogUHJvY2Vzc2luZ0luc3RydWN0aW9uIHN1
Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogUHJvY2Vzc2luZ0luc3RydWN0aW9uIHdhcyBu
b3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIEhUTUxEb2N1bWVudCA9IDE7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDRh
MThhZGY3YmFmNjY5Yzc2MWQ1MTk3YjEzNGRhMGJmZWU4NzJlODYuLjM3YzM1NDE5MzhmMTEwN2Q2
NmNjOTMxNTBjMWIxNDM2NWY1ZWE5MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNiBAQCBQQVNTIFRyeUFs
bG9jYXRlKCdDaGFyYWN0ZXJEYXRhJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUo
J0NEQVRBU2VjdGlvbicpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdEb2N1bWVu
dFR5cGUnKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRWxlbWVudCcpIGlzICdl
eGNlcHRpb24nCi1QQVNTIFRyeUFsbG9jYXRlKCdFbnRpdHlSZWZlcmVuY2UnKSBpcyAnZXhjZXB0
aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRXZlbnRUYXJnZXQnKSBpcyAnZXhjZXB0aW9uJwogUEFT
UyBUcnlBbGxvY2F0ZSgnSFRNTERvY3VtZW50JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxs
b2NhdGUoJ05vZGUnKSBpcyAnZXhjZXB0aW9uJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNv
bnN0cnVjdG9ycy5odG1sCmluZGV4IGYyNDk5ZGMwNDY1Mzc3Mzc2ZmE4ODZiMmNiYjNiZDBhOWQ4
NmU0MjEuLjc5NTNiNjFhMjVkMjEwNzM3YmJjZjZhNDA4MTZlMWFmYzUwY2RiZTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwKQEAgLTE4LDcgKzE4LDYgQEAg
dmFyIG9iamVjdHNfZXhjZXB0aW9uID0gWwogICAgICdDREFUQVNlY3Rpb24nLAogICAgICdEb2N1
bWVudFR5cGUnLAogICAgICdFbGVtZW50JywKLSAgICAnRW50aXR5UmVmZXJlbmNlJywKICAgICAn
RXZlbnRUYXJnZXQnLAogICAgICdIVE1MRG9jdW1lbnQnLAogICAgICdOb2RlJywKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0CmluZGV4IDc4
OGNhYmU1ZDAzYjUxZmZiYzQwZmYzNjNjYWQ2Y2EwNmFiODVkNDkuLjY5MmJhNzA1ZmVkODNiMjk1
YTI3MDhkNWU3MzYwNmIwZTZhMDFhMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
d3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dApAQCAtNDcsOSArNDcsNiBAQCBQQVNTIGpzV3Jh
cHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpLmNvbnN0cnVjdG9yKSBp
cyAnQ0RBVEFTZWN0aQogUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbGVt
ZW50TlMoJ3gnLCAneCcsICd4JykpIGlzICdFbGVtZW50JwogUEFTUyBqc1dyYXBwZXJDbGFzcyh4
bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykuX19wcm90b19fKSBpcyAn
RWxlbWVudFByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRl
RWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLmNvbnN0cnVjdG9yKSBpcyAnRWxlbWVudENvbnN0cnVj
dG9yJwotUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZlcmVu
Y2UoKSkgaXMgJ0VudGl0eVJlZmVyZW5jZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1l
bnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkuX19wcm90b19fKSBpcyAnRW50aXR5UmVmZXJlbmNl
UHJvdG90eXBlJwotUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlS
ZWZlcmVuY2UoKS5jb25zdHJ1Y3RvcikgaXMgJ0VudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yJwog
UEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24oKSkgaXMgJ1Byb2Nlc3NpbmdJbnN0cnVjdGlvbicKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1s
RG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuX19wcm90b19fKSBpcyAnUHJv
Y2Vzc2luZ0luc3RydWN0aW9uUHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1
bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKS5jb25zdHJ1Y3RvcikgaXMgJ1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbkNvbnN0cnVjdG9yJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVy
LWNsYXNzZXMuaHRtbAppbmRleCA4YmU4ZmUzYmYwYzIzYzAzNGEwNzc4MjM1NTBkNjczZGZlMTBl
ZGM3Li5mZjgxZDhmOTA1MDQ0MGRjMWUzMWQzMDgzMzU1YzY2MzEyOWM5NjMyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMuaHRtbApAQCAtOTAsNyArOTAsNiBAQCBmdW5j
dGlvbiBydW5UZXN0KCkKICAgICB0ZXN0KCJ4bWxEb2N1bWVudCIsICJEb2N1bWVudCIpOwogICAg
IHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpIiwgIkNEQVRBU2VjdGlvbiIp
OwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKSIs
ICJFbGVtZW50Iik7Ci0gICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCkiLCAiRW50aXR5UmVmZXJlbmNlIik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlUHJv
Y2Vzc2luZ0luc3RydWN0aW9uKCkiLCAiUHJvY2Vzc2luZ0luc3RydWN0aW9uIik7CiAKICAgICBk
ZWJ1ZygnJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAppbmRleCA2M2Uy
NDJhMmZiZTMyYjlkNmI4M2Q1OGNlYWQ1NjQ5YjQ5Njc0MWJiLi5kNTkzYTVlYWJhOGE4ZTA4ZTAx
YzA5YzIyNDMxOGRlOTA4NjBjZDhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3Rl
ZC50eHQKQEAgLTE4Nyw3ICsxODcsNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2Nr
ZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcgogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Np
bmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xz
LCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIFRoaXMgdGVzdCBjaGVja3MgY3Jvc3Mt
ZnJhbWUgYWNjZXNzIHNlY3VyaXR5IChyZGFyOi8vcHJvYmxlbS81MjUxMzA5KS4KIAogCkBAIC0y
MzUsNyArMjM0LDYgQEAgUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRG9jdW1lbnRGcmFnbWVu
dCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93
LkRvY3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgn
dGFyZ2V0V2luZG93LkVsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBj
YW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHknKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCi1Q
QVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQgYmUgJ2Zh
bHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FdmFsRXJyb3InKSBzaG91
bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FdmVudCcp
IHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkhU
TUxBbmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1n
ZXQuaHRtbAppbmRleCAzODAwYTBiNWU4MTI0Yjk0NWQ4MTAzOTBjM2U5YjVmOTBlNTc4MzhkLi5j
Y2U1ZjdhM2YyMzQxY2FiN2ZmMDljYmU3NWIzYjJlNjlkZWE2Y2Y5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1n
ZXQuaHRtbApAQCAtMjAsNyArMjAsNiBAQAogICAgICAgICAgICAgIkRvY3VtZW50VHlwZSIsIAog
ICAgICAgICAgICAgIkVsZW1lbnQiLCAKICAgICAgICAgICAgICJFbnRpdHkiLCAKLSAgICAgICAg
ICAgICJFbnRpdHlSZWZlcmVuY2UiLCAKICAgICAgICAgICAgICJFdmFsRXJyb3IiLCAKICAgICAg
ICAgICAgICJFdmVudCIsIAogICAgICAgICAgICAgIkhUTUxBbmNob3JFbGVtZW50IiwgCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yLWV4cGVjdGVkLnR4dAppbmRleCBlNDU4NWFiZDUxNjA1YzFlMmQ5ZThiOWYyY2Q4OGFiY2Q1
Y2FkMmUwLi4xZWE1YmRjNmQ5NDk3NDZlMWU5YzI1MzU2NjQ2NWM0MGIzOWI4NWM5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3Jp
cHRvci1leHBlY3RlZC50eHQKQEAgLTc4LDcgKzc4LDYgQEAgUEFTUzogY2FuR2V0RGVzY3JpcHRv
cih0YXJnZXRXaW5kb3csICdEb2N1bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBB
U1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRG9jdW1lbnRGcmFnbWVudCcpIHNo
b3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2lu
ZG93LCAnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2Fu
R2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScg
YW5kIGlzLgotUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbnRpdHlSZWZl
cmVuY2UnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9y
KHRhcmdldFdpbmRvdywgJ0V2YWxFcnJvcicpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBB
U1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRXZlbnQnKSBzaG91bGQgYmUgJ2Zh
bHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0hUTUxB
bmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbAppbmRleCBkZWEw
MTdkNjc4YTE1ZmRkMTNjNzdhOTJhZTUxNWM3MDhlN2JkM2FjLi4zMDY2YjNhMmFmY2I1ZDVkMjM5
MWZjZjQ5OWQxZTM0OTQ2NTE1NDEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbApAQCAtMTksNyArMTksNiBAQAogICAgICAg
ICAgICAgIkRvY3VtZW50RnJhZ21lbnQiLCAKICAgICAgICAgICAgICJEb2N1bWVudFR5cGUiLCAK
ICAgICAgICAgICAgICJFbGVtZW50IiwgCi0gICAgICAgICAgICAiRW50aXR5UmVmZXJlbmNlIiwg
CiAgICAgICAgICAgICAiRXZhbEVycm9yIiwgCiAgICAgICAgICAgICAiRXZlbnQiLCAKICAgICAg
ICAgICAgICJIVE1MQW5jaG9yRWxlbWVudCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBl
Y3RlZC50eHQKaW5kZXggNDdmZDU0MzlkMzdkNzZkMTA2NTQ5YTcxOWJiNWFjOTIyOTIzY2JlYy4u
ODViMGFiYTFiMTViNDZlYWViYTA2MGZiZDU1ZTI5MjlmNDEyNTJkNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1l
LWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE1NDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTUyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQXR0ciBzaG91bGQgYmUgJ1tvYmplY3QgQXR0ckNv
bnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5DREFUQVNlY3Rpb24gc2hv
dWxkIGJlICdbb2JqZWN0IENEQVRBU2VjdGlvbkNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6
IFBBU1M6IHdpbmRvdy5DaGFyYWN0ZXJEYXRhIHNob3VsZCBiZSAnW29iamVjdCBDaGFyYWN0ZXJE
YXRhQ29uc3RydWN0b3JdJyBhbmQgaXMuCkBAIC0xNCw4ICsxNCw2IEBAIEFMRVJUOiBQQVNTOiB3
aW5kb3cuRE9NRXhjZXB0aW9uIHNob3VsZCBiZSAnW29iamVjdCBET01FeGNlcHRpb25Db25zdHJ1
Y3Rvcl0nIGFuCiBBTEVSVDogUEFTUzogd2luZG93LkRPTUltcGxlbWVudGF0aW9uIHNob3VsZCBi
ZSAnW29iamVjdCBET01JbXBsZW1lbnRhdGlvbkNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6
IFBBU1M6IHdpbmRvdy5ET01QYXJzZXIgc2hvdWxkIGJlICdbb2JqZWN0IERPTVBhcnNlckNvbnN0
cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FbGVtZW50IHNob3VsZCBiZSAn
W29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBhbmQgaXMuCi1BTEVSVDogUEFTUzogd2luZG93
LkVudGl0eSBzaG91bGQgYmUgJ3VuZGVmaW5lZCcgYW5kIGlzLgotQUxFUlQ6IFBBU1M6IHdpbmRv
dy5FbnRpdHlSZWZlcmVuY2Ugc2hvdWxkIGJlICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0
cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FdmFsRXJyb3Igc2hvdWxkIGJl
ICdmdW5jdGlvbiBFdmFsRXJyb3IoKSB7ICAgIFtuYXRpdmUgY29kZV19JyBhbmQgaXMuCiBBTEVS
VDogUEFTUzogd2luZG93LkV2ZW50IHNob3VsZCBiZSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9y
XScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCBzaG91bGQg
YmUgJ1tvYmplY3QgSFRNTEFuY2hvckVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KQEAgLTI3
NCwxNSArMjcyLDE1IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMjA6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTIxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNP
TEUgTUVTU0FHRTogbGluZSAxMjI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyMzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI0OiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzM6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90
b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDEzNTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTMyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0
cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzNjogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlu
cywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM3OiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9j
b2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMzg6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEzOTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQwOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNDE6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0MjogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNz
aW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29s
cywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTQzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIg
ZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
Ii4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVT
U0FHRTogbGluZSAxNDQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgog
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE0NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ2OiBCbG9ja2VkIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4KQEAgLTMyMSw3ICszMTksNyBAQCBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTc4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3OTogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTgwOiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODE6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE4MjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTg0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NjogQmxvY2tlZCBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9t
YWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg3OiBC
bG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBh
Y2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJv
dG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KQEAgLTMzNyw3ICszMzUsNyBA
QCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk2OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5NzogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTk4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxOTk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjAyOiBCbG9ja2VkIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5z
LCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMDM6IEJsb2Nr
ZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vz
c2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2Nv
bHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDIwNDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
IGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMjA1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4K
QEAgLTM3MCw3ICszNjgsNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjMxOiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDIzMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMjMzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMzQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzNTogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3QgY2hlY2tzIGNyb3NzLWZy
YW1lIGFjY2VzcyBzZWN1cml0eSBvZiB3aW5kb3cgYXR0cmlidXRlIHNldHRlcnMgKHJkYXI6Ly9w
cm9ibGVtLzUzMjY3OTEpLgogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKaW5kZXggYWMwMjRmODU1
YWE4NjZlNjcxN2I5N2ZmYjFiNzQ5NTZiM2M1ZDczYy4uYTJiNmI4NzBhMThjNzM5MjU0OGMxZWE5
ZDg1OTIyNzgyOWNiNmUwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKQEAgLTUwLDcgKzUwLDYg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5k
b3csICJET01JbXBsZW1lbnRhdGlvbiIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdl
dFdpbmRvdywgIkRPTVBhcnNlciIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdp
bmRvdywgIkVsZW1lbnQiKTsKLSAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3cs
ICJFbnRpdHlSZWZlcmVuY2UiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5k
b3csICJFdmFsRXJyb3IiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3cs
ICJFdmVudCIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgIkhUTUxB
bmNob3JFbGVtZW50Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUt
Zm9yLXB1dC10ZXN0Lmh0bWwKaW5kZXggMzZmODI2YmQ5MDVmMDU3NzgwYjhiNjM4Njk2Zjc5Mzdl
NWM0Yzg4Zi4uYjY3ZGZjMzlmYjAyM2IwYzk3N2VlYzgzYzk2NjYxYjhjMTk4ZTBkNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJh
bWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRtbApA
QCAtNTgsOCArNTgsNiBAQAogICAgICAgICB2YXIgRE9NSW1wbGVtZW50YXRpb25PbGQgPSB3aW5k
b3cuRE9NSW1wbGVtZW50YXRpb247CiAgICAgICAgIHZhciBET01QYXJzZXJPbGQgPSB3aW5kb3cu
RE9NUGFyc2VyOwogICAgICAgICB2YXIgRWxlbWVudE9sZCA9IHdpbmRvdy5FbGVtZW50OwotICAg
ICAgICB2YXIgRW50aXR5T2xkID0gd2luZG93LkVudGl0eTsKLSAgICAgICAgdmFyIEVudGl0eVJl
ZmVyZW5jZU9sZCA9IHdpbmRvdy5FbnRpdHlSZWZlcmVuY2U7CiAgICAgICAgIHZhciBFdmFsRXJy
b3JPbGQgPSB3aW5kb3cuRXZhbEVycm9yOwogICAgICAgICB2YXIgRXZlbnRPbGQgPSB3aW5kb3cu
RXZlbnQ7CiAgICAgICAgIHZhciBIVE1MQW5jaG9yRWxlbWVudE9sZCA9IHdpbmRvdy5IVE1MQW5j
aG9yRWxlbWVudDsKQEAgLTI2MSw4ICsyNTksNiBAQAogICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5ET01JbXBsZW1lbnRhdGlvbiIsICJET01JbXBsZW1lbnRhdGlvbk9sZCIpOwogICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5ET01QYXJzZXIiLCAiRE9NUGFyc2VyT2xkIik7CiAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LkVsZW1lbnQiLCAiRWxlbWVudE9sZCIpOwotICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbnRpdHkiLCAiRW50aXR5T2xkIik7Ci0gICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LkVudGl0eVJlZmVyZW5jZSIsICJFbnRpdHlSZWZlcmVuY2VPbGQi
KTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZhbEVycm9yIiwgIkV2YWxFcnJvck9s
ZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FdmVudCIsICJFdmVudE9sZCIpOwog
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCIsICJIVE1MQW5j
aG9yRWxlbWVudE9sZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4cGVjdGVk
LnR4dAppbmRleCA5YmVhMmEzZDY2NjZkMGQ5MzZjMTBjZmIxMTY5MWExOTZiNGFkYjgzLi45YmFj
ODc2YjQwOWE0NzhkZGVmZWJiMDk1ZjY2NDBkNDQyZGMwM2I0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dApAQCAtOSw3ICs5LDcgQEAgUEFTUyBIaXN0b3Jp
Y2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTUxvY2F0b3IKIFBBU1MgSGlzdG9y
aWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01PYmplY3QgCiBQQVNTIEhpc3Rv
cmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NVXNlckRhdGEgCiBQQVNTIEhp
c3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRW50aXR5IAotRkFJTCBIaXN0
b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eVJlZmVyZW5jZSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdIgorUEFTUyBIaXN0
b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eVJlZmVyZW5jZSAKIEZB
SUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFdmVudEV4Y2VwdGlv
biBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0iCiBQQVNT
IEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogTmFtZUxpc3QgCiBQQVNT
IEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogTm90YXRpb24gCkBAIC0x
OSw5ICsxOSw3IEBAIFBBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVk
OiBSYW5nZUV4Y2VwdGlvbgogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJl
bW92ZWQ6IGNyZWF0ZUNEQVRBU2VjdGlvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZp
bmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiBjcmVh
dGVDREFUQVNlY3Rpb24oKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIKLUZBSUwgSGlzdG9yaWNh
bCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBjcmVhdGVFbnRpdHlSZWZlcmVuY2UgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkgewotICAgIFtu
YXRpdmUgY29kZV0KLX0iCitQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVt
b3ZlZDogY3JlYXRlRW50aXR5UmVmZXJlbmNlIAogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0dXJl
cyBtdXN0IGJlIHJlbW92ZWQ6IHhtbEVuY29kaW5nIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1
bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChvYmplY3QpIG51bGwKIEZBSUwgSGlzdG9yaWNh
bCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxTdGFuZGFsb25lIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChib29sZWFuKSBmYWxz
ZQogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IHhtbFZlcnNp
b24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3Qg
KG9iamVjdCkgbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAyZDhkYzhlMTk4
NTk3NDU4YzkzMTRkZWRiZWUyN2NmMzYxZDZlMzhkLi43OTg5NTgyYWIzZWI4YWMwNTBhM2Q4YTc1
ZGFlYzQyNjhiZGVkN2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzEzLDEx
ICszMTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0Jykg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScp
LnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vu
dGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVu
dW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBp
cyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Q
cm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBiYWFiNDk4MjBmNGRhOWYzMzkzMGIyYjc5OTQyZTkz
MzEwNWU4ZjcwLi40NTdlOTkwMTRkNDM4OTMyY2E0NjMyNzg0YzliNmNhNTc4OWQyZTI3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0z
MTMsMTEgKzMxMyw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdz
ZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJl
bmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dl
dCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNl
JykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZh
bHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhh
c093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
bG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CmluZGV4IGVkYjc1NTA3NjI5YzdjMGRjNjIw
N2JmMDQ5NDYwYTRkNTc4OTRhODIuLjgyYjAyNGE4NjZhNDBkMzI5MWM2NWM3M2FmY2Y5YmMyNDNh
OTc0NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1l
eHBlY3RlZC50eHQKQEAgLTExNCw4ICsxMTQsNiBAQCBQQVNTIHdpblsnRG9jdW1lbnRUeXBlJ10g
PT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsn
RG9jdW1lbnRUeXBlJ10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBpcyB0
cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0n
IGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVj
dG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVyZW5jZSddID09ICdbb2JqZWN0IEVu
dGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVy
ZW5jZSddID09ICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQog
UEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUK
IFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVl
CiBQQVNTIHdpblsnRXZlbnRFeGNlcHRpb24nXSA9PSAnW29iamVjdCBFdmVudEV4Y2VwdGlvbkNv
bnN0cnVjdG9yXScgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGEwYzZmZjRmODc5YzU5OWM2MDA3ZTY3ZTY5NWIyMWE1NjJl
MjY5OWYuLmU2ODFhNDZhNGY4ZTZlZDVlMjRiNzdhMTc5MzBhYzUxNWU4ZTY0ZDUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMxOCwx
MSArMzE4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2Un
KS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0Jykg
aXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUg
aXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBjMTViNjY1YTBm
ZmFiNjc2YzBmZThkOTc1ZjgzOGI3N2Q4OTg5YmM4Li5lMTg0Mjk1YzBlYzEzYzgwM2QzYmY1OTUw
NDE3OGFjZjUzY2E2ZWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2
ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4LDYgQEAg
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVu
dW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBF
bnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlz
IGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50
aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVu
dAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZl
bnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1p
dGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMDBmYmM0YjAyOGQ5MmU2YWRmYTY2Mzc2
ZThlZTJiZjY3ZWM0ZmNmMy4uOTRkNzgxMjYyOTBkMGIzZjAzN2E0OTY1ZmE1ZGY3ZGEzZGMyODc1
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICszMDgsNiBAQCBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdn
ZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vs
ZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxz
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQn
KS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVy
ZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5j
b25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3Bl
cnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApp
bmRleCA5M2RhZGMwMzFmNjJmMzY2M2E4OTY2MDNhM2RhYjE4ZWUyNjQzMmE0Li4xNjJmNDhmYzU2
Yjk4NzliM2E5YjEzNmI4YjcxYjJlZjlhODdhMmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CkBAIC0xMTQsOCArMTE0LDYgQEAg
UEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVj
dG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3Vt
ZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29i
amVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09
ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlS
ZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRy
dWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVu
Y2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2
ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBF
dmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50RXhjZXB0aW9uJ10gPT0g
J1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0nIGlzIHRydWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1j
bGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CmluZGV4IGMyY2ZmZTE0YmQzZTIwY2FlNTMzZmM5MGNk
N2E3NWRkZWY1NGFiMTcuLjdjMmIxNzMxMTQ0NWYzYzdkNDM3MGU4NGMwNzY4MWZkMzkyZjJjZjIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNs
YXNzZXMtb2JqYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dApAQCAtMjEsNyArMjEsNiBA
QCBYTUwKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudCkgaXMgJ0RPTURvY3VtZW50
JwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigp
KSBpcyAnRE9NQ0RBVEFTZWN0aW9uJwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKSkgaXMgJ0RPTUVsZW1lbnQnCi1QQVNTIG9i
akNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkpIGlzICdE
T01FbnRpdHlSZWZlcmVuY2UnCiBQQVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpIGlzICdET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24n
CiAKIEV2ZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9t
L3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbAppbmRleCAwYmJiNDQ1YWNmNzVhODA5OTI0
YmJjMjI4OTY4MjI4NDZjM2EzYzFiLi5mMzU5ZDk0M2QwOGQwYzAwOWNjYjY3YWI3MjJlODY4YmQ2
MWJhZTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3Jh
cHBlci1jbGFzc2VzLW9iamMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbApAQCAtMTAzLDcgKzEwMyw2IEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKQogICAgIHRlc3QoInhtbERvY3VtZW50IiwgIkRvY3VtZW50Iik7CiAgICAg
dGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlQ0RBVEFTZWN0aW9uKCkiLCAiQ0RBVEFTZWN0aW9uIik7
CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpIiwg
IkVsZW1lbnQiKTsKLSAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
KSIsICJFbnRpdHlSZWZlcmVuY2UiKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24oKSIsICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iKTsKIAogICAgIGRl
YnVnKCcnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dAppbmRleCAwNDRmMTRmMGU1Mjk2ZTY3NWQ4YjQzYzhiNDNkODAyZDI2OTc3MTE4Li5jMWE0
MjJmMGExNTU3NzE4YzFhN2VkOWYxMDRmODhjZDk1MGE1NjE0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMwOCw2IEBA
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50Jyku
aGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMg
RW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJl
bmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBp
cyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vu
dGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZl
bnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2
ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdz
ZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0CmluZGV4IDA4M2EwNzFmNmNlNmViNWVkMjFjZDA0NjAxYTNhYmU3NjE5MzFmYmYu
LjZlYmFhYWY2Y2NjYTAxMGE5MmZmNzA3ZjE5MjQxZGM4NTU3Y2VmOGEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1
dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTIzOCwxMSArMjM4
LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1l
bnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVu
dCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1
ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlS
ZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJh
YmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJy
b3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vy
cm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVy
dHkoJ3NldCcpIGlzIGZhbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261659</attachid>
            <date>2015-09-21 09:13:55 -0700</date>
            <delta_ts>2015-09-21 09:37:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150921091339.patch</filename>
            <type>text/plain</type>
            <size>450498</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDllOThhOWFlODM1MzIw
ZDE0YzQ1MWUzMzJlOTBhOGE1NmYzYmZhNC4uY2MyMDUwY2QwMjQ4MTBkMTNjNjM1MDM1NzExMjQ3
OWUwMTI4MDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wOS0xOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKIDIwMTUtMDktMjEgIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vvay5v
aEBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIG1lZGlhIGNvbnRyb2xzIGRvZXMgbm90
IHNob3cgdXAgd2hlbiBwbGF5aW5nIHZpZGVvIGZpbmlzaGVzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJhY2Fk
ZDA4ZmJmZjQ4YmY5NTlkNDg4NTEwZGE3ZDE3ZDc4YzIyOTMuLjNkZDkwMGEwZTJkNjA2NDdkOTVh
OTE1NmQ0NzA0YWY0YWE2NTUzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0w
OS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3Vw
cG9ydCBmb3IgbGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIGhhbmRsaW5nIEVudGl0
eVJlZmVyZW5jZSBOb2Rlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL21hYy9XS0RPTUludGVybmFscy5tbToKKyAgICAgICAgKFdlYktpdDo6V0tET01Ob2RlQ2xh
c3MpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6aXNBc3Npc3RhYmxlRWxlbWVudCk6CisKIDIwMTUtMDkt
MjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAg
ICBSZW1vdmUgWEhSX1RJTUVPVVQgY29tcGlsYXRpb24gZ3VhcmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggYjVhY2I0MTE4MTg5NjY0ZmI4NTgzMmY0Zjc0MjMyMDhlZTM1MDRkMi4uNmE2NTVkZDI4
MjQ0ZjdkNTA0NjhmYTZmMWExYThhODIyYWNhODM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTM5MSw3ICszOTEsNiBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGRvbS9E
b2N1bWVudEZyYWdtZW50LmlkbAogICAgIGRvbS9Eb2N1bWVudFR5cGUuaWRsCiAgICAgZG9tL0Vs
ZW1lbnQuaWRsCi0gICAgZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKICAgICBkb20vRXJyb3JFdmVu
dC5pZGwKICAgICBkb20vRXZlbnQuaWRsCiAgICAgZG9tL0V2ZW50RXhjZXB0aW9uLmlkbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IGQzZWI1MTczMWUwNjAwMmUxMzQzOGRhY2JmNTdl
YTQ3YWRkYzQzMWMuLjM0M2E4MDEyNWY0MmY4ZDk4Mjg3MGMzN2I0NTI0MTRiZjg4ZjVjODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTE0OSw3ICsxNDksNiBAQAogI2luY2x1ZGUg
IkpTRE9NV2luZG93LmNwcCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0NTUy5jcHAiCiAjaW5jbHVk
ZSAiSlNFbGVtZW50LmNwcCIKLSNpbmNsdWRlICJKU0VudGl0eVJlZmVyZW5jZS5jcHAiCiAjaW5j
bHVkZSAiSlNFcnJvckV2ZW50LmNwcCIKICNpbmNsdWRlICJKU0V2ZW50LmNwcCIKICNpbmNsdWRl
ICJKU0V2ZW50RXhjZXB0aW9uLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDc3NGNhMDY0OGE3YjViOTAwZGY0YTAwZTNmNmUzMWJm
OWMwNzJjMDguLjMyZmExNmYwMzEwNTk5Yjg4ZTA5MDI5YmEzMWNiYTkwZTI0ZmRmNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTgz
MiwyMCArMTgzMiw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmNwcCI+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
JChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNF
cnJvckV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CkBAIC0xOTg0NSw3ICsxOTgzMSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01VUkwuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RPTVdpbmRvdy5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRWxlbWVudC5oIiAvPgot
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxh
dGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5
UmVmZXJlbmNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNFcnJvckV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXZlbnRFeGNlcHRpb24uaCIgLz4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVycwppbmRleCAyNjMzMzc3YTk3ZTFkMjczNGMwYmU2YjBhMGE4YzAxZWY1MTY4NjNmLi5iNTA1
ZjI0M2U3Zjk5OTU5NWRiZjRhZDkxNDRlZDg5YzcyMjY0YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC01
MjU0LDkgKzUyNTQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTRWxlbWVudC5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmNwcCI+Ci0gICAgICA8RmlsdGVy
PkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVj
dHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFcnJvckV2ZW50LmNwcCI+CiAg
ICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0xMjY0Myw5ICsxMjY0MCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNFbGVtZW50LmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmgiPgotICAgICAgPEZpbHRl
cj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRl
Y3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5oIj4KICAg
ICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAxMDVlYTBkMTEzZDU1ZjdkZWUyNjM0YjVkY2ZhYTEzNzZiMzQ1ODNjLi4wZTAwMGQ2M2ZjMWEx
MWY0ZThhNmJjZjIwNjQ2NzIyMWI2OWZkZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTg5LDggKzM1ODksNiBAQAogCQk5
M0Y5QjY1ODBCQTBGMzVFMDA4NTQwNjQgLyogRE9NSFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2NTUw
QkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsK
IAkJOTNGOUI2RTAwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERTBCQTBGQjcyMDA4NTQw
NjQgLyogSlNDb21tZW50LmNwcCAqLzsgfTsKIAkJOTNGOUI2RTEwQkEwRkI3MjAwODU0MDY0IC8q
IEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oICovOyB9OwotCQk5M0Y5
Qjc3NDBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3NzIwQkE1RkREQzAwODU0
MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCAqLzsgfTsKLQkJOTNGOUI3NzUwQkE1RkRERDAw
ODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc3MzBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlS
ZWZlcmVuY2UuaCAqLzsgfTsKIAkJOTNGOUI3QTAwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFT
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgKi87IH07CiAJ
CTkzRjlCN0ExMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3OUYwQkE2MDMyNjAwODU0
MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmggKi87IH07CiAJCTkzRkRBRkNBMEIxMTMwNzQwMEUyNzQ2
RiAvKiBFZGl0b3JJbnNlcnRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRkRBRkM5MEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRB
Y3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTA5NjAsOCArMTA5NTgsNiBAQAogCQk5M0Y5QjY1NTBCQTBGMzVFMDA4NTQwNjQgLyogRE9N
SFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzRjlCNkRFMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb21tZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NvbW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGOUI3NzIwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50
aXR5UmVmZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RW50aXR5UmVmZXJlbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGOUI3
NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50aXR5UmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NEQVRBU2VjdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2
NCAvKiBKU0NEQVRBU2VjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0NEQVRBU2VjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0ZEQUZDOTBC
MTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFZGl0b3JJbnNlcnRBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIwMDQ3LDggKzIwMDQzLDYgQEAKIAkJCQlCQzY0NjQ5NjExRDgyMzQ5MDA2
NDU1QjAgLyogSlNET01TdHJpbmdNYXAuaCAqLywKIAkJCQk2NURGMzFFNTA5RDFDQzYwMDAwQkUz
MjUgLyogSlNFbGVtZW50LmNwcCAqLywKIAkJCQk2NURGMzFFNjA5RDFDQzYwMDAwQkUzMjUgLyog
SlNFbGVtZW50LmggKi8sCi0JCQkJOTNGOUI3NzIwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5
UmVmZXJlbmNlLmNwcCAqLywKLQkJCQk5M0Y5Qjc3MzBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRp
dHlSZWZlcmVuY2UuaCAqLywKIAkJCQlGRTgwREE1RjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9s
b2NhdGlvbi5jcHAgKi8sCiAJCQkJRkU4MERBNjAwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9j
YXRpb24uaCAqLywKIAkJCQlGRTgwREE2MTBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlv
bi5jcHAgKi8sCkBAIC0yNTU3NSw3ICsyNTU2OSw2IEBACiAJCQkJRkQ3ODY4QkExMzZCOTk5MjAw
RDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjVERjMxRkEwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQURFQzc4RjgxOEVFNTMwODAwMTMxNUMyIC8qIEpTRWxlbWVudEN1c3RvbS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTNGOUI3NzUwQkE1RkRERDAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUNGN0FERDEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJv
ckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyog
SlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTgzNzhFMDlGODVENEYwMEI4
NUFFNCAvKiBKU0V2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5MTM3LDcgKzI5MTMwLDYgQEAK
IAkJCQlGRDc4NjhCOTEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2Rl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUY5MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0Vs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyRUQ1NTUwQzZCOUJEMzAwOTIwQkZGIC8q
IEpTRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5M0Y5Qjc3NDBCQTVGRERD
MDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVD
RjdBREMxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTRFODM3ODQwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0
L1dlYktpdERPTVByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9X
ZWJLaXRET01Qcml2YXRlLmNwcAppbmRleCA1OWNmNjhjMTI5MGE3YWIwMjZlMzFlMzI2MWIwNjhh
NDNkMzY2MDkzLi5hY2ExZjk4YWM5OTQ4OTBjNzAyODc2YjFhOGNlYjcwYjk3YmZhYmViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0
ZS5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFR5cGVQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01FbnRpdHlS
ZWZlcmVuY2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRUYXJnZXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
RE9NRmlsZVByaXZhdGUuaCIKQEAgLTkzLDggKzkyLDYgQEAgV2ViS2l0RE9NTm9kZSogd3JhcChO
b2RlKiBub2RlKQogICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBUZXh0KGRvd25j
YXN0PFRleHQ+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6CiAg
ICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcENEQVRBU2VjdGlvbihzdGF0aWNfY2Fz
dDxDREFUQVNlY3Rpb24qPihub2RlKSkpOwotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5D
RV9OT0RFOgotICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBFbnRpdHlSZWZlcmVu
Y2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpKTsKICAgICBjYXNlIE5vZGU6
OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01f
Tk9ERSh3cmFwUHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0
cnVjdGlvbio+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCBkZWVlNjc1YTkyNTEy
MTA1NGYxNzIzMjdlNTM2YWE0ZGY4ZTVmNzU5Li43M2IyMTBhYThkMWVhMDVjZjFlMTlmNWU0ZjM1
MWYxZTA1ZWI5OTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3Rv
bS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRW50aXR5LmgiCi0jaW5jbHVkZSAi
RW50aXR5UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
IkhUTUxBdWRpb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgpAQCAt
NTEsNyArNTAsNiBAQAogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0RvY3Vt
ZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJKU0RvY3VtZW50VHlwZS5oIgotI2luY2x1ZGUgIkpT
RW50aXR5UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVk
ZSAiSlNIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9y
eS5oIgpAQCAtMjA5LDkgKzIwNyw2IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgY3Jl
YXRlV3JhcHBlcklubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqCiAjZW5kaWYK
ICAgICAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVj
dCwgRG9jdW1lbnRGcmFnbWVudCwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6Ci0gICAgICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRW50aXR5UmVmZXJlbmNlLCBub2RlKTsK
LSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgd3JhcHBl
ciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIE5vZGUsIG5vZGUpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KaW5kZXggOGUxZmJlMWZjZDdjMzdjNDZlOTBj
MzNjYzA0NDIzNGExYWU0ODc4Mi4uZTgzOTY1ZGJjMzRmMjFjM2NlMzExNjBkNDc1YTZkMjgyY2Ez
ZmJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KQEAgLTMxMSw4ICszMTEsNiBA
QCBDbGFzcyBraXRDbGFzcyhXZWJDb3JlOjpOb2RlKiBpbXBsKQogICAgICAgICAgICAgcmV0dXJu
IFtET01UZXh0IGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNU
SU9OX05PREU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTUNEQVRBU2VjdGlvbiBjbGFzc107Ci0g
ICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAg
ICAgICAgcmV0dXJuIFtET01FbnRpdHlSZWZlcmVuY2UgY2xhc3NdOwogICAgICAgICBjYXNlIFdl
YkNvcmU6Ok5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgICAgIHJl
dHVybiBbRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJD
b3JlOjpOb2RlOjpDT01NRU5UX05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCBlY2IyZGY3ODkwOTUy
NGI0MDIxM2Y1NjEzYzRiYzQ4YjExOGE1MjZlLi4wNzM2YjJhM2U1ZmNmNzMxNjkwZjlkYWI2ZTc0
NTllZTgxODY2NmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTc2LDcgKzc2LDYgQEAgbXkgJXRyYW5z
ZmVyRnVsbFR5cGVIYXNoID0gKCJBdWRpb1RyYWNrIiA9PiAxLCAiQXVkaW9UcmFja0xpc3QiID0+
IDEsICJCYXJQcm9wIgogbXkgJGNhbkJlTnVsbFBhcmFtcyA9IHsKICAgICAnd2Via2l0X2RvbV9k
b2N1bWVudF9jcmVhdGVfYXR0cmlidXRlX25zJyA9PiBbJ25hbWVzcGFjZVVSSSddLAogICAgICd3
ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9lbGVtZW50X25zJyA9PiBbJ25hbWVzcGFjZVVSSSdd
LAotICAgICd3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9lbnRpdHlfcmVmZXJlbmNlJyA9PiBb
J25hbWUnXSwKICAgICAnd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfbm9kZV9pdGVyYXRvcicg
PT4gWydmaWx0ZXInXSwKICAgICAnd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfdHJlZV93YWxr
ZXInID0+IFsnZmlsdGVyJ10sCiAgICAgJ3dlYmtpdF9kb21fZG9jdW1lbnRfZXZhbHVhdGUnID0+
IFsnaW5SZXN1bHQnLCAncmVzb2x2ZXInXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9BdHRyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAppbmRleCBhYzdiNjZmOTk3
MDVkODk5ZWVjZTNjMjg5NGY4OWUxZjgwOWQxNWY4Li45NmQ3ZWVkM2IwZmYyMTU1OWFkYzMzNWUy
MGE0YzQ1OWRmMjFiZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCkBAIC0xNDgsMTMgKzE0OCw3IEBAIFJl
ZjxOb2RlPiBBdHRyOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQs
IENsb25pbmdPcGVyYXRpb24pCiAvLyBET00gU2VjdGlvbiAxLjEuMQogYm9vbCBBdHRyOjpjaGls
ZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiB7Ci0gICAgc3dpdGNoICh0eXBlKSB7
Ci0gICAgICAgIGNhc2UgVEVYVF9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERToKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICByZXR1cm4gdHlwZSA9PSBURVhUX05PREU7
CiB9CiAKIHZvaWQgQXR0cjo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
QXR0ci5oCmluZGV4IDEyNGM2ZDdhMmFhMjg2ODMwZmNiYTI5NjI4ODg4YjcyMDIyOTkyODYuLmY2
ZjM2MjA3NzE3YTM1YzJiMjQzZmFhYTk2NWRjM2FiNzJmMjZiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9BdHRyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaApAQCAt
MzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0
aW9uOwogY2xhc3MgTXV0YWJsZVN0eWxlUHJvcGVydGllczsKIAotLy8gQXR0ciBjYW4gaGF2ZSBU
ZXh0IGFuZCBFbnRpdHlSZWZlcmVuY2UgY2hpbGRyZW4KKy8vIEF0dHIgY2FuIGhhdmUgVGV4dCBj
aGlsZHJlbgogLy8gdGhlcmVmb3JlIGl0IGhhcyB0byBiZSBhIGZ1bGxibG93biBOb2RlLiBUaGUg
cGxhbgogLy8gaXMgdG8gZHluYW1pY2FsbHkgYWxsb2NhdGUgYSB0ZXh0Y2hpbGQgYW5kIHN0b3Jl
IHRoZQogLy8gcmVzdWx0aW5nIG5vZGV2YWx1ZSBpbiB0aGUgYXR0cmlidXRlIHVwb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBjOTYzNGIwY2UxMDAzNGU5MmI1YzUxNmUx
MzJkMGM0MzQzMTdhNTBkLi4zZjRmZTBmODAzNzRjODM3MDA5OTBlZDRiNDVhNGE5ZDIxOTQ5YmI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0xODAsNyArMTgwLDYgQEAg
c3RhdGljIGlubGluZSBFeGNlcHRpb25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9k
ZSYgbmV3UGFyZW50LCBOb2RlJiBuZXcKIHsKICAgICAvLyBVc2UgY29tbW9uIGNhc2UgZmFzdCBw
YXRoIGlmIHBvc3NpYmxlLgogICAgIGlmICgobmV3Q2hpbGQuaXNFbGVtZW50Tm9kZSgpIHx8IG5l
d0NoaWxkLmlzVGV4dE5vZGUoKSkgJiYgbmV3UGFyZW50LmlzRWxlbWVudE5vZGUoKSkgewotICAg
ICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKICAgICAgICAgQVNTRVJU
KCFuZXdQYXJlbnQuaXNEb2N1bWVudFR5cGVOb2RlKCkpOwogICAgICAgICBBU1NFUlQoaXNDaGls
ZFR5cGVBbGxvd2VkKG5ld1BhcmVudCwgbmV3Q2hpbGQpKTsKICAgICAgICAgaWYgKGNvbnRhaW5z
Q29uc2lkZXJpbmdIb3N0RWxlbWVudHMobmV3Q2hpbGQsIG5ld1BhcmVudCkpCkBAIC0xOTMsOCAr
MTkyLDYgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29u
dGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXcKICAgICBpZiAobmV3Q2hpbGQuaXNQc2V1
ZG9FbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAKLSAg
ICBpZiAobmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpCi0gICAgICAgIHJldHVybiBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlI7CiAgICAgaWYgKGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxl
bWVudHMobmV3Q2hpbGQsIG5ld1BhcmVudCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVR
VUVTVF9FUlI7CiAKQEAgLTIwOSw3ICsyMDYsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNv
ZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwog
CiBzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMo
Q29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7Ci0gICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSk7CiAgICAgQVNT
RVJUKCFuZXdQYXJlbnQuaXNEb2N1bWVudFR5cGVOb2RlKCkpOwogICAgIEFTU0VSVChpc0NoaWxk
VHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpOwogICAgIGlmIChuZXdDaGlsZC5jb250
YWlucygmbmV3UGFyZW50KSkgewpAQCAtNTIxLDEyICs1MTcsNiBAQCBib29sIENvbnRhaW5lck5v
ZGU6OnJlbW92ZUNoaWxkKE5vZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAg
IGVjID0gMDsKIAotICAgIC8vIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjogUmFpc2VkIGlm
IHRoaXMgbm9kZSBpcyByZWFkb25seS4KLSAgICBpZiAoaXNSZWFkT25seU5vZGUoKSkgewotICAg
ICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLQogICAgIC8vIE5PVF9GT1VORF9FUlI6IFJhaXNlZCBpZiBvbGRDaGlsZCBp
cyBub3QgYSBjaGlsZCBvZiB0aGlzIG5vZGUuCiAgICAgaWYgKG9sZENoaWxkLnBhcmVudE5vZGUo
KSAhPSB0aGlzKSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDA4ZDlkY2Q5YzI0M2E3ZTY3MGY1ZjI3YWRmNzUzNDczZWY2YjI2NDMuLmI5
M2UwNTM1NzJjZTkxMjE3NWMzYzNlZmI5M2I5ZTkzNTkzZDZhZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtOTA5LDE3ICs5MDksMTAgQEAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlv
bj4gRG9jdW1lbnQ6OmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihjb25zdCBTdHJpbmcKICAg
ICByZXR1cm4gUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjcmVhdGUoKnRoaXMsIHRhcmdldCwgZGF0
YSk7CiB9CiAKLVJlZlB0cjxFbnRpdHlSZWZlcmVuY2U+IERvY3VtZW50OjpjcmVhdGVFbnRpdHlS
ZWZlcmVuY2UoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxF
bnRpdHlSZWZlcmVuY2U+IERvY3VtZW50OjpjcmVhdGVFbnRpdHlSZWZlcmVuY2UoY29uc3QgU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFpc1ZhbGlkTmFtZShuYW1lKSkg
ewotICAgICAgICBlYyA9IElOVkFMSURfQ0hBUkFDVEVSX0VSUjsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgfQotICAgIGlmIChpc0hUTUxEb2N1bWVudCgpKSB7Ci0gICAgICAgIGVjID0g
Tk9UX1NVUFBPUlRFRF9FUlI7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBy
ZXR1cm4gRW50aXR5UmVmZXJlbmNlOjpjcmVhdGUoKnRoaXMsIG5hbWUpOworICAgIGVjID0gTk9U
X1NVUFBPUlRFRF9FUlI7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZjxUZXh0PiBEb2N1
bWVudDo6Y3JlYXRlRWRpdGluZ1RleHROb2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTk0NCw3
ICs5MzcsNiBAQCBSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmltcG9ydE5vZGUoTm9kZSogaW1wb3J0
ZWROb2RlLCBib29sIGRlZXAsIEV4Y2VwdGlvbkNvZGUmCiAgICAgY2FzZSBFTEVNRU5UX05PREU6
CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6Ci0gICAg
Y2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBQUk9DRVNTSU5HX0lOU1RSVUNU
SU9OX05PREU6CiAgICAgY2FzZSBDT01NRU5UX05PREU6CiAgICAgY2FzZSBET0NVTUVOVF9GUkFH
TUVOVF9OT0RFOgpAQCAtOTc0LDExICs5NjYsNiBAQCBSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmFk
b3B0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChzb3VyY2UtPmlzUmVhZE9ubHlO
b2RlKCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQogICAgIEV2ZW50UXVldWVTY29wZSBzY29wZTsK
IAogICAgIHN3aXRjaCAoc291cmNlLT5ub2RlVHlwZSgpKSB7CkBAIC0xNzEwLDUyICsxNjk3LDUy
IEBAIFJlZjxSYW5nZT4gRG9jdW1lbnQ6OmNyZWF0ZVJhbmdlKCkKICAgICByZXR1cm4gUmFuZ2U6
OmNyZWF0ZSgqdGhpcyk7CiB9CiAKLVJlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVh
dGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQ
dHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhj
ZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9k
ZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5v
ZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1
cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
LCBlYyk7Cit9CisKK1JlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRl
cmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZp
bHRlcj4mJiBmaWx0ZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghcm9vdCkgewog
ICAgICAgICBlYyA9IFR5cGVFcnJvcjsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQot
ICAgIHJldHVybiBOb2RlSXRlcmF0b3I6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1v
dmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgcmV0dXJuIE5vZGVJdGVy
YXRvcjo6Y3JlYXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpKTsKIH0KIAot
UmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiBy
b290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRl
ciwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3Jl
YXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCB3
aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3Jl
YXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIG51bGxwdHIsIGVjKTsKIH0KIAotUmVm
UHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPE5v
ZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdo
YXRUb1Nob3csIG51bGxwdHIsIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVy
YXRvcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBlYyk7CiB9CiAKLVJlZlB0cjxOb2RlSXRl
cmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgRXhjZXB0aW9u
Q29kZSYgZWMpCitSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIo
Tm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4m
JiBmaWx0ZXIsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVO
b2RlSXRlcmF0b3Iocm9vdCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICBy
ZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVy
KSwgZWMpOwogfQogCi1SZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxr
ZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRl
cj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYg
ZWMpCitSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSog
cm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0
ZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghcm9vdCkgewogICAgICAgICBlYyA9
IFR5cGVFcnJvcjsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIHJldHVybiBU
cmVlV2Fsa2VyOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGV4
cGFuZEVudGl0eVJlZmVyZW5jZXMpOwotfQotCi1SZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6
OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBS
ZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIHJl
dHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
LCBmYWxzZSwgZWMpOworICAgIHJldHVybiBUcmVlV2Fsa2VyOjpjcmVhdGUocm9vdCwgd2hhdFRv
U2hvdywgV1RGOjptb3ZlKGZpbHRlcikpOwogfQogCiBSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1l
bnQ6OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290
LCB3aGF0VG9TaG93LCBudWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVl
V2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIG51bGxwdHIsIGVjKTsKIH0KIAogUmVmUHRyPFRyZWVX
YWxrZXI+IERvY3VtZW50OjpjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIDB4RkZGRkZGRkYs
IG51bGxwdHIsIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwg
MHhGRkZGRkZGRiwgbnVsbHB0ciwgZWMpOwogfQogCiB2b2lkIERvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKCkKQEAgLTMzNTcsNyArMzM0NCw2IEBAIGJvb2wgRG9jdW1lbnQ6OmNo
aWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICBjYXNlIENEQVRBX1NFQ1RJ
T05fTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgY2FzZSBET0NV
TUVOVF9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgVEVY
VF9OT0RFOgogICAgIGNhc2UgWFBBVEhfTkFNRVNQQUNFX05PREU6CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTMzODUsNyArMzM3MSw2IEBAIGJvb2wgRG9jdW1lbnQ6OmNhbkFjY2VwdENoaWxk
KGNvbnN0IE5vZGUmIG5ld0NoaWxkLCBjb25zdCBOb2RlKiByZWZDaGlsZCwgQWNjZXB0CiAgICAg
Y2FzZSBBVFRSSUJVVEVfTk9ERToKICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKICAgICBj
YXNlIERPQ1VNRU5UX05PREU6Ci0gICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAg
Y2FzZSBURVhUX05PREU6CiAgICAgY2FzZSBYUEFUSF9OQU1FU1BBQ0VfTk9ERToKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzYWM5NTE3OTM5YWI0ZWQ2NGFj
YTE0MzE3MjU3MDMwYTkxMzQyOWVjLi43ODFlZjIwYmQzMzc3OTNjYzgzM2MzYzFjYWJhNTBhMGMx
Yjg4ZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNTM2LDEyICs1MzYsMTIgQEAgcHVibGlj
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmPFJhbmdlPiBjcmVhdGVSYW5nZSgpOwogCi0gICAg
UmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50
aXR5UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxOb2RlSXRlcmF0b3I+
IGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cs
IFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBib29sLCBFeGNlcHRpb25Db2RlJik7IC8vIEZvciBPYmpD
IGJpbmRpbmdzLgogICAgIFJlZlB0cjxOb2RlSXRlcmF0b3I+IGNyZWF0ZU5vZGVJdGVyYXRvcihO
b2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYm
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0
ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIFJlZlB0cjxOb2RlSXRlcmF0b3I+IGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiBy
b290LCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICBSZWZQdHI8VHJlZVdhbGtlcj4gY3JlYXRlVHJl
ZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2Rl
RmlsdGVyPiYmLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICBSZWZQdHI8VHJlZVdhbGtlcj4gY3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNp
Z25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBib29sLCBFeGNlcHRp
b25Db2RlJik7IC8vIEZvciBPYmpDIGJpbmRpbmdzLgogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBj
cmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVm
UHRyPE5vZGVGaWx0ZXI+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8VHJlZVdhbGtl
cj4gY3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cs
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8VHJlZVdhbGtlcj4gY3JlYXRlVHJlZVdhbGtl
cihOb2RlKiByb290LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRl
eCAxY2MwMDA3M2NjMDQ5NzVmMjk3MWZmZGQwM2YwZTY1ZjBmNTA5NWViLi5mMjZlY2VmODZiYzMz
YTVmZTYyODE2NWJkNGQ0MDQ4OTc1Y2Y1YzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAg
LTM5LDcgKzM5LDEwIEBACiAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgTmV3T2Jq
ZWN0LCBSYWlzZXNFeGNlcHRpb25dIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBjcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgdGFy
Z2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25h
bCBET01TdHJpbmcgZGF0YSk7CiAgICAgW05ld09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBBdHRy
IGNyZWF0ZUF0dHJpYnV0ZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBu
YW1lKTsKLSAgICBbTmV3T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEVudGl0eVJlZmVyZW5jZSBj
cmVhdGVFbnRpdHlSZWZlcmVuY2UoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJp
bmcgbmFtZSk7CisKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFH
RV9PQkpFQ1RJVkVfQyB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdVQUdFX0dP
QkpFQ1QKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBFbnRpdHlSZWZlcmVuY2UgY3JlYXRlRW50aXR5
UmVmZXJlbmNlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwor
I2VuZGlmCiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9P
QkpFQ1RJVkVfQwogICAgIFtJbXBsZW1lbnRlZEFzPWdldEVsZW1lbnRzQnlUYWdOYW1lRm9yT2Jq
Q10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRp
b25hbCBET01TdHJpbmcgdGFnbmFtZSk7CkBAIC05MiwxNCArOTUsMjMgQEAKIAogICAgIC8vIERP
TSBMZXZlbCAyIFRyYW52ZXJzYWwgYW5kIFJhbmdlIChEb2N1bWVudFRyYXZlcnNhbCBpbnRlcmZh
Y2UpCiAKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb24s
IE5ld09iamVjdF0gTm9kZUl0ZXJhdG9yIGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlIHJvb3QsCisj
aWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0Mg
fHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNUCisgICAgW09i
akNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSBOb2RlSXRlcmF0b3Ig
Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9vdCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRl
cj8gZmlsdGVyLAogICAgICAgICBvcHRpb25hbCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5j
ZXMpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbiwg
TmV3T2JqZWN0XSBUcmVlV2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSByb290LAorICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gVHJlZVdhbGtlciBj
cmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKICAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8g
ZmlsdGVyLAogICAgICAgICBvcHRpb25hbCBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMp
OworI2Vsc2UKKyAgICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIE5vZGVJdGVyYXRvciBj
cmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3cgPSAweEZGRkZGRkZGLAorICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVy
PyBmaWx0ZXIpOworICAgIFtSYWlzZXNFeGNlcHRpb24sIE5ld09iamVjdF0gVHJlZVdhbGtlciBj
cmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKKyAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8g
ZmlsdGVyKTsKKyNlbmRpZgogCiAgICAgLy8gRE9NIExldmVsIDIgQWJzdHJhY3QgVmlld3MgKERv
Y3VtZW50VmlldyBpbnRlcmZhY2UpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudEZyYWdtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50
LmNwcAppbmRleCBmOWIzOGEwYmQyOGU4ZTNjNjA5MzRhZmYxYTYwMDU5MjcwOTAzZmVjLi5hNjcw
MDJjNGJmOTg3NDRhMjk1M2Y0OWUyNmU2MWJhMGNhZDM3MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC02MCw3ICs2MCw2IEBAIGJvb2wgRG9jdW1lbnRGcmFn
bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgICAgICBjYXNl
IENPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBURVhUX05PREU6CiAgICAgICAgIGNhc2UgQ0RB
VEFfU0VDVElPTl9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGJkMzA3NGQxZTgzNzRiMGI3Nzdi
NmU3MDQzYjQ3OWJiNTY4NDZlNTQuLjU4ZmM4MDQ2NzgyNDJmNGRkYjYyNmNiYWE2OTg0ODBmMWE0
OGZjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE3NTUsNyArMTc1NSw2IEBAIGJvb2wg
RWxlbWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2Ug
Q09NTUVOVF9OT0RFOgogICAgIGNhc2UgUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAg
IGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RF
OgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKaW5kZXggN2U5MWE0NjJkYTgyMDlkOTIy
YzQ1ZGM4NGM0MWEwODU1YWQ2YmUxYS4uZTU4MjRmMTA4YmI2ZjU0M2I1YTA3NjdhZmUxZmE4NGEy
ZDQ4MWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKQEAgLTI1LDMw
ICsyNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIEVudGl0eVJlZmVyZW5j
ZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBlbnRp
dHlOYW1lKQoraW5saW5lIEVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVmZXJlbmNlKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJikKICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQp
Ci0gICAgLCBtX2VudGl0eU5hbWUoZW50aXR5TmFtZSkKIHsKIH0KIAotUmVmPEVudGl0eVJlZmVy
ZW5jZT4gRW50aXR5UmVmZXJlbmNlOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIGVudGl0eU5hbWUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW50aXR5UmVm
ZXJlbmNlKGRvY3VtZW50LCBlbnRpdHlOYW1lKSk7Ci19Ci0KLVN0cmluZyBFbnRpdHlSZWZlcmVu
Y2U6Om5vZGVOYW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbnRpdHlOYW1lOwotfQotCi1O
b2RlOjpOb2RlVHlwZSBFbnRpdHlSZWZlcmVuY2U6Om5vZGVUeXBlKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gRU5USVRZX1JFRkVSRU5DRV9OT0RFOwotfQotCi1SZWY8Tm9kZT4gRW50aXR5UmVmZXJl
bmNlOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdP
cGVyYXRpb24pCi17Ci0gICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgbV9lbnRpdHlO
YW1lKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbnRpdHlSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2Uu
aAppbmRleCA4NmRmZWIzOTgyNWIzNDUwZTc1MzU5MjUwNjg1MTEwYjNhZjBjYThmLi4xOGMyZWMx
YWZjZTU3MGU4MGU4NjVhMDg0NWJhYmQ4ODY2Zjk2MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0
eVJlZmVyZW5jZS5oCkBAIC0yNiwxOCArMjYsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEVudGl0eVJlZmVyZW5jZSBmaW5hbCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPEVudGl0eVJlZmVyZW5jZT4gY3JlYXRlKERvY3VtZW50Jiwg
Y29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKTsKLQorY2xhc3MgRW50aXR5UmVmZXJlbmNlIDogcHVi
bGljIENvbnRhaW5lck5vZGUgewogcHJpdmF0ZToKICAgICBFbnRpdHlSZWZlcmVuY2UoRG9jdW1l
bnQmLCBjb25zdCBTdHJpbmcmIGVudGl0eU5hbWUpOwotCi0gICAgdmlydHVhbCBTdHJpbmcgbm9k
ZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwo
RG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKLQotICAgIFN0cmluZyBtX2Vu
dGl0eU5hbWU7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZl
cmVuY2UuaWRsCmluZGV4IDZkMDUzNWY5YmMxZGFhNzkxNzgzMWVmZGJlNmFiZDA3YWU5YjdkYmEu
LmVmZjk1YTAzZTNhNGUyZmQzNmIyZTIxOGM2MDk2NDgzOGNjNmU3ZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsCkBAIC0xNyw4ICsxNywxMiBAQAogICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZF
X0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkg
JiYgTEFOR1VBR0VfR09CSkVDVAorCiBbCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCiAgICAgSlNH
ZW5lcmF0ZVRvSlNPYmplY3QKIF0gaW50ZXJmYWNlIEVudGl0eVJlZmVyZW5jZSA6IE5vZGUgewog
fTsKIAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggNDM2MmQ2NTZkYzQ3ZmQ2NDMzNWI0Njg2
MTRiZTczNjU4ODEzMDJiYS4uZGVmMjRjZTY3MDk1NTY2NGJjYmExMzUwNDcxNmZjNDE3Y2FmNjMz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTAzLDcgKzEwMyw2IEBAIHZvaWQgTm9kZTo6ZHVtcFN0
YXRpc3RpY3MoKQogICAgIHNpemVfdCB0ZXh0Tm9kZXMgPSAwOwogICAgIHNpemVfdCBjZGF0YU5v
ZGVzID0gMDsKICAgICBzaXplX3QgY29tbWVudE5vZGVzID0gMDsKLSAgICBzaXplX3QgZW50aXR5
UmVmZXJlbmNlTm9kZXMgPSAwOwogICAgIHNpemVfdCBlbnRpdHlOb2RlcyA9IDA7CiAgICAgc2l6
ZV90IHBpTm9kZXMgPSAwOwogICAgIHNpemVfdCBkb2N1bWVudE5vZGVzID0gMDsKQEAgLTE2OCwx
MCArMTY3LDYgQEAgdm9pZCBOb2RlOjpkdW1wU3RhdGlzdGljcygpCiAgICAgICAgICAgICAgICAg
Kytjb21tZW50Tm9kZXM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERTogewotICAgICAgICAgICAgICAg
ICsrZW50aXR5UmVmZXJlbmNlTm9kZXM7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9CiAgICAgICAgICAgICBjYXNlIEVOVElUWV9OT0RFOiB7CiAgICAgICAgICAgICAgICAg
KytlbnRpdHlOb2RlczsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIxMSw3ICsyMDYsNiBA
QCB2b2lkIE5vZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIFRl
eHQgbm9kZXM6ICV6dVxuIiwgdGV4dE5vZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIENE
QVRBU2VjdGlvbiBub2RlczogJXp1XG4iLCBjZGF0YU5vZGVzKTsKICAgICBwcmludGYoIiAgTnVt
YmVyIG9mIENvbW1lbnQgbm9kZXM6ICV6dVxuIiwgY29tbWVudE5vZGVzKTsKLSAgICBwcmludGYo
IiAgTnVtYmVyIG9mIEVudGl0eVJlZmVyZW5jZSBub2RlczogJXp1XG4iLCBlbnRpdHlSZWZlcmVu
Y2VOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBFbnRpdHkgbm9kZXM6ICV6dVxuIiwg
ZW50aXR5Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgUHJvY2Vzc2luZ0luc3RydWN0
aW9uIG5vZGVzOiAlenVcbiIsIHBpTm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgRG9j
dW1lbnQgbm9kZXM6ICV6dVxuIiwgZG9jdW1lbnROb2Rlcyk7CkBAIC0zODQsMTQgKzM3OCw4IEBA
IFN0cmluZyBOb2RlOjpub2RlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0K
IAotdm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiAvKm5vZGVWYWx1ZSovLCBF
eGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgTm9kZTo6c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYg
Lypub2RlVmFsdWUqLywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgLy8gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOiBSYWlzZWQgd2hlbiB0aGUgbm9kZSBpcyByZWFkb25seQotICAgIGlmIChp
c1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gQnkgZGVmYXVsdCwgc2V0dGlu
ZyBub2RlVmFsdWUgaGFzIG5vIGVmZmVjdC4KIH0KIApAQCAtODkwLDExICs4NzgsNiBAQCB2b2lk
IE5vZGU6OmNoZWNrU2V0UHJlZml4KGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4LCBFeGNlcHRp
b25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChpc1JlYWRPbmx5
Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gRklYTUU6IFJhaXNlIE5BTUVTUEFDRV9FUlIg
aWYgcHJlZml4IGlzIG1hbGZvcm1lZCBwZXIgdGhlIE5hbWVzcGFjZXMgaW4gWE1MIHNwZWNpZmlj
YXRpb24uCiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5vZGVOYW1lc3BhY2VVUkkgPSBuYW1l
c3BhY2VVUkkoKTsKQEAgLTE0MjIsNyArMTQwNSw2IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFRleHRD
b250ZW50KGNvbnN0IE5vZGUqIG5vZGUsIGJvb2wgY29udmVydEJSc1RvTmV3bGluZXMsIGJvb2wm
CiAgICAgICAgIH0KICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJV
VEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNl
IE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGlzTnVsbFN0cmluZyA9IGZh
bHNlOwogICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewpAQCAtMTQ1OCw3ICsxNDQwLDYgQEAg
dm9pZCBOb2RlOjpzZXRUZXh0Q29udGVudChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNlIEVMRU1FTlRfTk9ERToK
ICAgICAgICAgY2FzZSBBVFRSSUJVVEVfTk9ERToKLSAgICAgICAgY2FzZSBFTlRJVFlfUkVGRVJF
TkNFX05PREU6CiAgICAgICAgIGNhc2UgRE9DVU1FTlRfRlJBR01FTlRfTk9ERTogewogICAgICAg
ICAgICAgUmVmPENvbnRhaW5lck5vZGU+IGNvbnRhaW5lcihkb3duY2FzdDxDb250YWluZXJOb2Rl
PigqdGhpcykpOwogICAgICAgICAgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihj
b250YWluZXIpOwpAQCAtMTQ3OCw3ICsxNDU5LDYgQEAgdm9pZCBOb2RlOjpzZXRUZXh0Q29udGVu
dChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiBFbGVtZW50KiBOb2Rl
OjphbmNlc3RvckVsZW1lbnQoKSBjb25zdAogewotICAgIC8vIEluIHRoZW9yeSwgdGhlcmUgY2Fu
IGJlIEVudGl0eVJlZmVyZW5jZSBub2RlcyBiZXR3ZWVuIGVsZW1lbnRzLCBidXQgdGhpcyBpcyBj
dXJyZW50bHkgbm90IHN1cHBvcnRlZC4KICAgICBmb3IgKENvbnRhaW5lck5vZGUqIGFuY2VzdG9y
ID0gcGFyZW50Tm9kZSgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50Tm9k
ZSgpKSB7CiAgICAgICAgIGlmIChpczxFbGVtZW50PigqYW5jZXN0b3IpKQogICAgICAgICAgICAg
cmV0dXJuIGRvd25jYXN0PEVsZW1lbnQ+KGFuY2VzdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDA0ZTM4
ZDI1YjQzYjQwZmJkNWIzNjRjZjQzM2U3N2MzYzEwNzM1YzQuLmEyZmM0Mzg4OTQwZTIyY2Y3NWJm
NTk1Yjc0ODlkZDgzOTJkNTAxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMTI1LDcgKzEyNSw2IEBAIHB1
YmxpYzoKICAgICAgICAgQVRUUklCVVRFX05PREUgPSAyLAogICAgICAgICBURVhUX05PREUgPSAz
LAogICAgICAgICBDREFUQV9TRUNUSU9OX05PREUgPSA0LAotICAgICAgICBFTlRJVFlfUkVGRVJF
TkNFX05PREUgPSA1LAogICAgICAgICBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREUgPSA3LAog
ICAgICAgICBDT01NRU5UX05PREUgPSA4LAogICAgICAgICBET0NVTUVOVF9OT0RFID0gOSwKQEAg
LTEzNCw2ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFhQQVRIX05BTUVTUEFDRV9OT0RFID0g
MTMsCiAgICAgfTsKICAgICBlbnVtIERlcHJlY2F0ZWROb2RlVHlwZSB7CisgICAgICAgIEVOVElU
WV9SRUZFUkVOQ0VfTk9ERSA9IDUsCiAgICAgICAgIEVOVElUWV9OT0RFID0gNiwKICAgICAgICAg
Tk9UQVRJT05fTk9ERSA9IDEyLAogICAgIH07CkBAIC00MTcsNyArNDE3LDYgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNJblNoYWRvd1RyZWUoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzSW5TaGFk
b3dUcmVlRmxhZyk7IH0KICAgICBib29sIGlzSW5UcmVlU2NvcGUoKSBjb25zdCB7IHJldHVybiBn
ZXRGbGFnKHN0YXRpY19jYXN0PE5vZGVGbGFncz4oSW5Eb2N1bWVudEZsYWcgfCBJc0luU2hhZG93
VHJlZUZsYWcpKTsgfQogCi0gICAgYm9vbCBpc1JlYWRPbmx5Tm9kZSgpIGNvbnN0IHsgcmV0dXJu
IG5vZGVUeXBlKCkgPT0gRU5USVRZX1JFRkVSRU5DRV9OT0RFOyB9CiAgICAgYm9vbCBpc0RvY3Vt
ZW50VHlwZU5vZGUoKSBjb25zdCB7IHJldHVybiBub2RlVHlwZSgpID09IERPQ1VNRU5UX1RZUEVf
Tk9ERTsgfQogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHVuc2lnbmVkIGNvdW50Q2hpbGROb2RlcygpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAppbmRleCA0OGEwYTE5MmE3YmVlMGNmZjIw
OWQ1ZWE0ZDg5YzljMzFhMDRjNzA5Li5kYTlkMDIzYjI1ZThmOWYyYmY1N2FjODgxMDM4ZDcyNWQ1
ZTFjNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcApAQCAtNzYsOCArNzYsOCBA
QCBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVUb1ByZXZpb3VzKE5vZGUqIHJv
b3QpCiAgICAgcmV0dXJuIG5vZGU7CiB9CiAKLU5vZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKFBh
c3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRy
PE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCi0gICAg
OiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVy
KSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKK05vZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKFBh
c3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRy
PE5vZGVGaWx0ZXI+JiYgZmlsdGVyKQorICAgIDogTm9kZUl0ZXJhdG9yQmFzZShyb290Tm9kZSwg
d2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpCiAgICAgLCBtX3JlZmVyZW5jZU5vZGUocm9v
dCgpLCB0cnVlKQogewogICAgIHJvb3QoKS0+ZG9jdW1lbnQoKS5hdHRhY2hOb2RlSXRlcmF0b3Io
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKaW5kZXggOTcxOTI3NGEzZGExYjk3NTQw
NmFhNzFjYzVlOWVhZTVmM2M3ZDMzNS4uNGYxNTA3ZGUwM2FjMzAzZTVmMTgwYjMzMTEyNjgwNzRj
Njk4MDg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaApAQCAtMzcsOSArMzcsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBOb2RlSXRlcmF0b3IgOiBwdWJsaWMgU2Ny
aXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxOb2RlSXRlcmF0b3I+LCBwdWJsaWMgTm9k
ZUl0ZXJhdG9yQmFzZSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPE5vZGVJdGVy
YXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hh
dFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJl
ZmVyZW5jZXMpCisgICAgICAgIHN0YXRpYyBSZWY8Tm9kZUl0ZXJhdG9yPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9k
ZUZpbHRlcj4mJiBmaWx0ZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE5vZGVJdGVyYXRvcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRl
ciksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE5vZGVJdGVyYXRvcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRl
cikpKTsKICAgICAgICAgfQogICAgICAgICB+Tm9kZUl0ZXJhdG9yKCk7CiAKQEAgLTU0LDcgKzU0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIG5vZGVXaWxsQmVSZW1vdmVk
KE5vZGUmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIE5vZGVJdGVyYXRvcihQYXNzUmVmUHRy
PE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBi
b29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworICAgICAgICBOb2RlSXRlcmF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4m
Jik7CiAKICAgICAgICAgc3RydWN0IE5vZGVQb2ludGVyIHsKICAgICAgICAgICAgIFJlZlB0cjxO
b2RlPiBub2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbAppbmRleCAxMjAyNWRlNmI4
YjQ5NDczZWZkN2Y3ODQwMTFmNDFmNzYxMzA3YjY3Li4yMzExMmQ5OTQzZjU5MzM3YWZmMTVkYWNj
N2MxZWU1YjdhNWY3OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJh
dG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbApAQCAtMjYs
NyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJvb3Q7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdzsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7CisjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVf
QykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biBleHBhbmRFbnRpdHlSZWZlcmVuY2VzOworI2VuZGlmCiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE5vZGUgcmVmZXJlbmNlTm9kZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwb2lu
dGVyQmVmb3JlUmVmZXJlbmNlTm9kZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggNTJlMmYxOTMy
MTY3YWZjODVhNTE5ZGU1MDlmZDUxYmFmMTYwOTQ5My4uOGMxZTJiMGQ4MjQwN2NkZTIzMDZhZmYz
NmIxNWFhNDkxNzRhMzRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC01NzIsNyArNTcyLDYgQEAg
c3RhdGljIGlubGluZSB1bnNpZ25lZCBsZW5ndGhPZkNvbnRlbnRzSW5Ob2RlKE5vZGUqIG5vZGUp
CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDaGFyYWN0ZXJEYXRhPigqbm9kZSkubGVuZ3RoKCk7
CiAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVf
Tk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIE5v
ZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAg
ICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgpAQCAtNzMzLDcgKzczMiw2IEBA
IFJlZlB0cjxOb2RlPiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMoQWN0aW9u
VHlwZSBhY3Rpb24sIFBhc3NSZWZQdHI8CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm9kZTo6
RUxFTUVOVF9OT0RFOgogICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6Ci0gICAgY2FzZSBO
b2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RF
OgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9D
VU1FTlRfRlJBR01FTlRfTk9ERToKQEAgLTg1NiwxMyArODU0LDYgQEAgdm9pZCBSYW5nZTo6aW5z
ZXJ0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHBycE5ld05vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSOiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVyIG9mIGVpdGhlciBib3VuZGFyeS1w
b2ludCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9ubHkuCi0gICAgaWYgKGNvbnRhaW5l
ZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIEhJRVJBUkNIWV9SRVFVRVNUX0VS
UjogUmFpc2VkIGlmIHRoZSBjb250YWluZXIgb2YgdGhlIHN0YXJ0IG9mIHRoZSBSYW5nZSBpcyBv
ZiBhIHR5cGUgdGhhdAogICAgIC8vIGRvZXMgbm90IGFsbG93IGNoaWxkcmVuIG9mIHRoZSB0eXBl
IG9mIG5ld05vZGUgb3IgaWYgbmV3Tm9kZSBpcyBhbiBhbmNlc3RvciBvZiB0aGUgY29udGFpbmVy
LgogCkBAIC0xMDIyLDcgKzEwMTMsNiBAQCBOb2RlKiBSYW5nZTo6Y2hlY2tOb2RlV09mZnNldChO
b2RlKiBuLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAgICAgY2Fz
ZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VN
RU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNl
IE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpYUEFUSF9O
QU1FU1BBQ0VfTk9ERTogewogICAgICAgICAgICAgaWYgKCFvZmZzZXQpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMDUyLDcgKzEwNDIsNiBAQCB2b2lkIFJhbmdlOjpjaGVj
a05vZGVCQShOb2RlKiBuLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAgICAgY2FzZSBO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RF
OgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2RlOjpF
TlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNU
UlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgY2Fz
ZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEwNzIsNyArMTA2MSw2IEBAIHZvaWQg
UmFuZ2U6OmNoZWNrTm9kZUJBKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAg
ICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVO
VF9UWVBFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBj
YXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9D
RVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgog
ICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTE0OSw3ICsxMTM3
LDYgQEAgdm9pZCBSYW5nZTo6c2VsZWN0Tm9kZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAg
ICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9k
ZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNF
X05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9E
RToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBO
b2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTExNjUsNyArMTE1Miw2IEBAIHZvaWQgUmFu
Z2U6OnNlbGVjdE5vZGUoTm9kZSogcmVmTm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAg
IGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZ
UEVfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2Ug
Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJ
TkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAg
ICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMjA0LDcgKzExOTAsNiBA
QCB2b2lkIFJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMoTm9kZSogcmVmTm9kZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6
CiAgICAgICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgICAgICAgICBjYXNl
IE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVS
RU5DRV9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9O
X05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgICAgIGNh
c2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMjQzLDIwICsxMjI4LDEyIEBAIHZv
aWQgUmFuZ2U6OnN1cnJvdW5kQ29udGVudHMoUGFzc1JlZlB0cjxOb2RlPiBwYXNzTmV3UGFyZW50
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9OX05P
REU6CiAgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6
OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6
CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAg
ICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BB
Q0VfTk9ERToKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIC8vIE5PX01PRElGSUNB
VElPTl9BTExPV0VEX0VSUjogUmFpc2VkIGlmIGFuIGFuY2VzdG9yIGNvbnRhaW5lciBvZiBlaXRo
ZXIgYm91bmRhcnktcG9pbnQgb2YKLSAgICAvLyB0aGUgUmFuZ2UgaXMgcmVhZC1vbmx5LgotICAg
IGlmIChjb250YWluZWRCeVJlYWRPbmx5KCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBSYWlzZSBh
IEhJRVJBUkNIWV9SRVFVRVNUX0VSUiBpZiBzdGFydENvbnRhaW5lcigpIGRvZXNuJ3QgYWNjZXB0
IGNoaWxkcmVuIGxpa2UgbmV3UGFyZW50LgogICAgIE5vZGUqIHBhcmVudE9mTmV3UGFyZW50ID0g
JnN0YXJ0Q29udGFpbmVyKCk7CiAKQEAgLTEzMzAsMzYgKzEzMDcsMTYgQEAgdm9pZCBSYW5nZTo6
Y2hlY2tEZWxldGVFeHRyYWN0KEFjdGlvblR5cGUgYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykK
ICAgICBpZiAoIWNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGlmIChhY3Rpb24gIT0gRXh0cmFjdCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgTm9kZSog
cGFzdExhc3QgPSBwYXN0TGFzdE5vZGUoKTsKICAgICBmb3IgKE5vZGUqIG4gPSBmaXJzdE5vZGUo
KTsgbiAhPSBwYXN0TGFzdDsgbiA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm4pKSB7Ci0gICAgICAg
IGlmIChuLT5pc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgICAgICBlYyA9IE5PX01PRElGSUNB
VElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIGlmIChhY3Rpb24gPT0gRXh0cmFjdCAmJiBuLT5ub2RlVHlwZSgpID09IE5vZGU6OkRPQ1VN
RU5UX1RZUEVfTk9ERSkgeworICAgICAgICBpZiAobi0+aXNEb2N1bWVudFR5cGVOb2RlKCkpIHsK
ICAgICAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQotCi0gICAgaWYgKGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSkg
ewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLX0KLQotYm9vbCBSYW5nZTo6Y29udGFpbmVkQnlSZWFkT25seSgpIGNvbnN0
Ci17Ci0gICAgZm9yIChOb2RlKiBuID0gJnN0YXJ0Q29udGFpbmVyKCk7IG47IG4gPSBuLT5wYXJl
bnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkpCi0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgZm9yIChOb2RlKiBuID0gJmVuZENvbnRhaW5lcigp
OyBuOyBuID0gbi0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgIGlmIChuLT5pc1JlYWRPbmx5Tm9k
ZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsK
IH0KIAogTm9kZSogUmFuZ2U6OmZpcnN0Tm9kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCmluZGV4IGM4
ZjI5OTNhZGQwZDE1OWZhYzUyYmRhYzdmMWNjOTMwYmRlNWY2ZWUuLjRjMTExNjIwYTcyZDcxNzg1
ODI1NWNkOWUwMzUxZTM0ZWViZTI0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9S
YW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC0xNjEsNyArMTYxLDYg
QEAgcHJpdmF0ZToKIAogICAgIE5vZGUqIGNoZWNrTm9kZVdPZmZzZXQoTm9kZSosIGludCBvZmZz
ZXQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICB2b2lkIGNoZWNrTm9kZUJBKE5vZGUqLCBF
eGNlcHRpb25Db2RlJikgY29uc3Q7Ci0gICAgYm9vbCBjb250YWluZWRCeVJlYWRPbmx5KCkgY29u
c3Q7CiAKICAgICBlbnVtIEFjdGlvblR5cGUgeyBEZWxldGUsIEV4dHJhY3QsIENsb25lIH07CiAg
ICAgdm9pZCBjaGVja0RlbGV0ZUV4dHJhY3QoQWN0aW9uVHlwZSwgRXhjZXB0aW9uQ29kZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDA0Y2VmNWNhMWQxNDgzN2IyN2FmN2Y3NDI5
ZDY3ZDJmY2I3MGYzODYuLjQ1NTQ3ZmViMjRlMmJiYzUxMmM1MjRkZjNlMzYyN2VkMmVlZjA3NDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTEwOSw3ICsxMDksNiBAQCBib29sIFNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICBjYXNl
IENPTU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIENEQVRBX1NFQ1RJ
T05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJh
dmVyc2FsLmNwcAppbmRleCA3NGE5MjhmN2NjMDI5YjZmMzNjZmRjZTUxYTFmMmEzYTMxZmVkYjUy
Li4zYzRhOTU1YjExMTA2Y2RhMjIyODVhOWY1MjcxNzA3YjFkOWM3N2YxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJhdmVyc2FsLmNwcApAQCAtMzAsMTggKzMwLDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+IHJv
b3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIG5v
ZGVGaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKK05vZGVJdGVyYXRvckJhc2U6
Ok5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBub2RlRmlsdGVyKQogICAgIDogbV9y
b290KHJvb3ROb2RlKQogICAgICwgbV93aGF0VG9TaG93KHdoYXRUb1Nob3cpCiAgICAgLCBtX2Zp
bHRlcihXVEY6Om1vdmUobm9kZUZpbHRlcikpCi0gICAgLCBtX2V4cGFuZEVudGl0eVJlZmVyZW5j
ZXMoZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKIHsKIH0KIAogc2hvcnQgTm9kZUl0ZXJhdG9yQmFz
ZTo6YWNjZXB0Tm9kZShOb2RlKiBub2RlKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBUbyBoYW5k
bGUgWE1MIHByb3Blcmx5IHdlIHdvdWxkIGhhdmUgdG8gY2hlY2sgbV9leHBhbmRFbnRpdHlSZWZl
cmVuY2VzLgotCiAgICAgLy8gVGhlIGJpdCB0d2lkZGxpbmcgaGVyZSBpcyBkb25lIHRvIG1hcCBE
T00gbm9kZSB0eXBlcywgd2hpY2ggYXJlIGdpdmVuIGFzIGludGVnZXJzIGZyb20KICAgICAvLyAx
IHRocm91Z2ggMTQsIHRvIHdoYXRUb1Nob3cgYml0IG1hc2tzLgogICAgIGlmICghKCgoMSA8PCAo
bm9kZS0+bm9kZVR5cGUoKSAtIDEpKSAmIG1fd2hhdFRvU2hvdykpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNh
bC5oCmluZGV4IGVkNmU4ZGRiZDBjMjY2MTVlMzM3YTJlNDJjOWI5ZDkzNThmOGZkZGEuLmZmYmQ1
NDliMWRlODQ4NjA0M2VlNGQwYjQyMGE3ZGRjYTc0OGZhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2Fs
LmgKQEAgLTM4LDE3ICszOCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUq
IHJvb3QoKSBjb25zdCB7IHJldHVybiBtX3Jvb3QuZ2V0KCk7IH0KICAgICAgICAgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93KCkgY29uc3QgeyByZXR1cm4gbV93aGF0VG9TaG93OyB9CiAgICAgICAg
IE5vZGVGaWx0ZXIqIGZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyLmdldCgpOyB9Ci0g
ICAgICAgIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fZXhw
YW5kRW50aXR5UmVmZXJlbmNlczsgfQorICAgICAgICBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5j
ZXMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBO
b2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7Cisg
ICAgICAgIE5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3
aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAgIHNob3J0IGFjY2VwdE5v
ZGUoTm9kZSopIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPE5vZGU+IG1f
cm9vdDsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX3doYXRUb1Nob3c7CiAgICAgICAgIFJlZlB0
cjxOb2RlRmlsdGVyPiBtX2ZpbHRlcjsKLSAgICAgICAgYm9vbCBtX2V4cGFuZEVudGl0eVJlZmVy
ZW5jZXM7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVX
YWxrZXIuY3BwCmluZGV4IGFkMGFjZTE5OWI3ZGE2OWVlY2IyMDQzYTI4YzllZjQ0ZmMwNjNkNDYu
Ljg3NzQ4MmFmZjQ3YTNjNTQzNGFmNzUzMmU2ZGMwNTNkMTUxM2NkMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVdhbGtlci5jcHAKQEAgLTMzLDggKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1UcmVlV2Fsa2VyOjpUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4
cGFuZEVudGl0eVJlZmVyZW5jZXMpCi0gICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3
aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKK1Ry
ZWVXYWxrZXI6OlRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCisgICAgOiBOb2Rl
SXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkKICAg
ICAsIG1fY3VycmVudChyb290KCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVdhbGtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaAppbmRleCBi
ZjY5YmRlY2UwOTliY2QxNGRiYWZkNThmMDE3Y2ZiZDg3YjUxNTYzLi4yMjhmMjNkNDc0NmEyMTU5
YmI1MGJmNmFhNjI3ODhiNzMzNjRmYjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVdhbGtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKQEAgLTM3
LDkgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgVHJlZVdhbGtlciA6
IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPFRyZWVXYWxrZXI+LCBw
dWJsaWMgTm9kZUl0ZXJhdG9yQmFzZSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVm
PFRyZWVXYWxrZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRF
bnRpdHlSZWZlcmVuY2VzKQorICAgICAgICBzdGF0aWMgUmVmPFRyZWVXYWxrZXI+IGNyZWF0ZShQ
YXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0
cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVHJlZVdhbGtlcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZp
bHRlciksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFRyZWVXYWxrZXIocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0
ZXIpKSk7CiAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKICAgICAgICAg
Tm9kZSogY3VycmVudE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQuZ2V0KCk7IH0KQEAg
LTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOb2RlKiBuZXh0Tm9k
ZSgpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgVHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBib29sIGV4
cGFuZEVudGl0eVJlZmVyZW5jZXMpOworICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9k
ZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYpOwogICAg
ICAgICAKICAgICAgICAgTm9kZSogc2V0Q3VycmVudChQYXNzUmVmUHRyPE5vZGU+KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVXYWxrZXIuaWRsCmluZGV4IDQ4MDllZTNkNGYxZDFmZDQwODVlMWExMTk3M2E4
ZGY0MDIwZTQ3MTUuLmFkNWNiNWQ2NDAzMTBmOGMwMzg5NjFmNTEzMmQ1YmRkZDIzNjZjN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKQEAgLTI2LDcgKzI2LDkgQEAKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZSByb290OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3c7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVGaWx0ZXIgZmlsdGVy
OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXM7
ICAgICAgICAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9P
QkpFQ1RJVkVfQworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4cGFuZEVudGl0eVJl
ZmVyZW5jZXM7CisjZW5kaWYKICAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUg
Tm9kZSBjdXJyZW50Tm9kZTsKIAogICAgIE5vZGUgcGFyZW50Tm9kZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCA4MzQ1NTcyMDQ5NmEwZDEw
ZGQwNmZjMGVhNGVlYmY0MzhjYjRlYzI2Li43MTJhYmZhZjhjZWNjYzhmMjc3NmVhNTA1ODZkYzNh
MDEwYWNmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3Vt
dWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9y
LmNwcApAQCAtNTczLDcgKzU3Myw2IEBAIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFN0
YXJ0TWFya3VwKFN0cmluZ0J1aWxkZXImIHJlc3VsdCwgY29uc3QgTm9kZSYgbm9kCiAgICAgICAg
IGFwcGVuZENEQVRBU2VjdGlvbihyZXN1bHQsIGRvd25jYXN0PENEQVRBU2VjdGlvbj4obm9kZSku
ZGF0YSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToK
LSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIE5vZGU6OlhQ
QVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhVdGlsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwCmluZGV4IDZmNjY0ZDg0MDFmZjcxNzA1
MjY4NjAzZTA0MWViZjc3YjU4ZjNjNDQuLmJlYWRiNGRmMjBmZThlNDQwYTI1MzRjMjE5NGNjODg3
YTY0NzY2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwCkBAIC03MSw3ICs3MSw2IEBAIGJv
b2wgaXNWYWxpZENvbnRleHROb2RlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICBj
YXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKLSAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlf
UkVGRVJFTkNFX05PREU6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2Ug
Tm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgcmV0dXJuICEobm9kZS0+cGFyZW50Tm9kZSgp
ICYmIG5vZGUtPnBhcmVudE5vZGUoKS0+aXNBdHRyaWJ1dGVOb2RlKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50
ZXJuYWxzLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NSW50ZXJuYWxzLm1tCmluZGV4IGU1YzZmMDJmYzhkYzgxMTA4ODgzZWFiNzUwMmM1
MjM4ODhmZTdlZTMuLmQ1N2RmY2QzZWJhMGQyNzU0Njk1MWZlZjRlNDgwNGRiYTIyN2U4NzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTUludGVybmFscy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0KQEAgLTc2LDcgKzc2LDYgQEAgc3Rh
dGljIENsYXNzIFdLRE9NTm9kZUNsYXNzKFdlYkNvcmU6Ok5vZGUqIGltcGwpCiAgICAgICAgIHJl
dHVybiBbV0tET01UZXh0IGNsYXNzXTsKICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkFUVFJJQlVU
RV9OT0RFOgogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgotICAg
IGNhc2UgV2ViQ29yZTo6Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgV2Vi
Q29yZTo6Tm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgIGNhc2UgV2ViQ29y
ZTo6Tm9kZTo6Q09NTUVOVF9OT0RFOgogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RE9DVU1FTlRf
VFlQRV9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCmluZGV4IDg3MTA1YThiNmNmNmRhOTk5MDFjMTFkN2FiYTA0YWZlZDJl
ZjgzZDEuLjg2M2E4NTRlOTZlNGZiMjVjNGY0MDhhNDU2ZjIxY2ZiODk5ZTRiMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
QEAgLTIzMjQsMTEgKzIzMjQsMTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzQXNzaXN0YWJsZUVs
ZW1lbnQoRWxlbWVudCYgbm9kZSkKICAgICBpZiAoaXM8SFRNTFNlbGVjdEVsZW1lbnQ+KG5vZGUp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoaXM8SFRNTFRleHRBcmVhRWxlbWVudD4o
bm9kZSkpCi0gICAgICAgIHJldHVybiAhZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxlbWVudD4obm9k
ZSkuaXNSZWFkT25seU5vZGUoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKGlzPEhU
TUxJbnB1dEVsZW1lbnQ+KG5vZGUpKSB7CiAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0
RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpOwogICAgICAgICAvLyBG
SVhNRTogVGhpcyBsYXVuZHJ5IGxpc3Qgb2YgdHlwZXMgaXMgbm90IGEgZ29vZCB3YXkgdG8gZmFj
dG9yIHRoaXMuIE5lZWQgYSBzdWl0YWJsZSBmdW5jdGlvbiBvbiBIVE1MSW5wdXRFbGVtZW50IGl0
c2VsZi4KLSAgICAgICAgcmV0dXJuICFpbnB1dEVsZW1lbnQuaXNSZWFkT25seU5vZGUoKSAmJiAo
aW5wdXRFbGVtZW50LmlzVGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZUZpZWxkKCkg
fHwgaW5wdXRFbGVtZW50LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50Lmlz
TW9udGhGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpKTsKKyAgICAgICAgcmV0
dXJuIGlucHV0RWxlbWVudC5pc1RleHRGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc0RhdGVGaWVs
ZCgpIHx8IGlucHV0RWxlbWVudC5pc0RhdGVUaW1lTG9jYWxGaWVsZCgpIHx8IGlucHV0RWxlbWVu
dC5pc01vbnRoRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNUaW1lRmllbGQoKTsKICAgICB9CiAg
ICAgcmV0dXJuIG5vZGUuaXNDb250ZW50RWRpdGFibGUoKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxOTM3YzhlZmU5
ZDI0M2U5MjE0NjZkZjBkOTJiMjQ2OGE4MjYzOTJmLi5mNDFkNDAyN2FlN2IyMjEzZmMzZTJmNWM1
NGMxYjI2MTI3MDViMTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDktMTkgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxl
Z2FjeSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBzZXZlcmFsIG91dGRhdGVkIERPTSBjb21w
bGlhbmNlIHRlc3RzLiBVcGRhdGUgLyBSZWJhc2VsaW5lIG90aGVycy4KKwogMjAxNS0wOS0yMSAg
Q2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rLm9oQGNvbGxhYm9yYS5jb20+CiAKICAgICAgICAgW0dU
S10gbWVkaWEgY29udHJvbHMgZG9lcyBub3Qgc2hvdyB1cCB3aGVuIHBsYXlpbmcgdmlkZW8gZmlu
aXNoZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBhMzYyOTI3Zjg2NzFmMzU2
YTlmODFmOTI0Zjg2MDBiYmQyZWM2NjkwLi4yYmNmZWNjYTUyNjlmODE1MDRlNjQ3MzI4ZDY0Yzg2
ZmZjZmFjM2IwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNiBA
QAogMjAxNS0wOS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAg
IERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5l
IFczQyBET00gdGVzdCBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4KKworICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQ6CisKKzIw
MTUtMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBHZXQg
cmlkIG9mIGN1c3RvbSBiaW5kaW5ncyBmb3IgSFRNTExpbmtFbGVtZW50LnNpemVzIHNldHRlcgog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzgyCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxMmE4ZTQ2NjEyNGIxOGZmNGM1YjY0N2VhYmZhNzcwMTU0NGQ4MWQ3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3Q6CWh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmCi1TdGF0dXM6CVN1Y2Nlc3MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5odG1sIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2
ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiNTlhYzM2NjlhMGNkNjc2YjQ2ZTRk
OWZjYjc0ZmI2MTZiMTgzYTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0
OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8v
RU4iIAotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIiA+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0
bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNl
bGZodG1sLmpzIj48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50
cmVmLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxv
YWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25n
Pk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAg
ICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jv
bnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBS
YXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9j
b2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9n
ZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0g
IDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255
bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25u
b3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4x
ODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwv
Ym9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29y
ZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMgYi9MYXlv
dXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlN2Ux
Mjc4NDFlZjk4NmQ2MTY4NjlhMjI0MTQ4MTYxYTM5MTcwMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmIjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLSAgICAgICBjaGVja0ZlYXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9h
ZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0
Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwot
Ly8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAg
IGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBX
aGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8g
ICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAg
IGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLSAgICBUaGUgImNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSh0YWdOYW1lKSIgbWV0aG9kIHJhaXNlcyBhbgotICAgSU5WQUxJRF9DSEFS
QUNURVJfRVJSIERPTUV4Y2VwdGlvbiBpZiB0aGUgc3BlY2lmaWVkCi0gICB0YWdOYW1lIGNvbnRh
aW5zIGFuIGludmFsaWQgY2hhcmFjdGVyLiAKLQotKiBAYXV0aG9yIE5JU1QKLSogQGF1dGhvciBN
YXJ5IEJyYWR5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVs
LTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTI1OEEwMEFGJykvY29u
c3RhbnRbQG5hbWU9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lE
LTM5MkI3NUFFCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVs
LTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTM5MkI3NUFFJykvcmFp
c2VzL2V4Y2VwdGlvbltAbmFtZT0nRE9NRXhjZXB0aW9uJ10vZGVzY3IvcFtzdWJzdHJpbmctYmVm
b3JlKC4sJzonKT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53
My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTI0OQotKi8KLWZ1bmN0aW9uIGRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZigpIHsKLSAgIHZhciBzdWNj
ZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2
YXIgZG9jOwotICAgICAgdmFyIGJhZEVudGl0eVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250
ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNl
OwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiZm9vIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
CX0KLQkKLQkJZWxzZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImludmFs
aWReTmFtZSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0J
CX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZl
bDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDlhZWJlNDA0NDc4ZDhi
MDI1YjUxYzZhZTNjMzY2NWQ1YTM3MDM5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYxCi1TdGF0dXM6CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNy
ZWF0ZWVudHJlZjEuaHRtbCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggM2I2ZDA5Y2RhYmMyMGMxNzI2NWFhZjI1OTc2ZTMzMjQ5ZjVk
MWI5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYxLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi08
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iIAotICAgICJo
dHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIiA+Ci08IS0tIFRoaXMgaXMgY29t
bWVudCBudW1iZXIgMS4tLT4KLTxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+aGNfc3RhZmY8
L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZodG1sLmpzIj48
L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcyI+PC9z
Y3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBN
YXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8
c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlz
IGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50
MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8
L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCww
MDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25n
PgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3Vw
PgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcyBiL0xheW91dFRlc3RzL2Rv
bS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0
ZWVudHJlZjEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ZDFlYzk3NTMyOWIx
N2Q3MjNjZTNjMGU5NzllNWQ1ZjkwZjQwYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcworKysgL2Rldi9udWxs
CkBAIC0xLDE0MCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQg
V2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5v
bG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQg
TWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhp
cyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2Ug
WzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0
cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0y
MDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmll
cyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAq
LwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
ICAgICAgIGNoZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAw
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkg
ewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRo
aXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBh
c3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZl
cnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRo
ZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBv
ZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAg
ICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotQ3JlYXRpbmcgYW4gZW50aXR5IHJlZmVy
ZW5jZSB3aXRoIGFuIGVtcHR5IG5hbWUgc2hvdWxkIGNhdXNlIGFuIElOVkFMSURfQ0hBUkFDVEVS
X0VSUi4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIo
aWQoJ0lELTI1OEEwMEFGJykvY29uc3RhbnRbQG5hbWU9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUidd
KQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgx
MDAxL2xldmVsLW9uZS1jb3JlI0lELTM5MkI3NUFFCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIo
aWQoJ0lELTM5MkI3NUFFJykvcmFpc2VzL2V4Y2VwdGlvbltAbmFtZT0nRE9NRXhjZXB0aW9uJ10v
ZGVzY3IvcFtzdWJzdHJpbmctYmVmb3JlKC4sJzonKT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10p
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTUy
NQotKi8KLWZ1bmN0aW9uIGRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVu
dHJlZjEoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxIikg
IT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgYmFkRW50aXR5UmVmOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAot
CWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0J
Ci0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlS
ZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJmb28iKTsKLSAgICAgICAgfQotCQljYXRj
aChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcg
JiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVE
X0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsKLQkJCQotCXsKLQkJc3VjY2Vz
cyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1
Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7
Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfSU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNz
KTsKLQl9Ci0KLQkJfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9j
dW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0
dmFsdWUyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzEwODJj
YmVhZTRmNmQ4OGRmZDA2NGVkYjRjMmQ5YWFiOTYxNWMzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29y
ZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAs
MCBAQAotVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEv
Y29yZS9oY19hdHRyZ2V0dmFsdWUyCi1TdGF0dXM6CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRtbCBiL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJiN2JiOGM4MTA5Y2Y1OTNkZmVmODViYzljZDM0YWU0
Y2IyODhkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1cz
Qy8vRFREIEhUTUwgNC4wMS8vRU4iIAotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9z
dHJpY3QuZHRkIiA+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ij48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZodG1sLmpzIj48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9IlVU
Ri04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaGNfYXR0cmdldHZhbHVlMi5qcyI+PC9z
Y3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBN
YXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8
c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlz
IGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50
MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8
L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCww
MDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25n
PgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3Vw
PgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdl
dHZhbHVlMi5qcyBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0Y2MyYWUzNWUyN2I0OTQ0
OGQwN2Q2MTY0YjQ5YjBhOTgzMGNjZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdl
dHZhbHVlMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0NiArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9j
b3JlL2hjX2F0dHJnZXR2YWx1ZTIiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAg
IGNoZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwot
ICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAg
IAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0
aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJv
bm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3lu
Y2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdl
IHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUg
dGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAo
Kytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotQ2hlY2tzIHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1
dGUgdGhhdCBjb250YWlucyBlbnRpdHkgcmVmZXJlbmNlcy4KLQotKiBAYXV0aG9yIEN1cnQgQXJu
b2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5
ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMjIxNjYyNDc0Ci0qLwotZnVuY3Rpb24gaGNfYXR0cmdl
dHZhbHVlMigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgImhjX2F0dHJnZXR2YWx1ZTIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRv
YzsKLSAgICAgIHZhciBhY3JvbnltTGlzdDsKLSAgICAgIHZhciB0ZXN0Tm9kZTsKLSAgICAgIHZh
ciBhdHRyaWJ1dGVzOwotICAgICAgdmFyIHRpdGxlQXR0cjsKLSAgICAgIHZhciB2YWx1ZTsKLSAg
ICAgIHZhciB0ZXh0Tm9kZTsKLSAgICAgIHZhciByZXR2YWw7Ci0gICAgICB2YXIgZmlyc3RDaGls
ZDsKLSAgICAgIHZhciBhbHBoYVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9j
IiwgImhjX3N0YWZmIik7Ci0gICAgICBhY3JvbnltTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiYWNyb255bSIpOwotICAgICAgdGVzdE5vZGUgPSBhY3JvbnltTGlzdC5pdGVtKDMpOwot
ICAgICAgYXR0cmlidXRlcyA9IHRlc3ROb2RlLmF0dHJpYnV0ZXM7Ci0KLSAgICAgIHRpdGxlQXR0
ciA9IGF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCJjbGFzcyIpOwotICAgICAgCi0JaWYoCi0JCi0J
KGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1
Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGFscGhhUmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAg
ICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9
PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vz
cyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsKLQkJCWFscGhhUmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGZpcnN0Q2hpbGQgPSB0aXRsZUF0dHIuZmlyc3RD
aGlsZDsKLQotICAgICAgcmV0dmFsID0gdGl0bGVBdHRyLmluc2VydEJlZm9yZShhbHBoYVJlZixm
aXJzdENoaWxkKTsKLSAgICAgIHZhbHVlID0gdGl0bGVBdHRyLnZhbHVlOwotCi0gICAgICBhc3Nl
cnRFcXVhbHMoImF0dHJWYWx1ZTEiLCLOsVnOsSIsdmFsdWUpOwotICAgICAgIAotCQl9Ci0JCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19hdHRyZ2V0dmFsdWUyKCk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFs
dWUwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19u
b2RldmFsdWUwMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3
MGM3YzNkYjFkZmU3OGQ4N2E1MWM0YmFkMTE2ZDI5ODM4ZjFjMGUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwx
L2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiAr
MCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
MS9jb3JlL2hjX25vZGV2YWx1ZTAzCi1TdGF0dXM6CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiODA0NmYxMmZiODhiMmViOWNlNjZmOTYwZjJiMmJkMTlhNDc3
YTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMS8vRU4iIAotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3Qu
ZHRkIiA+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sPjxoZWFkPjxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ij48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InNlbGZodG1sLmpzIj48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaGNfbm9kZXZhbHVlMDMuanMiPjwvc2NyaXB0Pjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZh
bXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+
Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+
Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8i
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+Mjcg
U291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpz
IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MTY3MWFhNGIzOGE2NWExY2VkNGY5NTlhOGIx
NDYzNWYzMTI1ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0y
MDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl
IG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3Jt
YXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVz
ZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2Fy
ZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAK
LQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQt
c29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0
IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0
ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19ub2RldmFs
dWUwMyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAw
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkg
ewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRo
aXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBh
c3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZl
cnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRo
ZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBv
ZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAg
ICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotQW4gZW50aXR5IHJlZmVyZW5jZSBpcyBj
cmVhdGVkLCBzZXROb2RlVmFsdWUgaXMgY2FsbGVkIHdpdGggYSBub24tbnVsbCBhcmd1bWVudCwg
YnV0IGdldE5vZGVWYWx1ZQotc2hvdWxkIHN0aWxsIHJldHVybiBudWxsLgotCi0qIEBhdXRob3Ig
Q3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2
ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC1GNjhEMDgwCi0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUj
SUQtMTFDOTg0OTAKLSovCi1mdW5jdGlvbiBoY19ub2RldmFsdWUwMygpIHsKLSAgIHZhciBzdWNj
ZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImhjX25vZGV2YWx1ZTAz
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgbmV3Tm9kZTsKLSAg
ICAgIHZhciBuZXdWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4
dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAg
ICAgICAgICAgbmV3Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsKLQkJ
CW5ld05vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhc3Nl
cnROb3ROdWxsKCJjcmVhdGVkRW50UmVmTm90TnVsbCIsbmV3Tm9kZSk7Ci1uZXdWYWx1ZSA9IG5l
d05vZGUubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnROdWxsKCJpbml0aWFsbHlOdWxsIixuZXdW
YWx1ZSk7Ci0gICAgbmV3Tm9kZS5ub2RlVmFsdWUgPSAiVGhpcyBzaG91bGQgaGF2ZSBubyBlZmZl
Y3QiOwotCi0gICAgICBuZXdWYWx1ZSA9IG5ld05vZGUubm9kZVZhbHVlOwotCi0gICAgICBhc3Nl
cnROdWxsKCJudWxsQWZ0ZXJBdHRlbXB0ZWRDaGFuZ2UiLG5ld1ZhbHVlKTsKLSAgICAKLQkJfQot
CQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgaGNfbm9kZXZhbHVlMDMoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQ
T1JURURfRVJSLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM4
Y2VjMGE4OWQ0YTVmYWNlNmIzY2IyNDAzNjk4N2Q3OThiNmY4Ny4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94
cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9O
T1RfU1VQUE9SVEVEX0VSUjogU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2
Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIu
anMgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFs
dWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NmJlMDE4YzhhNjYzMDU0OTY3ODNkMWI3NWFjMGU3NGJmMjIzN2RmZi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVs
My94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDExOSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0vLyBleHBvc2UgdGVzdCBmdW5jdGlvbiBuYW1lcwot
ZnVuY3Rpb24gZXhwb3NlVGVzdEZ1bmN0aW9uTmFtZXMoKQotewotcmV0dXJuIFsnWFBhdGhFdmFs
dWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlInXTsKLX0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAg
ICAgICAKLSAgICAgIFRlc3QgaWYgWFBhdGhFdmFsdWF0b3IuZXZhbHVhdGUgcHJvcGVybHkgdGhy
b3dzIE5PVF9TVVBQT1JURURfRVJST1IKLSAgICAKLSogQGF1dGhvciBQaGlsaXBwZSBMZSBIw6ln
YXJldAotKiBAYXV0aG9yIEJvYiBDbGFyeQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIw
MDMvQ1ItRE9NLUxldmVsLTMtWFBhdGgtMjAwMzAzMzEveHBhdGgjWFBhdGhFdmFsdWF0b3ItZXZh
bHVhdGUKLSovCi1mdW5jdGlvbiBYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVE
X0VSUigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgIlhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSIikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgeHBFdmFsdWF0b3I7Ci0gICAgICB2
YXIgcmVzdWx0OwotICAgICAgdmFyIG51bGxOU1Jlc29sdmVyID0gbnVsbDsKLQotICAgICAgdmFy
IG51bGxSZXN1bHQgPSBudWxsOwotCi0gICAgICB2YXIgY29udGV4dE5vZGU7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICB4cEV2YWx1YXRvciA9
IGNyZWF0ZVhQYXRoRXZhbHVhdG9yKGRvYyk7Ci1jb250ZXh0Tm9kZSA9IGRvYy5jcmVhdGVFbnRp
dHlSZWZlcmVuY2UoImVudGl0eW5hbWUiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNl
OwotCQl0cnkgewotICAgICAgICAgICAgcmVzdWx0ID0geHBFdmFsdWF0b3IuZXZhbHVhdGUoIi8v
Zm9vOmJhciIsY29udGV4dE5vZGUsbnVsbE5TUmVzb2x2ZXIsMCxudWxsUmVzdWx0KTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19O
T1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICBYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigp
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhF
dmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnIGIvTGF5b3V0VGVzdHMvZG9t
L3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9F
UlIuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2I4YmRjMWM2ZDQwOTU5NmUy
YWU0ODQyMGQ3YmU3Y2U5MTgyZThmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVh
dG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDQg
KzAsMCBAQAotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOm5p
c3Q9Imh0dHA6Ly93d3cubmlzdC5nb3YiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIi8+DQotPHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCIgc3JjPSJYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyIvPg0K
LTxzY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHNyYz0ic3ZndW5p
dC5qcyIvPg0KLTwvc3ZnPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwz
L3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25f
ZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxMGE3ZGNjNmE2NDBmN2Y2ZjA2Y2NiZjRiZTA3MDYwNTI1NTk0NzgwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9S
VEVEX0VSUi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1YUGF0aEV4
cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlI6IFN1Y2Nlc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRo
L1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYWNmNjE0NjYxMDkzY2NmY2M1MTc4Yjg2NGE2YTJjMGIyOWRm
ODY5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotLy8gZXhwb3Nl
IHRlc3QgZnVuY3Rpb24gbmFtZXMKLWZ1bmN0aW9uIGV4cG9zZVRlc3RGdW5jdGlvbk5hbWVzKCkK
LXsKLXJldHVybiBbJ1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUidd
OwotfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAic3RhZmZOUyIpOwotICAg
ICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAlj
YXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91
cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hy
b25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0
YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVz
dCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotLyoqCi0qICAgICAgIAotICAgICAgVGVzdCBpZiBYUGF0aEV4cHJlc3Np
b24uZXZhbHVhdGUgcHJvcGVybHkgdGhyb3dzIE5PVF9TVVBQT1JURURfRVJST1IKLSAgICAKLSog
QGF1dGhvciBQaGlsaXBwZSBMZSBIw6lnYXJldAotKiBAYXV0aG9yIEJvYiBDbGFyeQotKiBAc2Vl
IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDMvQ1ItRE9NLUxldmVsLTMtWFBhdGgtMjAwMzAzMzEv
eHBhdGgjWFBhdGhFeHByZXNzaW9uLWV2YWx1YXRlCi0qLwotZnVuY3Rpb24gWFBhdGhFeHByZXNz
aW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRl
X05PVF9TVVBQT1JURURfRVJSIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAg
ICB2YXIgeHBFdmFsdWF0b3I7Ci0gICAgICB2YXIgcmVzdWx0OwotICAgICAgdmFyIG51bGxOU1Jl
c29sdmVyID0gbnVsbDsKLQotICAgICAgdmFyIG51bGxSZXN1bHQgPSBudWxsOwotCi0gICAgICB2
YXIgY29udGV4dE5vZGU7Ci0gICAgICB2YXIgeHBhdGhFeHByZXNzaW9uOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
ID0gbG9hZChkb2NSZWYsICJkb2MiLCAic3RhZmZOUyIpOwotICAgICAgeHBFdmFsdWF0b3IgPSBj
cmVhdGVYUGF0aEV2YWx1YXRvcihkb2MpOwoteHBhdGhFeHByZXNzaW9uID0geHBFdmFsdWF0b3Iu
Y3JlYXRlRXhwcmVzc2lvbigiLy9mb28iLG51bGxOU1Jlc29sdmVyKTsKLSAgICAgIGNvbnRleHRO
b2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50aXR5bmFtZSIpOwotICAgICAgCi0J
ewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXN1bHQgPSB4cGF0
aEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dE5vZGUsMCxudWxsUmVzdWx0KTsKLSAgICAgICAg
fQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3Vu
ZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1Rf
U1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICBYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhw
cmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcgYi9MYXlvdXRUZXN0cy9kb20v
c3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9F
UlIuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjg2ZDc1MGEzOWRhYWY0NmNi
MDRkOWYxM2EyNzBjZjI1NWNjY2Y2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVz
c2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw0
ICswLDAgQEAKLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpu
aXN0PSJodHRwOi8vd3d3Lm5pc3QuZ292Ij48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCIvPg0KLTxzY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiIHNyYz0iWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIi8+
DQotPHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJzdmd1
bml0LmpzIi8+DQotPC9zdmc+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDJkNmQxNzcwYTEyNzg5OWEyMmFhY2YzNmZjZjk4NjEy
NjA3NzNhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIg
KzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZgotU3Rh
dHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29y
ZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTdl
MTI3ODQxZWY5ODZkNjE2ODY5YTIyNDE0ODE2MWEzOTE3MDAyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEv
Y29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0y
MDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl
IG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3Jt
YXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVz
ZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2Fy
ZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAK
LQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQt
c29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0
IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0
ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiOwotICAgfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotICAgICAgIGNoZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NM
b2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBj
YXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8v
Ci0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAg
ICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAg
IFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0v
LyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAg
ICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotICAgIFRoZSAiY3JlYXRl
RW50aXR5UmVmZXJlbmNlKHRhZ05hbWUpIiBtZXRob2QgcmFpc2VzIGFuCi0gICBJTlZBTElEX0NI
QVJBQ1RFUl9FUlIgRE9NRXhjZXB0aW9uIGlmIHRoZSBzcGVjaWZpZWQKLSAgIHRhZ05hbWUgY29u
dGFpbnMgYW4gaW52YWxpZCBjaGFyYWN0ZXIuIAotCi0qIEBhdXRob3IgTklTVAotKiBAYXV0aG9y
IE1hcnkgQnJhZHkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2
ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9j
b25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUj
SUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2
ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9y
YWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1i
ZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5Ci0qLwotZnVuY3Rpb24gZG9j
dW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmIikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNv
bnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFs
c2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJmb28iKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2Vz
cyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJ
fQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQot
Ci0JfQotCQotCQllbHNlIHsKLQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiaW52
YWxpZF5OYW1lIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAo
dHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJ
YXNzZXJ0VHJ1ZSgidGhyb3dfSU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0K
LQkJfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9j
b3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDgxMDk4MzMyMTA0ZjEwYTlhMDczYWQwMWU0
ZTRhMTNiOGExZTM4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hh
cmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4K
LTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBB
dmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlv
biB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFk
amFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZi
ZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAy
NyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25u
ZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9h
ZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0
ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYxLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGYzYmM5OTg1
YjVjMmI3ZjYwMWExMGY4NGUzOWU2NTM2ODEzNDY4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZjEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjRkMWVjOTc1MzI5YjE3ZDcyM2NlM2MwZTk3OWU1ZDVm
OTBmNDBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0
ZWVudHJlZjEiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNoZWNrRmVhdHVy
ZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotQ3JlYXRpbmcgYW4gZW50aXR5IHJlZmVyZW5jZSB3aXRoIGFuIGVtcHR5
IG5hbWUgc2hvdWxkIGNhdXNlIGFuIElOVkFMSURfQ0hBUkFDVEVSX0VSUi4KLQotKiBAYXV0aG9y
IEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxl
dmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTI1OEEwMEFGJykv
Y29uc3RhbnRbQG5hbWU9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3Jl
I0lELTM5MkI3NUFFCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxl
dmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTM5MkI3NUFFJykv
cmFpc2VzL2V4Y2VwdGlvbltAbmFtZT0nRE9NRXhjZXB0aW9uJ10vZGVzY3IvcFtzdWJzdHJpbmct
YmVmb3JlKC4sJzonKT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTUyNQotKi8KLWZ1bmN0aW9uIGRv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEoKSB7Ci0gICB2YXIg
c3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxIikgIT0gbnVsbCkgcmV0dXJuOwot
ICAgIHZhciBkb2M7Ci0gICAgICB2YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVy
LmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJmb28iKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3Vj
Y2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsK
LQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0J
fQotCi0JfQotCQotCQllbHNlIHsKLQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
Iik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4
LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1
ZSgidGhyb3dfSU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQkJfQotCQot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNy
ZWF0ZWVudHJlZjEueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9j
dW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS54aHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjgzYmFiOTg0YWU3Y2EyYWZlYmNhMDI0ZWMzZDgwYjg3
ZDQ4ZmU4NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmMS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAg
QEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBF
IGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAi
eGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFF
TlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFF
TlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAg
PCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMg
Im5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlv
bjJGaWxlIj4KLSAgIDwhQVRUTElTVCBhY3JvbnltIGRpciBDREFUQSAibHRyIj4KLV0+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJz48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCAgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIi8+PHNjcmlwdCB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08
L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNv
ZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4g
RGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdp
dGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7
IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVw
YXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVs
dGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IEly
dmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBE
YWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8
L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBT
cGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjIwOWMzZTQzNjRlZGM0
NTVkNTRkNDE1MjA5NGUyZTY2YWFkNzYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRy
Z2V0dmFsdWUyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX2F0
dHJnZXR2YWx1ZTIKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWF0dHJWYWx1ZTE6IGFzc2VydEVx
dWFscyBmYWlsZWQsIGFjdHVhbCBZzrEsIGV4cGVjdGVkIM6xWc6xLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuanMgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjYzJhZTM1ZTI3YjQ5NDQ4ZDA3ZDYxNjRiNDliMGE5
ODMwY2NmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDE0NiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNoZWNrRmVhdHVyZSgi
WE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRl
ZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAg
ICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxp
emF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBv
biB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0
ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVk
IGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFu
Z2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVj
dXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotLyoqCi0qIAotQ2hlY2tzIHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUgdGhhdCBjb250YWlu
cyBlbnRpdHkgcmVmZXJlbmNlcy4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0
cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25l
LWNvcmUjSUQtMjIxNjYyNDc0Ci0qLwotZnVuY3Rpb24gaGNfYXR0cmdldHZhbHVlMigpIHsKLSAg
IHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImhjX2F0
dHJnZXR2YWx1ZTIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBh
Y3JvbnltTGlzdDsKLSAgICAgIHZhciB0ZXN0Tm9kZTsKLSAgICAgIHZhciBhdHRyaWJ1dGVzOwot
ICAgICAgdmFyIHRpdGxlQXR0cjsKLSAgICAgIHZhciB2YWx1ZTsKLSAgICAgIHZhciB0ZXh0Tm9k
ZTsKLSAgICAgIHZhciByZXR2YWw7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsKLSAgICAgIHZhciBh
bHBoYVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBhY3JvbnltTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYWNyb255bSIp
OwotICAgICAgdGVzdE5vZGUgPSBhY3JvbnltTGlzdC5pdGVtKDMpOwotICAgICAgYXR0cmlidXRl
cyA9IHRlc3ROb2RlLmF0dHJpYnV0ZXM7Ci0KLSAgICAgIHRpdGxlQXR0ciA9IGF0dHJpYnV0ZXMu
Z2V0TmFtZWRJdGVtKCJjbGFzcyIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVu
dFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIGFscGhhUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5j
ZSgiYWxwaGEiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0
eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlh
c3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQot
CQotCQllbHNlIHsKLQkJCWFscGhhUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxw
aGEiKTsKLSAgICAgIGZpcnN0Q2hpbGQgPSB0aXRsZUF0dHIuZmlyc3RDaGlsZDsKLQotICAgICAg
cmV0dmFsID0gdGl0bGVBdHRyLmluc2VydEJlZm9yZShhbHBoYVJlZixmaXJzdENoaWxkKTsKLSAg
ICAgIHZhbHVlID0gdGl0bGVBdHRyLnZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImF0dHJW
YWx1ZTEiLCLOsVnOsSIsdmFsdWUpOwotICAgICAgIAotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19hdHRyZ2V0dmFsdWUyKCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnhodG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTJlNDAxMzhjNTUwODQ5ZDc5ZDE3YTg0
YTllNDI3YjI4NWVlZmI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUy
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFk
PjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFy
c2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImhjX2F0dHJnZXR2YWx1ZTIuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA3YjFhMjYyZmE4ODE2
ZTk3MWVjMzA3OTZkNzY1OTk0ZWY5OGU1Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9k
ZXZhbHVlMDMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9k
ZXZhbHVlMDMKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlNjE2NzFhYTRiMzhhNjVhMWNlZDRmOTU5YThiMTQ2MzVmMzEyNTg1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzIjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi1BbiBlbnRpdHkgcmVmZXJlbmNlIGlzIGNyZWF0ZWQsIHNldE5vZGVWYWx1ZSBp
cyBjYWxsZWQgd2l0aCBhIG5vbi1udWxsIGFyZ3VtZW50LCBidXQgZ2V0Tm9kZVZhbHVlCi1zaG91
bGQgc3RpbGwgcmV0dXJuIG51bGwuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9u
ZS1jb3JlI0lELUY2OEQwODAKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1E
T00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0xMUM5ODQ5MAotKi8KLWZ1bmN0
aW9uIGhjX25vZGV2YWx1ZTAzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0
aWFsaXphdGlvbihidWlsZGVyLCAiaGNfbm9kZXZhbHVlMDMiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdOb2RlOwotICAgICAgdmFyIG5ld1ZhbHVlOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlm
KAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0J
ewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBuZXdOb2RlID0gZG9j
LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixz
dWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJbmV3Tm9kZSA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIGFzc2VydE5vdE51bGwoImNyZWF0ZWRFbnRS
ZWZOb3ROdWxsIixuZXdOb2RlKTsKLW5ld1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAg
ICAgIGFzc2VydE51bGwoImluaXRpYWxseU51bGwiLG5ld1ZhbHVlKTsKLSAgICBuZXdOb2RlLm5v
ZGVWYWx1ZSA9ICJUaGlzIHNob3VsZCBoYXZlIG5vIGVmZmVjdCI7Ci0KLSAgICAgIG5ld1ZhbHVl
ID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51bGwoIm51bGxBZnRlckF0dGVt
cHRlZENoYW5nZSIsbmV3VmFsdWUpOwotICAgIAotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICBoY19ub2RldmFsdWUwMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjc2NTFlYzg5ZmE4ODBiYjUyNGNhMjRiYWY5ZTFjNTI4
MWZkMmU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBhY3JvbnltIGRp
ciBDREFUQSAibHRyIj4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxo
dG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIv
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCAgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJoY19ub2RldmFsdWUwMy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZh
c2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+
PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAw
MTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291
bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0g
IDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRB
U2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMs
ICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9l
bT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQg
TWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAg
PHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlz
dDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM3OTNlMDRjYjY0ZDliZThh
ZjVmMDZiN2U1Mzg2Y2YyNDZhYmM2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRh
ZG9wdG5vZGUwNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRl
c3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1
bWVudGFkb3B0bm9kZTA2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYuanMgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODA0Yjk0ODE1MjhmZTIwODFmYjNhNGRjM2Q0OWQyNWQwNTVh
OGYyMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDE3NSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRv
cHRub2RlMDYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZva2UgYWRvcHROb2RlIG9u
IGEgbmV3IGRvY3VtZW50IHRvIGFkb3B0IHRoZSBhIG5ldyBBdHRyaWJ1dGUgbm9kZSBoYXZpbmcg
YSBUZXh0IGFuZCBhbiBFbnRpdHlSZWZlcmVuY2UgCi0JY2hpbGQuICBDaGVjayBpZiB0aGlzIGF0
dHJpYnV0ZSBoYXMgYmVlbiBhZG9wdGVkIHN1Y2Nlc3NmdWxseSBieSB2ZXJpZnlpbmcgdGhlIG5v
ZGVOYW1lLCBuYW1lc3BhY2VVUkksIHByZWZpeCwgCi0Jc3BlY2lmaWVkIGFuZCBvd25lckVsZW1l
bnQgYXR0cmlidXRlcyBvZiB0aGUgYWRvcHRlZCBub2RlLiAgQWxzbyB2ZXJpZnkgdGhlIG93bmVy
RG9jdW1lbnQgYXR0cmlidXRlCi0Jb2YgdGhlIGFkb3B0ZWQgbm9kZSBhbmQgdGhlIGFkb3B0ZWQg
Y2hpbGRyZW4gb2YgdGhlIGF0dHJpYnV0ZSBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00t
TGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjRG9jdW1lbnQzLWFkb3B0Tm9kZQotKi8KLWZ1bmN0
aW9uIGRvY3VtZW50YWRvcHRub2RlMDYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVj
a0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGFkb3B0bm9kZTA2IikgIT0gbnVsbCkg
cmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgbmV3RG9jOwotICAgICAgdmFyIGRvbUlt
cGw7Ci0gICAgICB2YXIgbmV3QXR0cjsKLSAgICAgIHZhciBuZXdUZXh0OwotICAgICAgdmFyIG5l
d0VudFJlZjsKLSAgICAgIHZhciBhZG9wdGVkQXR0cjsKLSAgICAgIHZhciBhZG9wdFRleHQ7Ci0g
ICAgICB2YXIgYWRvcHRFbnRSZWY7Ci0gICAgICB2YXIgbm9kZUxpc3Q7Ci0gICAgICB2YXIgbm9k
ZU5hbWU7Ci0gICAgICB2YXIgbm9kZU5hbWVzcGFjZVVSSTsKLSAgICAgIHZhciBub2RlUHJlZml4
OwotICAgICAgdmFyIGF0dHJPd25lckVsZW07Ci0gICAgICB2YXIgaXNTcGVjaWZpZWQ7Ci0gICAg
ICB2YXIgYWRvcHRlZFRleHROb2RlVmFsdWU7Ci0gICAgICB2YXIgYWRvcHRlZEVudFJlZk5vZGVW
YWx1ZTsKLSAgICAgIHZhciBudWxsRG9jVHlwZSA9IG51bGw7Ci0KLSAgICAgIHZhciBhcHBlbmRl
ZENoaWxkOwotICAgICAgdmFyIGRvY0VsZW07Ci0gICAgICB2YXIgcm9vdE5TOwotICAgICAgdmFy
IHJvb3ROYW1lOwotICAgICAgdmFyIHhtbE5TID0gImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4
L25hbWVzcGFjZSI7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYg
KHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhp
cy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAgIHJvb3RO
YW1lID0gZG9jRWxlbS50YWdOYW1lOwotCi0gICAgICByb290TlMgPSBkb2NFbGVtLm5hbWVzcGFj
ZVVSSTsKLQotICAgICAgZG9tSW1wbCA9IGRvYy5pbXBsZW1lbnRhdGlvbjsKLW5ld0RvYyA9IGRv
bUltcGwuY3JlYXRlRG9jdW1lbnQocm9vdE5TLHJvb3ROYW1lLG51bGxEb2NUeXBlKTsKLSAgICAg
IG5ld0F0dHIgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoeG1sTlMsInhtbDpsYW5nIik7Ci0gICAg
ICBuZXdUZXh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0IE5vZGUiKTsKLSAgICAgIG5ld0Vu
dFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBhcHBlbmRl
ZENoaWxkID0gbmV3QXR0ci5hcHBlbmRDaGlsZChuZXdUZXh0KTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBuZXdBdHRyLmFwcGVuZENoaWxkKG5ld0VudFJlZik7Ci0gICAgICBhZG9wdGVkQXR0ciA9
IG5ld0RvYy5hZG9wdE5vZGUobmV3QXR0cik7Ci0gICAgICAKLQlpZigKLQkKLQkoYWRvcHRlZEF0
dHIgIT0gbnVsbCkKLQotCSkgewotCW5vZGVOYW1lID0gYWRvcHRlZEF0dHIubm9kZU5hbWU7Ci0K
LSAgICAgIG5vZGVOYW1lc3BhY2VVUkkgPSBhZG9wdGVkQXR0ci5uYW1lc3BhY2VVUkk7Ci0KLSAg
ICAgIG5vZGVQcmVmaXggPSBhZG9wdGVkQXR0ci5wcmVmaXg7Ci0KLSAgICAgIGF0dHJPd25lckVs
ZW0gPSBhZG9wdGVkQXR0ci5vd25lckVsZW1lbnQ7Ci0KLSAgICAgIGlzU3BlY2lmaWVkID0gYWRv
cHRlZEF0dHIuc3BlY2lmaWVkOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRu
b2RlMDZfbm9kZU5hbWUiLCJ4bWw6bGFuZyIsbm9kZU5hbWUpOwotICAgICAgIGFzc2VydEVxdWFs
cygiZG9jdW1lbnRhZG9wdG5vZGUwNl9uYW1lc3BhY2VVUkkiLHhtbE5TLG5vZGVOYW1lc3BhY2VV
UkkpOwotICAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9wcmVmaXgiLCJ4
bWwiLG5vZGVQcmVmaXgpOwotICAgICAgIGFzc2VydE51bGwoImRvY3VtZW50YWRvcHRub2RlMDZf
b3duZXJEb2MiLGF0dHJPd25lckVsZW0pOwotICAgIGFzc2VydFRydWUoImRvY3VtZW50YWRvcHRu
b2RlMDZfc3BlY2lmaWVkIixpc1NwZWNpZmllZCk7Ci1ub2RlTGlzdCA9IGFkb3B0ZWRBdHRyLmNo
aWxkTm9kZXM7Ci0KLSAgICAgIGFkb3B0VGV4dCA9IG5vZGVMaXN0Lml0ZW0oMCk7Ci0gICAgICBh
ZG9wdEVudFJlZiA9IG5vZGVMaXN0Lml0ZW0oMSk7Ci0gICAgICBhZG9wdGVkVGV4dE5vZGVWYWx1
ZSA9IGFkb3B0VGV4dC5ub2RlVmFsdWU7Ci0KLSAgICAgIGFkb3B0ZWRFbnRSZWZOb2RlVmFsdWUg
PSBhZG9wdEVudFJlZi5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFk
b3B0bm9kZTA2X1RleHROb2RlVmFsdWUiLCJUZXh0IE5vZGUiLGFkb3B0ZWRUZXh0Tm9kZVZhbHVl
KTsKLSAgICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfRW50UmVmTm9kZVZh
bHVlIiwiYWxwaGEiLGFkb3B0ZWRFbnRSZWZOb2RlVmFsdWUpOwotICAgICAgIAotCX0KLQkKLX0K
LQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50YWRvcHRub2RlMDYoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVu
dGFkb3B0bm9kZTA2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50YWRvcHRub2RlMDYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5
MmQ4OTBkYWRiNWE4NzM1OWY0OWZlZDQxOTk0NzM1ODRkMjE3MjAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyAr
MCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9D
VFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgot
ICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAg
IDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAg
IDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4K
LSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVC
TElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90
YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAg
ICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElT
VCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAg
ICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFB
VFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1l
bnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1p
bnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8
L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIv
PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1
bWVudGFkb3B0bm9kZTA2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjhhYjE4ODYxZmJlOGE1MGY1OWM4MTJhZWJkMDUzMzllYTU3
Y2Y1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2Ci1T
dGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL2RvY3VtZW50YWRvcHRub2RlMTYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOGZkNmUyZmRjMzQ3YTM0MTEwNTViZGEyZWRlOWEyMjI5YmU5ZWZlNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3
MCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIg
Q29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVy
b3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRp
Y3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlz
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRo
ZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53
My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQot
Ki8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVz
dC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rp
b24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLUNyZWF0ZSBhIGRvY3VtZW50IGZyYWdtZW50IHdpdGggYW4gZW50
aXR5IHJlZmVyZW5jZSwgYWRvcHQgdGhlIG5vZGUgYW5kIGNoZWNrCi10aGF0IHRoZSBlbnRpdHkg
cmVmZXJlbmNlIHZhbHVlIGNvbWVzIGZyb20gdGhlIGFkb3B0aW5nIGRvY3VtZW50cyBEVEQuCi0K
LSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNEb2N1bWVu
dDMtYWRvcHROb2RlCi0qLwotZnVuY3Rpb24gZG9jdW1lbnRhZG9wdG5vZGUxNigpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50
YWRvcHRub2RlMTYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBk
b2NGcmFnbWVudDsKLSAgICAgIHZhciBjaGlsZExpc3Q7Ci0gICAgICB2YXIgcGFyZW50OwotICAg
ICAgdmFyIGNoaWxkOwotICAgICAgdmFyIGNoaWxkc0F0dHI7Ci0gICAgICB2YXIgZW50UmVmOwot
ICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIGFkb3B0ZWQ7Ci0gICAgICB2YXIgcGFyZW50
SW1wOwotICAgICAgdmFyIGNoaWxkSW1wOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0gICAgICB2
YXIgY2hpbGRBdHRySW1wOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciBhcHBlbmRl
ZENoaWxkOwotICAgICAgdmFyIGF0dHJOb2RlOwotICAgICAgdmFyIGZpcnN0Q2hpbGQ7Ci0gICAg
ICB2YXIgZmlyc3RDaGlsZFR5cGU7Ci0gICAgICB2YXIgZmlyc3RDaGlsZE5hbWU7Ci0gICAgICB2
YXIgZmlyc3RDaGlsZFZhbHVlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWdtZW50ID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVFbGVtZW50KCJwYXJlbnQiKTsKLSAgICAg
IGNoaWxkID0gZG9jLmNyZWF0ZUVsZW1lbnQoImNoaWxkIik7Ci0gICAgICBjaGlsZHNBdHRyID0g
ZG9jLmNyZWF0ZUF0dHJpYnV0ZSgic3RhdGUiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImdhbW1hIik7Ci0gICAgICB0ZXh0Tm9kZSA9IGRvYy5jcmVhdGVUZXh0
Tm9kZSgiVGVzdCIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGNoaWxkc0F0dHIuYXBwZW5kQ2hp
bGQoZW50UmVmKTsKLSAgICAgIGF0dHJOb2RlID0gY2hpbGQuc2V0QXR0cmlidXRlTm9kZShjaGls
ZHNBdHRyKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBjaGlsZC5hcHBlbmRDaGlsZCh0ZXh0Tm9k
ZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKGNoaWxkKTsKLSAg
ICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnbWVudC5hcHBlbmRDaGlsZChwYXJlbnQpOwotICAg
ICAgYWRvcHRlZCA9IGRvYy5hZG9wdE5vZGUoZG9jRnJhZ21lbnQpOwotICAgICAgCi0JaWYoCi0J
Ci0JKGFkb3B0ZWQgIT0gbnVsbCkKLQotCSkgewotCXBhcmVudEltcCA9IGFkb3B0ZWQuZmlyc3RD
aGlsZDsKLQotICAgICAgY2hpbGRJbXAgPSBwYXJlbnRJbXAuZmlyc3RDaGlsZDsKLQotICAgICAg
YXR0cmlidXRlcyA9IGNoaWxkSW1wLmF0dHJpYnV0ZXM7Ci0KLSAgICAgIGNoaWxkQXR0ckltcCA9
IGF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCJzdGF0ZSIpOwotICAgICAgZmlyc3RDaGlsZCA9IGNo
aWxkQXR0ckltcC5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJmaXJzdENoaWxk
Tm90TnVsbCIsZmlyc3RDaGlsZCk7Ci1maXJzdENoaWxkTmFtZSA9IGZpcnN0Q2hpbGQubm9kZU5h
bWU7Ci0KLSAgICAgIGZpcnN0Q2hpbGRWYWx1ZSA9IGZpcnN0Q2hpbGQubm9kZVZhbHVlOwotCi0g
ICAgICBmaXJzdENoaWxkVHlwZSA9IGZpcnN0Q2hpbGQubm9kZVR5cGU7Ci0KLSAgICAgIAotCWlm
KAotCSg1ID09IGZpcnN0Q2hpbGRUeXBlKQotCSkgewotCWFzc2VydEVxdWFscygiZmlyc3RDaGls
ZEVudDNSZWYiLCJnYW1tYSIsZmlyc3RDaGlsZE5hbWUpOwotICAgICAgIAotCX0KLQkKLQkJZWxz
ZSB7Ci0JCQlhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMTYiLCJUZXhhcyIsZmlyc3RD
aGlsZFZhbHVlKTsKLSAgICAgICAKLQkJfQotCQotCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50YWRvcHRub2RlMTYoKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LnhodG1s
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYu
eGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2YmI5ZGUxZmI5MzhiMDc5NzUz
MGYxMTMwYzg3MTg2ZTc2MzdkMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRv
cHRub2RlMTYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJz
aW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3Qu
ZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYj
OTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICIm
Izk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhh
ICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxl
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8
IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAg
ICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBl
bnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBk
YXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMg
Q0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08
aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6
eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZm
LnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0i
VVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGFkb3B0bm9kZTE2Lmpz
Ii8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxl
dGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNj
b3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+
Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0
aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhp
cyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAm
dGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMs
ICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIK
LSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxz
dXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2Vt
PgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGly
ZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0
LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9u
Zz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1
cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5v
ZGUyNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9j
dW1lbnRyZW5hbWVub2RlMjctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkMzczNDQxZDQzMDIxNDkyZjk0MzdkZmI2NjBkYzBlNGZhMzYzODJkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNwotU3RhdHVzCWZhaWx1cmUK
LU1lc3NhZ2UJdGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJfMTogYXNzZXJ0VHJ1ZSBmYWlsZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFt
ZW5vZGUyNy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJl
bmFtZW5vZGUyNy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTY3M2NhY2JjNjg5
NmM2NmNhMjMzMDJmNmEyMWFiNjljZTNkODRhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9j
dW1lbnRyZW5hbWVub2RlMjcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxODkgKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9h
ZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAg
cnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1
cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRp
bmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0
byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJh
aXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNl
dFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0g
ICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJv
dyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWls
ZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBw
cmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAo
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9u
RXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUg
Y29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4g
c2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3Vt
ZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdo
aWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4K
LWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoq
Ci0qIAotCUludm9rZSB0aGUgcmVuYW1lTm9kZSBtZXRob2QgdG8gYXR0ZW1wdCB0byByZW5hbWUg
bmV3IFRleHQsIENvbW1lbnQsIENEYXRhU2VjdGlvbiwKLQlQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24g
YW5kIEVudGl0eVJlZmVyZW5jZSBub2RlcyBvZiBhIG5ldyBEb2N1bWVudC4KLQlDaGVjayBpZiBh
IE5PVF9TVVBQT1JURURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9y
IE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxl
dmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0RvY3VtZW50My1yZW5hbWVOb2RlCi0qLwotZnVuY3Rp
b24gZG9jdW1lbnRyZW5hbWVub2RlMjcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVj
a0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudHJlbmFtZW5vZGUyNyIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5ld0RvYzsKLSAgICAgIHZhciBkb21J
bXBsOwotICAgICAgdmFyIHRleHQ7Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBjZGF0
YTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBlbnRyZWY7Ci0gICAgICB2YXIgcmVuYW1lZFR4
dDsKLSAgICAgIHZhciByZW5hbWVkQ29tbWVudDsKLSAgICAgIHZhciByZW5hbWVkQ2RhdGE7Ci0g
ICAgICB2YXIgcmVuYW1lZFBpOwotICAgICAgdmFyIHJlbmFtZWRFbnRSZWY7Ci0gICAgICB2YXIg
bnVsbERvY1R5cGUgPSBudWxsOwotCi0gICAgICB2YXIgZG9jRWxlbTsKLSAgICAgIHZhciByb290
TlM7Ci0gICAgICB2YXIgcm9vdE5hbWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0K
LSAgICAgIHJvb3ROUyA9IGRvY0VsZW0ubmFtZXNwYWNlVVJJOwotCi0gICAgICByb290TmFtZSA9
IGRvY0VsZW0udGFnTmFtZTsKLQotICAgICAgZG9tSW1wbCA9IGRvYy5pbXBsZW1lbnRhdGlvbjsK
LW5ld0RvYyA9IGRvbUltcGwuY3JlYXRlRG9jdW1lbnQocm9vdE5TLHJvb3ROYW1lLG51bGxEb2NU
eXBlKTsKLSAgICAgIHRleHQgPSBuZXdEb2MuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsKLSAgICAg
IGNvbW1lbnQgPSBuZXdEb2MuY3JlYXRlQ29tbWVudCgiY29tbWVudCIpOwotICAgICAgY2RhdGEg
PSBuZXdEb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJjZGF0YSIpOwotICAgICAgcGkgPSBuZXdEb2Mu
Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJwaXQiLCJwaWQiKTsKLSAgICAgIGVudHJlZiA9
IG5ld0RvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICAKLQl7Ci0JCXN1
Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbmFtZWRUeHQgPSBuZXdEb2Mu
cmVuYW1lTm9kZSh0ZXh0LCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsInRleHQiKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19OT1RfU1VQUE9SVEVEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbmFtZWRDb21tZW50ID0gbmV3RG9jLnJlbmFt
ZU5vZGUoY29tbWVudCwiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJjb21tZW50Iik7Ci0g
ICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUp
ICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhy
b3dfTk9UX1NVUFBPUlRFRF9FUlJfMiIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW5hbWVkQ2RhdGEgPSBuZXdEb2MucmVuYW1l
Tm9kZShjZGF0YSwiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJjZGF0YSIpOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
VF9TVVBQT1JURURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNl
OwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZFBpID0gbmV3RG9jLnJlbmFtZU5vZGUocGks
Imh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwicGkiKTsKLSAgICAgICAgfQotCQljYXRjaChl
eCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYg
ZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VS
Ul80IixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIHJlbmFtZWRFbnRSZWYgPSBuZXdEb2MucmVuYW1lTm9kZShlbnRyZWYsImh0dHA6
Ly93d3cudzMub3JnL0RPTS9UZXN0IiwiZW50cmVmIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgp
IHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4
LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJf
NSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBk
b2N1bWVudHJlbmFtZW5vZGUyNygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LnhodG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTc4MTFiNDJkZTJjNDY3ZTVhMmE2MGUxODI5MWQyZDEw
OGY4M2M5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy54aHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/
VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9E
VEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwh
RU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwh
RU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8
IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0g
ICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxu
czp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9Q
SXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElF
RD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50cmVuYW1lbm9kZTI3LmpzIi8+PHNjcmlwdCB0
eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0
KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAg
PHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29k
ZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0
aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+
TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50
aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGph
Y2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ry
b25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5
ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVy
by5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ry
b25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwv
c3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
Tm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJv
eCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0i
aHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25n
PkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+
Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxl
bT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+
Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5t
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMg
OTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
MC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yMC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc4
ZTRlNjY0NjZmYmRjMTQwNzY3NTUzODdhOWEzNWYwZjFlYTk2ZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjAueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yMC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4
dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9z
Y3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+
TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxz
dXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBE
YWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBS
YXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVy
ZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RB
VEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAg
PGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4K
LSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAg
PGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAg
PHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0i
Xzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2
aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93
d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9j
b25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3Vw
Pjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAw
NTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVy
IFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9h
Y3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOTAyNDM3MzhmNjBhMDg4NDY0ZGFkODQ4MjdlYTZjMTRlYjAxM2Y3MS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYK
LVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51
bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNlOGIzZmFlODg3OWEwYTM0ZGYwMWI2NDVkYzM3NjBhYmUwMjcz
MWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKp
IDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIElu
c3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9y
IEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmln
aHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4g
U29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29w
eXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBV
UkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZp
ZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1
cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
Ci0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
ICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1
aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRp
b24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVz
dHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMg
Y29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxv
d3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlV
c2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiBjaGVjayBpZiB0aGUgRW50aXR5UmVmZXJlbmNl
IG5vZGUgY29udGFpbnMgYW5kIHByZWNlZGVzIGl0J3MgZmlyc3QKLQljaGlsZEVsZW1lbnQsIGFu
ZCB0aGF0IHRoZSBjaGlsZEVsZW1lbnQgaXMgY29udGFpbmVkIGFuZCBmb2xsb3dzIHRoZSBFbnRp
dHlSZWZlcmVuY2Ugbm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIEplbm55IEhzdQot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAw
NDA0MDcvY29yZSNOb2RlMy1jb21wYXJlRG9jdW1lbnRQb3NpdGlvbgotKi8KLWZ1bmN0aW9uIG5v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB2YXJMaXN0Owot
ICAgICAgdmFyIHZhckVsZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVudFJlZkNo
aWxkMTsKLSAgICAgIHZhciBlbnRSZWZQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQ
b3NpdGlvbjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICAKLQlpZigKLQkoZ2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0
eVJlZmVyZW5jZXMiKSA9PSBmYWxzZSkKLQkpIHsKLQl2YXJMaXN0ID0gZG9jLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJ2YXIiKTsKLSAgICAgIHZhckVsZW0gPSB2YXJMaXN0Lml0ZW0oMik7Ci0gICAg
ICBhc3NlcnROb3ROdWxsKCJ2YXJFbGVtTm90TnVsbCIsdmFyRWxlbSk7Ci1lbnRSZWYgPSB2YXJF
bGVtLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZk5vdE51bGwiLGVu
dFJlZik7Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiZW50NCIpOwotICAgICAgCi0JCX0KLQllbnRSZWZDaGlsZDEgPSBlbnRSZWYuZmly
c3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50
UmVmQ2hpbGQxKTsKLWVudFJlZlBvc2l0aW9uID0gZW50UmVmLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKGVudFJlZkNoaWxkMSk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvbklzQ29udGFpbmVkRm9sbG93aW5nMjYiLDIwLGVudFJlZlBvc2l0aW9uKTsKLSAg
ICAgICBlbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQ
b3NpdGlvbihlbnRSZWYpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb25Db250YWluc1BSRUNFRElORzI2IiwxMCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzMzZTBkMDY1OGJiZmJmNGZh
NTA4M2UwYTIzOTczMmE0NGMxZTk0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJv
ZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48
L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1
NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFU
QVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZl
bnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBh
IHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8
L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwv
ZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50
IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUz
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29t
Ij4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9u
Zz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29k
ZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgot
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjct
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzI5YjRjZDgwNThh
M2M3NWNhODEyYjQyNTI3NWIzNmY4ZTQyOWZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNwotU3RhdHVzCWZhaWx1cmUK
LU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yNy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDFlMTliNzY3MDJiMzRhOTg1ZTgyNGY4MWVhY2FhZjNlZTRiZTBmNi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxk
IFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5k
IE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRo
aXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNl
IFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0
dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUt
MjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZp
ZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAg
Ki8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53
My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIGNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uIHRvIGNoZWNrIGlmIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBjb250YWlu
cyBhbmQgcHJlY2VkZXMgaXQncyBsYXN0Ci0JY2hpbGRFbGVtZW50LCBhbmQgdGhhdCB0aGlzIGNo
aWxkRWxlbWVudCBpcyBjb250YWluZWQgYW5kIGZvbGxvd3MgdGhlIEVudGl0eVJlZmVyZW5jZSBu
b2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05v
ZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxp
emF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNyIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFy
RWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAg
dmFyIGVudFJlZlBvc2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0aW9uOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlm
KAotCShnZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIp
ID09IGZhbHNlKQotCSkgewotCXZhckxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInZh
ciIpOwotICAgICAgdmFyRWxlbSA9IHZhckxpc3QuaXRlbSgyKTsKLSAgICAgIGFzc2VydE5vdE51
bGwoInZhckVsZW1Ob3ROdWxsIix2YXJFbGVtKTsKLWVudFJlZiA9IHZhckVsZW0uZmlyc3RDaGls
ZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmTm90TnVsbCIsZW50UmVmKTsKLQotCX0K
LQkKLQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0
Iik7Ci0gICAgICAKLQkJfQotCWVudFJlZkNoaWxkMSA9IGVudFJlZi5sYXN0Q2hpbGQ7Ci0KLSAg
ICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMU5vdE51bGwiLGVudFJlZkNoaWxkMSk7Ci1l
bnRSZWZQb3NpdGlvbiA9IGVudFJlZi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWZDaGls
ZDEpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Jc0Nv
bnRhaW5lZEZvbGxvd2luZzI3IiwyMCxlbnRSZWZQb3NpdGlvbik7Ci0gICAgICAgZW50UmVmQ2hp
bGQxUG9zaXRpb24gPSBlbnRSZWZDaGlsZDEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVm
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uQ29udGFp
bnNQUkVDRURJTkciLDEwLGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxYWJlMDFiZjliZDg5ZDFhMWVhZjZlY2JjMDFiMDkzZTZl
YmZiMTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bjI3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczZDMyNDlkODRiYjNjMjYxNjc1ZTNlNGU4Y2Fk
MzYyOThhM2Y4NWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI4LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbnRSZWZD
aGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4Lmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjJiMjhlODNjMzA1
NDRkYWFhODQxZjE3ZmQxNWQ3YjhkYmM1MmVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCww
IEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29y
dGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4g
UmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtl
aW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQot
Ci0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAg
ICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0
VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4IjsKLSAg
IH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gY2hl
Y2sgdGhlIGRvY3VtZW50IHBvc2l0aW9uIG9mIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBlbnQ0
J3MKLQlmaXJzdCBjaGlsZCBhbmQgbGFzdCBjaGlsZC4gIEludm9rZSBjb21wYXJlRG9jdW1lbnRQ
b3NpdG9uIG9uIGZpcnN0IGNoaWxkIHdpdGggbGFzdCBjaGlsZCBhcyBhIHBhcmFtZXRlcgotCXNo
b3VsZCByZXR1cm4gRk9MTE9XSU5HLCBhbmQgc2hvdWxkIHJldHVybiBQUkVDRURJTkcgdmljZSB2
ZXJzYS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIEplbm55IEhzdQotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNO
b2RlMy1jb21wYXJlRG9jdW1lbnRQb3NpdGlvbgotKi8KLWZ1bmN0aW9uIG5vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI4KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFs
aXphdGlvbihidWlsZGVyLCAibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgiKSAhPSBudWxs
KSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB2YXJMaXN0OwotICAgICAgdmFyIHZh
ckVsZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsKLSAgICAg
IHZhciBlbnRSZWZDaGlsZDI7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0gICAg
ICB2YXIgZW50UmVmQ2hpbGQyUG9zaXRpb247Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwg
ImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JKGdldEltcGxlbWVudGF0aW9uQXR0
cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIikgPT0gZmFsc2UpCi0JKSB7Ci0JdmFyTGlz
dCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidmFyIik7Ci0gICAgICB2YXJFbGVtID0gdmFy
TGlzdC5pdGVtKDIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgidmFyRWxlbU5vdE51bGwiLHZhckVs
ZW0pOwotZW50UmVmID0gdmFyRWxlbS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxs
KCJlbnRSZWZOb3ROdWxsIixlbnRSZWYpOwotCi0JfQotCQotCQllbHNlIHsKLQkJCWVudFJlZiA9
IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIAotCQl9Ci0JZW50UmVm
Q2hpbGQxID0gZW50UmVmLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJl
ZkNoaWxkMU5vdE51bGwiLGVudFJlZkNoaWxkMSk7Ci1lbnRSZWZDaGlsZDIgPSBlbnRSZWYubGFz
dENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDJOb3ROdWxsIixlbnRS
ZWZDaGlsZDIpOwotZW50UmVmQ2hpbGQxUG9zaXRpb24gPSBlbnRSZWZDaGlsZDEuY29tcGFyZURv
Y3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQyKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uRm9sbG93aW5nMjgiLDQsZW50UmVmQ2hpbGQxUG9zaXRpb24p
OwotICAgICAgIGVudFJlZkNoaWxkMlBvc2l0aW9uID0gZW50UmVmQ2hpbGQyLmNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uKGVudFJlZkNoaWxkMSk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvblBSRUNFRElORzI4IiwyLGVudFJlZkNoaWxkMlBvc2l0aW9uKTsK
LSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgueGh0bWwgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyNTA4MjlmMTJjMjk2YjYx
OTU2YjgxZmM2NjY1ODJlMzYzMjI5ZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvbjI4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBA
QAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUg
aHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4
aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVO
VElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVO
VElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAi
bm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9u
MkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAg
IHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBM
SUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRt
bAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAg
ICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElT
VCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElT
VCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51
bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0g
ICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFu
Y2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRs
ZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2Ny
aXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjguanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
OS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyY2E3ODE3Yzgx
NDg1ZWViMWZkNGJlNGY4NWJkMWVlMjE3ZjQ5NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5Ci1TdGF0dXMJZmFpbHVy
ZQotTWVzc2FnZQllbnRSZWZDaGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI5LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmZDlmZDQ1ZmE5MTVjNGY1MmEwYzA4NzdhMTZiOTVlYTdhMmQ4OTE5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDEyOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29y
bGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVj
aG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBh
bmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4g
VGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vu
c2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2Fy
ZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRp
ZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAg
ICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvbjI5IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JQ3JlYXRlIHR3byBlbnRp
dHkgcmVmZXJlbmNlIG5vZGVzLiBVc2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiB0byBjaGVj
ayBpZiB0aGUgY2hpbGQgb2YgdGhlIGZpcnN0IEVudGl0eSAKLQlSZWYgbm9kZSBwcmVjZWRlcyB0
aGUgY2hpbGQgb2YgdGhlIHNlY29uZCBFbnRpdHkgUmVmIG5vZGUsIGFuZCB0aGF0IHRoZSBjaGls
ZCBvZiB0aGUgc2Vjb25kIEVudGl0eSBSZWYgbm9kZQotCWZvbGxvd3MgdGhlIGNoaWxkIG9mIHRo
ZSBmaXJzdCBFbnRpdHkgUmVmIG5vZGUuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIEpl
bm55IEhzdQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0z
LUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy1jb21wYXJlRG9jdW1lbnRQb3NpdGlvbgotKi8KLWZ1
bmN0aW9uIG5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5KCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjkiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBk
b2NFbGVtOwotICAgICAgdmFyIGVudFJlZjE7Ci0gICAgICB2YXIgZW50UmVmMjsKLSAgICAgIHZh
ciBlbnRSZWZDaGlsZDE7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQyOwotICAgICAgdmFyIGVudFJl
ZkNoaWxkMVBvc2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNoaWxkMlBvc2l0aW9uOwotICAgICAg
dmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgZW50UmVmMSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVu
dDQiKTsKLSAgICAgIGVudFJlZjIgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7
Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGRvY0VsZW0uYXBwZW5kQ2hpbGQoZW50UmVmMSk7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gZG9jRWxlbS5hcHBlbmRDaGlsZChlbnRSZWYyKTsKLSAgICAgIGVudFJlZkNoaWxkMSA9IGVu
dFJlZjEuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90
TnVsbCIsZW50UmVmQ2hpbGQxKTsKLWVudFJlZkNoaWxkMiA9IGVudFJlZjIubGFzdENoaWxkOwot
Ci0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDJOb3ROdWxsIixlbnRSZWZDaGlsZDIp
OwotZW50UmVmQ2hpbGQxUG9zaXRpb24gPSBlbnRSZWZDaGlsZDEuY29tcGFyZURvY3VtZW50UG9z
aXRpb24oZW50UmVmQ2hpbGQyKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uRm9sbG93aW5nMjkiLDQsZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAg
IGVudFJlZkNoaWxkMlBvc2l0aW9uID0gZW50UmVmQ2hpbGQyLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKGVudFJlZkNoaWxkMSk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvblBSRUNFRElORzI5IiwyLGVudFJlZkNoaWxkMlBvc2l0aW9uKTsKLSAgICAgICAK
LX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI5KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkueGh0bWwgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkueGh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhM2QyYTliNzIxMWQ0ZGY2MzVjNDY1YmI1
OTZkMDViYTkxMmJiMGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvbjI5LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwg
dmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAg
UFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3Ry
aWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRh
ICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0
YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24x
RmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgot
ICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRt
c3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAg
ICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAg
ICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jvbnlt
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJ
VFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1l
bnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHht
bG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHht
bG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19z
dGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJz
ZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjkuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxv
YWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25n
PgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMg
aXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+
Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJl
bmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4K
LSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAg
PHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdl
cjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8
ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2Rl
PlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0i
Xzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2Fk
LiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJo
dHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVy
dCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8
c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBO
b3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyN2E5NWExZjYyY2UxNDc0OGYzNDYwNDIwNGM3MzI4Yjc2OTQ0YmVhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQKLVN0YXR1cwllcnJvcgotTWVz
c2FnZQlMaW5lIDEwMTogVHlwZUVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmOWY1ZDIwZjc3YmZiOWRjYTBhMTBlODBlMWRmNTVlYmZiMjNjNGRhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MjAyICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNCI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
c0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJiYXJmb28iKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLUNoZWNrIGltcGxlbWVudGF0aW9uIG9mIE5vZGUuZ2V0RmVhdHVyZSBv
biBFbnRpdHlSZWZlcmVuY2UuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNO
b2RlMy1nZXRGZWF0dXJlCi0qLwotZnVuY3Rpb24gbm9kZWdldGZlYXR1cmUwNCgpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXRm
ZWF0dXJlMDQiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBub2Rl
OwotICAgICAgdmFyIG51bGxWZXJzaW9uID0gbnVsbDsKLQotICAgICAgdmFyIGZlYXR1cmVJbXBs
OwotICAgICAgdmFyIGlzU3VwcG9ydGVkOwotICAgICAgdmFyIGRvbUltcGw7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJiYXJmb28iKTsKLSAgICAgIGRvbUltcGwgPSBkb2Mu
aW1wbGVtZW50YXRpb247Ci1ub2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIp
OwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIkNvcmUiLG51bGxWZXJzaW9u
KTsKLSAgICAgIGFzc2VydFNhbWUoImNvcmVVbnNwZWNpZmllZFZlcnNpb24iLG5vZGUsZmVhdHVy
ZUltcGwpOwotZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoImNPckUiLG51bGxWZXJzaW9u
KTsKLSAgICAgIGFzc2VydFNhbWUoImNPckVVbnNwZWNpZmllZFZlcnNpb24iLG5vZGUsZmVhdHVy
ZUltcGwpOwotZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIitjT3JFIixudWxsVmVyc2lv
bik7Ci0gICAgICBhc3NlcnRTYW1lKCJQbHVzQ29yZVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxm
ZWF0dXJlSW1wbCk7Ci1mZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgib3JnLnczYy5kb210
cy5ib2d1cy5mZWF0dXJlIixudWxsVmVyc2lvbik7Ci0gICAgICBhc3NlcnROdWxsKCJ1bnJlY29n
bml6ZWRGZWF0dXJlIixmZWF0dXJlSW1wbCk7Ci0gICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZl
YXR1cmUoImNPckUiLCIyLjAiKTsKLSAgICAgIGFzc2VydFNhbWUoIkNvcmUyMCIsbm9kZSxmZWF0
dXJlSW1wbCk7Ci1mZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsIjMuMCIpOwot
ICAgICAgYXNzZXJ0U2FtZSgiQ29yZTMwIixub2RlLGZlYXR1cmVJbXBsKTsKLWlzU3VwcG9ydGVk
ID0gbm9kZS5pc1N1cHBvcnRlZCgiWE1MIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1w
bCA9IG5vZGUuZ2V0RmVhdHVyZSgiWE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlp
c1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIlhNTFVuc3BlY2lmaWVkIixub2RlLGZlYXR1
cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIlNWRyIsbnVs
bFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIlNWRyIsbnVs
bFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1l
KCJTVkdVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQg
PSBub2RlLmlzU3VwcG9ydGVkKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1w
bCA9IG5vZGUuZ2V0RmVhdHVyZSgiSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0J
aXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJIVE1MVW5zcGVjaWZpZWQiLG5vZGUsZmVh
dHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiRXZlbnRz
IixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiRXZl
bnRzIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFz
c2VydFNhbWUoIkV2ZW50c1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlp
c1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkxTIixudWxsVmVyc2lvbik7Ci0gICAgICBm
ZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiTFMiLG51bGxWZXJzaW9uKTsKLSAgICAgIAot
CWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiTFNVbnNwZWNpZmllZCIsbm9k
ZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJM
Uy1Bc3luYyIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1
cmUoIkxTLUFzeW5jIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAot
CSkgewotCWFzc2VydFNhbWUoIkxTQXN5bmNVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7
Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJYUGF0aCIsbnVsbFZlcnNp
b24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIlhQYXRoIixudWxsVmVy
c2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIlhQ
YXRoVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0g
bm9kZS5pc1N1cHBvcnRlZCgiK0hUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBs
ID0gbm9kZS5nZXRGZWF0dXJlKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlp
c1N1cHBvcnRlZAotCSkgewotCWFzc2VydE5vdE51bGwoIlBsdXNIVE1MVW5zcGVjaWZpZWQiLGZl
YXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIitTVkci
LG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJTVkci
LG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0
Tm90TnVsbCgiUGx1c1NWR1Vuc3BlY2lmaWVkIixmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JCi19Ci0K
LQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlZ2V0ZmVhdHVyZTA0KCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1
cmUwNC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVh
dHVyZTA0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2Q4NWM1M2MzODIz
YmI4MTFiMWU3NDkzMzlhNTU3M2IyNTcwNDZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0ZmVhdHVyZTA0LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWwgWwotPCFFTlRJVFkgZW50MSAnZm9vJz4KLTwhRU5USVRZIGVudDIgJ2Zvbzxici8+
Jz4KLTwhRUxFTUVOVCBodG1sIChoZWFkLCBib2R5KT4KLTwhQVRUTElTVCBodG1sIHhtbG5zIENE
QVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIGhlYWQgKHRpdGxlLHNjcmlwdCopPgotPCFFTEVNRU5U
IHNjcmlwdCAoI1BDREFUQSk+Ci08IUFUVExJU1Qgc2NyaXB0IAotICAgICBzcmMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgdHlwZSBDREFUQSAjSU1QTElFRAotICAgICBjaGFyc2V0IENEQVRBICNJTVBM
SUVEPgotPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KLTwhRUxFTUVOVCBib2R5IChwKT4KLTwh
QVRUTElTVCBib2R5IG9ubG9hZCBDREFUQSAjSU1QTElFRD4KLTwhRUxFTUVOVCBwICgjUENEQVRB
fGJyKSo+Ci08IUVMRU1FTlQgYnIgRU1QVFk+Ci1dPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnPgotPGhlYWQ+Ci08dGl0bGU+cmVwbGFjZVdob2xlVGV4dCBzYW1w
bGU8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nc2VsZnhodG1s
LmpzJz48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9J1VURi04JyB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnIHNyYz0nbm9kZWdldGZlYXR1cmUwNC5qcyc+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLTxwPmJhcjwvcD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzVjMjljZGQ5OTdiYWU5MWJjMGM1YWI3OTQw
NWI4MDEyNjgzM2NiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQx
NS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNv
bnRlbnQxNQotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxpbmUgMTIxOiBUeXBlRXJyb3IKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRl
bnQxNS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNv
bnRlbnQxNS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjE0NjdhM2JjNDE2MjBk
MzkwZWM3ZDRkNWQ5MjI4Yjg4NDBjOTBiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdl
dHRleHRjb250ZW50MTUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwg
dHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJl
ZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCByZXR1cm5zIHRoZSB0
ZXh0IGNvbnRlbnQgb2YgdGhpcyBub2RlIGFuZCBpdHMgZGVzY2VuZGFudHMuCi0JCi0JSW52b2tl
IHRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRWxlbWVudCBub2RlIHdpdGggbmV3
IFRleHQsIEVudGl0eVJlZmVyZW5jZXMgIAotCUNEQVRBU2VjdGlvbiwgUEkgYW5kIENvbW1lbnQg
bm9kZXMgYW5kIGNoZWNrIGlmIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhIHNpbmdsZSAKLQljb25j
YXRlbmF0ZWQgU3RyaW5nIHdpdGggaXRzIGNvbnRlbnQuICAKLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVu
Y3Rpb24gbm9kZWdldHRleHRjb250ZW50MTUoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlZ2V0dGV4dGNvbnRlbnQxNSIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgdHh0
OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRh
OwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVu
ZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnL0RP
TS9UZXN0IiwiZG9tMzplbGVtIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRl
eHQgIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0g
ICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBw
aSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oIlBJVCIsIlBJRGF0YSAiKTsKLSAg
ICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RhdGEiKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
ZWxlbS5hcHBlbmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFw
cGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGls
ZChwaSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjZGF0YSk7Ci0g
ICAgICB0ZXh0Q29udGVudCA9IGVsZW0udGV4dENvbnRlbnQ7Ci0KLSAgICAgIGRvYy5ub3JtYWxp
emVEb2N1bWVudCgpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlZ2V0dGV4dGNvbnRlbnQxNSIs
IlRleHQgzrJDRGF0YSIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlv
biBydW5UZXN0KCkgewotICAgbm9kZWdldHRleHRjb250ZW50MTUoKTsKLX0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS54
aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRl
bnQxNS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJkMzZjYmEzYzNkYTA5
MGNiYWQ3NzQ3ZDBlODkxYzVmMjRiNjk0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdl
dHRleHRjb250ZW50MTUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0g
ICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1z
dHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJl
dGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRl
bHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZ
IGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlv
bjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+
Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6
ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAg
ICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAg
ICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9u
eW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVO
VElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxl
bWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4g
eG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEu
LS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAg
eG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhj
X3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hh
cnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlZ2V0dGV4dGNvbnRl
bnQxNS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRl
eHRjb250ZW50MTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggY2I0MTQ0ZDA1ZmYwOGQ3MmU4ZTk4NGFhMTEzMTU0ODY0YjgxMWE0Yi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYKLVN0YXR1cwll
cnJvcgotTWVzc2FnZQlMaW5lIDEyMzogVHlwZUVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYuanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0MWY3Yzg0MTllOGQxMTU2NDIwODg0OTU4ODY4ZmFh
ZDYxNTVkOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2Lmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkg
dGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIg
b2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4g
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdl
dHRleHRjb250ZW50MTYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFy
IGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0
aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3Vp
dGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBh
c3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhl
cndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBl
eGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0
aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRV
cFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNy
ZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8v
Ci0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIHNldElt
cGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUpOwotICAgICAgIHNl
dEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIiwgdHJ1ZSk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
CVRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgcmV0dXJucyB0aGUgdGV4dCBjb250ZW50IG9mIHRo
aXMgbm9kZSBhbmQgaXRzIGRlc2NlbmRhbnRzLgotCQotCUludm9rZSB0aGUgbWV0aG9kIGdldFRl
eHRDb250ZW50IG9uIGEgbmV3IERvY3VtZW50RnJhZ21lbnQgbm9kZSB3aXRoIG5ldyBUZXh0LCBF
bnRpdHlSZWZlcmVuY2VzICAKLQlDREFUQVNlY3Rpb24sIFBJIGFuZCBDb21tZW50IG5vZGVzIGFu
ZCBjaGVjayBpZiB0aGUgdmFsdWUgcmV0dXJuZWQgaXMgYSBzaW5nbGUgCi0JY29uY2F0ZW5hdGVk
IFN0cmluZyB3aXRoIGl0cyBjb250ZW50LiAgCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBO
ZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZl
bC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5v
ZGVnZXR0ZXh0Y29udGVudDE2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0
aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWdldHRleHRjb250ZW50MTYiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVsZW07Ci0g
ICAgICB2YXIgZWxlbUNoaWxkOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjb21tZW50Owot
ICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBwaTsKLSAgICAg
IHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
ID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2Mu
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50
TlMoImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwiZG9tMzplbGVtIik7Ci0gICAgICB0eHQg
PSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNyZWF0
ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJiZXRhIik7Ci0gICAgICBwaSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24oIlBJVCIsIlBJRGF0YSAiKTsKLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlv
bigiQ0RhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjb21tZW50KTsKLSAgICAg
IGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBhcHBlbmRl
ZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChwaSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZChjZGF0YSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBl
bmRDaGlsZChlbGVtKTsKLSAgICAgIGRvYy5ub3JtYWxpemVEb2N1bWVudCgpOwotICAgICAgdGV4
dENvbnRlbnQgPSBkb2NGcmFnLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5v
ZGVnZXR0ZXh0Y29udGVudDE2IiwiVGV4dCDOskNEYXRhIix0ZXh0Q29udGVudCk7Ci0gICAgICAg
Ci19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlZ2V0dGV4dGNvbnRlbnQx
NigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXR0ZXh0Y29udGVudDE2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkZmVmYzE1ZWI0ZWYwMWZiM2ZlZDFjYmQ4NTg2NGU0NTU5MWQxY2Y5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi54aHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/
PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmlj
dC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0
NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0
NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICIm
Izk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0
aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lT
VEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAn
cnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpu
bSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAg
PCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+
Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMg
aXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1M
U2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJD
b250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5o
Y19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnho
dG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Im5vZGVnZXR0ZXh0Y29udGVudDE2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hl
YWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBN
YXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4
YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVz
YS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08
IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJl
ciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24g
d2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNy
ZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1Q
MDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBh
cnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0
OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFz
IDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlz
dGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ry
b25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
JmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAg
PHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlz
dDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0g
PC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTctZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNmJlYjMyN2Q4MGRlZjJjOTc5ZWI0OTEx
ZmIzNzc3MTAzMzMyMmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRl
bnQxNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4
dGNvbnRlbnQxNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJbm9kZWdldHRleHRjb250ZW50MTc6
IGFzc2VydEVxdWFscyBmYWlsZWQsIGFjdHVhbCAsIGV4cGVjdGVkIM6yLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3Lmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjRiYTYwMWE5MWZlNTE1OGE4YjEz
MjdjODMzMjM4Y2ZiOWE1ODYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNv
bnRlbnQxNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDExNCArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVnZXR0ZXh0Y29udGVudDE3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52
b2tlIHRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5v
ZGUgYW5kIGNoZWNrIGlmIHRoZSAKLQl2YWx1ZSByZXR1cm5lZCBpcyB0aGUgRW50aXR5UmVmZXJl
bmNlJ3MgY29udGVudC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9kZWdldHRleHRjb250
ZW50MTcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJub2RlZ2V0dGV4dGNvbnRlbnQxNyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIg
ZG9jOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIHRleHRD
b250ZW50OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRv
Y1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5kb2N1bWVudEVsZW1l
bnQ7Ci0KLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsK
LSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICB0
ZXh0Q29udGVudCA9IGVudFJlZi50ZXh0Q29udGVudDsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJu
b2RlZ2V0dGV4dGNvbnRlbnQxNyIsIs6yIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlZ2V0dGV4dGNvbnRlbnQxNygpOwotfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE3LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE3LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzlj
MjJjNGQxZTU4NGRhMGRhZjllODM2ZGM0NWMxYTYzNDM5NGUzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICsw
LDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NU
WVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0g
ICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAg
PCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAg
PCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJM
SUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3Rh
dGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAg
ICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAj
SU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFU
VExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFU
VExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVu
dCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
JwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWlu
c3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwv
dGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+
PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVn
ZXR0ZXh0Y29udGVudDE3LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlaW5zZXJ0YmVmb3JlMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDM5N2ZhODMxMGQzN2RlZTAxMGJlNWM0OTE3OTA2NjUxN2U4YjMx
ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEKLVN0YXR1
cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWluc2VydGJlZm9yZTExLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVpbnNlcnRiZWZvcmUxMS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZThh
OGI5ZWMyYzIwNDBkYjE4MmQxMWI2YzFkYzg5ZGZkODI0NTQ0Mi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWluc2VydGJlZm9yZTExLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQ1ICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExIjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi0KLQotCi0JVXNpbmcgaW5zZXJ0QmVmb3JlIG9uIGEgRG9jdW1lbnRGcmFnbWVu
dCBub2RlIGF0dGVtcHQgdG8gaW5zZXJ0IGEgY2hpbGQgbm9kZXMgYmVmb3JlCi0Jb3RoZXIgcGVy
bWlzc2libGUgbm9kZXMgYW5kIHZlcmlmeSB0aGUgY29udGVudHMvbmFtZSBvZiBlYWNoIGluc2Vy
dGVkIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2Vl
IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcv
Y29yZSNJRC05NTIyODA3MjcKLSovCi1mdW5jdGlvbiBub2RlaW5zZXJ0YmVmb3JlMTEoKSB7Ci0g
ICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2Rl
aW5zZXJ0YmVmb3JlMTEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZh
ciBkb2NGcmFnOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2YXIgY29t
bWVudDsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgZVJlZjsK
LSAgICAgIHZhciBpbnNlcnRlZDsKLSAgICAgIHZhciBpbnNlcnRlZFZhbDsKLSAgICAgIHZhciBh
cHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAg
ICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiLCJib2R5Iik7Ci0gICAgICBwaSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24o
IlBJVGFyZ2V0IiwiUElEYXRhIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQo
IkNvbW1lbnQiKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAg
ICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQSIpOwotICAgICAgZVJlZiA9
IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlbGVtKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NG
cmFnLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVu
ZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hp
bGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNkYXRh
KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVSZWYpOwotICAg
ICAgaW5zZXJ0ZWQgPSBkb2NGcmFnLmluc2VydEJlZm9yZShjb21tZW50LHBpKTsKLSAgICAgIGlu
c2VydGVkVmFsID0gaW5zZXJ0ZWQuZGF0YTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlaW5z
ZXJ0YmVmb3JlMTFfQ29tbWVudCIsIkNvbW1lbnQiLGluc2VydGVkVmFsKTsKLSAgICAgICBpbnNl
cnRlZCA9IGRvY0ZyYWcuaW5zZXJ0QmVmb3JlKHR4dCxjb21tZW50KTsKLSAgICAgIGluc2VydGVk
VmFsID0gaW5zZXJ0ZWQuZGF0YTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVm
b3JlMTFfVGV4dCIsIlRleHQiLGluc2VydGVkVmFsKTsKLSAgICAgICBpbnNlcnRlZCA9IGRvY0Zy
YWcuaW5zZXJ0QmVmb3JlKGNkYXRhLHR4dCk7Ci0gICAgICBpbnNlcnRlZFZhbCA9IGluc2VydGVk
LmRhdGE7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWluc2VydGJlZm9yZTExX0NEQVRBIiwi
Q0RBVEEiLGluc2VydGVkVmFsKTsKLSAgICAgICBpbnNlcnRlZCA9IGRvY0ZyYWcuaW5zZXJ0QmVm
b3JlKGVSZWYsY2RhdGEpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5ub2RlTmFtZTsK
LQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfRW50MSIsImFscGhhIixp
bnNlcnRlZFZhbCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBub2RlaW5zZXJ0YmVmb3JlMTEoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxYTRhYTY4MzczODVlMDAwMzMzZDZiYzVjNDgxMTg2Nzk0NmFk
NWRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1Qt
U1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhI
VE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElU
WSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJ
VFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04g
bm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAg
ICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNp
IENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJn
ZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1d
PgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEg
aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRG
LTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJub2RlaW5zZXJ0YmVmb3JlMTEuanMiLz48c2NyaXB0IHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwv
c2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25n
Pk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8
c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4g
RGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEg
UmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZl
cmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENE
QVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0g
IDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+
Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0g
IDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0g
IDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9
Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IEly
dmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8v
d3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBP
Y29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1
cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAw
MDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRl
ciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwv
YWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE0MmYzZTYzNTQ3NTA3ZWU1
ZGEyZGYzNmVlZDE1YjRjYzJmZDU3Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2Vy
dGJlZm9yZTE1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVp
bnNlcnRiZWZvcmUxNQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZjM3MTZlYTE5ZDRhZjcxN2RiNjRhMWIwNjM1ZTQ1OTU5MDVlM2U0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwxNzcgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdv
cmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRl
Y2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3Mg
YW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQu
IFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNl
bnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFd
IGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdh
cmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50
aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0g
ICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3
dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3Jl
MTUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBu
dWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBm
cmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8g
ICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMK
LS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBz
dGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMg
aW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0
aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMg
PSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBk
b2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxk
ZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlBIE5PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUiBpcyByYWlzZWQgaWYgdGhlIG5vZGUgaXMgcmVhZC1vbmx5LgotCQotCVVzaW5nIGluc2Vy
dEJlZm9yZSBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIGluc2VydCBF
bGVtZW50LCBUZXh0LAotCUNvbW1lbnQsIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgQ0RBVEFT
ZWN0aW9uIG5vZGVzIGJlZm9yZSBhbiBlbGVtZW50IGNoaWxkCi0JYW5kIHZlcmlmeSBpZiBhIE5P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSog
QGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVD
LURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC05NTIyODA3MjcKLSovCi1mdW5jdGlv
biBub2RlaW5zZXJ0YmVmb3JlMTUoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0lu
aXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlaW5zZXJ0YmVmb3JlMTUiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbUNoaWxk
OwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGNvbW1lbnQ7Ci0g
ICAgICB2YXIgcGk7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgaW5zZXJ0ZWQ7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZW50UmVm
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGVsZW1DaGlsZCA9
IGVudFJlZi5maXJzdENoaWxkOwotCi0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rp
b24oIkNEQVRBU2VjdGlvbiIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoY2RhdGEsZWxl
bUNoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBl
b2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3Nl
cnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMSIsc3VjY2Vzcyk7Ci0J
fQotcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJ0YXJnZXQiLCJkYXRhIik7
Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGlu
c2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShwaSxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0J
CWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZp
bmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElG
SUNBVElPTl9BTExPV0VEX0VSUl8yIixzdWNjZXNzKTsKLQl9Ci1jb21tZW50ID0gZG9jLmNyZWF0
ZUNvbW1lbnQoIkNvbW1lbnQiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0
cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKGNvbW1lbnQs
ZWxlbUNoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0
eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlh
c3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMyIsc3VjY2Vzcyk7
Ci0JfQotdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICAKLQl7Ci0JCXN1
Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGluc2VydGVkID0gZW50UmVmLmlu
c2VydEJlZm9yZSh0eHQsZWxlbUNoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAg
ICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9
PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9F
UlJfNCIsc3VjY2Vzcyk7Ci0JfQotZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiLCJib2R5Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9y
ZShlbGVtLGVsZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nl
c3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0J
CX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzUiLHN1
Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWlu
c2VydGJlZm9yZTE1KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNmYwZDAwYjljYTE2MzcxZWZjMDJmOGU0MDFlYjQ1ZDg1N2Y0MWRjMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LnhodG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJ
REFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg
U3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEg
IiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2ls
b24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04g
bm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENE
QVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAj
SU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0
YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0g
VGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAw
MS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRp
dGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJz
ZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ibm9kZWluc2VydGJlZm9yZTE1LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRz
Ci08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51
bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rp
b24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZl
bnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRh
dmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwv
c3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4K
LSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lh
bGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzBlMTc1NGY3YTkyY2ZlZTg5NDE5MjhiNGVm
NmIxN2I5YTc3ZjFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3
dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQx
MgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNGUxOGEyMjcxZThhYzllODY5YmMxZjlhZjVkMTcxMTYzNzg5OGI4NS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzgg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMiI7Ci0gICB9Ci0KLXZh
ciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAg
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUK
LS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBu
byBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3Vt
ZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAg
IGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8g
ICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1
bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAg
IHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIs
IG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZp
Z3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVz
cGFjZUF3YXJlIiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
c0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAK
LSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaElu
aXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNh
bGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2Fk
IHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMg
bG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBp
cyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBi
ZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRob2QgcmVtb3ZlQ2hpbGQgcmVtb3ZlcyB0aGUgY2hp
bGQgbm9kZSBpbmRpY2F0ZWQgYnkgb2xkQ2hpbGQgZnJvbSB0aGUgbGlzdCAKLQlvZiBjaGlsZHJl
biwgYW5kIHJldHVybnMgaXQuIAotCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRG9jdW1l
bnRGcmFnbWVudCBub2RlIGF0dGVtcHQgdG8gcmVtb3ZlIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBu
b2RlLgotICAgICAgICBBbHNvIGF0dGVtcHQgdG8gcmVtb3ZlIHRoZSBkb2N1bWVudCBmcmFnbWVu
dCBub2RlIGZyb20gdGhlIEVudGl0eVJlZmVyZW5jZS4gIFZlcmlmeSB0aGF0IGEgCi0gICAgICAg
IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiAoRW50aXR5UmVmZXJlbmNlIG5vZGUgaXMgcmVh
ZC1vbmx5KSBvciBhIE5PVF9GT1VORF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0q
IEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JF
Qy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0
aW9uIG5vZGVyZW1vdmVjaGlsZDEyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTIiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVSZWY7Ci0g
ICAgICB2YXIgcmVtb3ZlZEVSZWY7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIHZh
ciByZW1vdmVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0g
ICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZVJlZik7Ci0gICAgICByZW1vdmVkQ2hp
bGQgPSBkb2NGcmFnLnJlbW92ZUNoaWxkKGVSZWYpOwotICAgICAgcmVtb3ZlZEVSZWYgPSBkb2NG
cmFnLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE51bGwoIm5vZGVyZW1vdmVjaGlsZDEyIixy
ZW1vdmVkRVJlZik7Ci0gICAgCi0gICAgICB0cnkgewotICAgICAgcmVtb3ZlZENoaWxkID0gZVJl
Zi5yZW1vdmVDaGlsZChkb2NGcmFnKTsKLSAgICAgIAotICAgICAgfSBjYXRjaCAoZXgpIHsKLQkJ
ICBpZiAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnKSB7ICAgICAgCi0gICAgICAgc3dp
dGNoKGV4LmNvZGUpIHsKLSAgICAgICBjYXNlIC8qIE5PVF9GT1VORF9FUlIgKi8gOCA6Ci0gICAg
ICAgYnJlYWs7Ci0gICAgICBjYXNlIC8qIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiAqLyA3
IDoKLSAgICAgICBicmVhazsKLSAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgIHRocm93IGV4
OwotICAgICAgICAgIH0KLSAgICAgICB9IGVsc2UgeyAKLSAgICAgICB0aHJvdyBleDsKLSAgICAg
ICAgfQotICAgICAgICAgfQotICAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgIG5vZGVyZW1vdmVjaGlsZDEyKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0bWwgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczNmVkOTJmMDNiYTU0YWVjODI3ZGI3ODRmNjA1NmQ5MjM0
OTQ5NGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLnhodG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNU
LVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBY
SFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJ
VFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5U
SVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAg
ICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhz
aSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFy
Z2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgot
XT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53
My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
bj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVU
Ri04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlbW92ZWNoaWxkMTIuanMiLz48c2NyaXB0IHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwv
c2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25n
Pk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8
c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4g
RGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEg
UmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZl
cmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENE
QVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0g
IDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+
Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0g
IDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0g
IDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9
Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IEly
dmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8v
d3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBP
Y29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1
cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAw
MDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRl
ciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwv
YWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2ZTU2YTZjNmEwNjMyMDA4NjUx
NTBmZGU4OGM4M2Y5NGY1MmE0YWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1v
dmVjaGlsZDEzCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0eHROb3ROdWxsOiBhc3NlcnROb3RO
dWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDEzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDEzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Yzgw
ZmZiNGE2NTJkOTAyZGEyZDJkZmY1MTc2ODY3ZmU5NjJmM2Q0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVtb3ZlY2hpbGQxMy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzIjsKLSAgIH0KLQotdmFyIGRvY3NM
b2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAg
ICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZp
Z3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9h
ZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0
IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAg
cmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24g
c2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsK
LSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRo
cm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1
aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9
IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlm
IChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRp
b25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBp
biBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9j
dW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQg
d2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVk
LgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0v
KioKLSogCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUg
YXR0ZW1wdCB0byByZW1vdmUgdGhlIGZpcnN0IGNoaWxkIAotCW9mIHRoaXMgbm9kZSBhbmQgdmVy
aWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0
aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYK
LSovCi1mdW5jdGlvbiBub2RlcmVtb3ZlY2hpbGQxMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAg
IGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZW1vdmVjaGlsZDEzIikgIT0g
bnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGVS
ZWY7Ci0gICAgICB2YXIgcmVtb3ZlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9j
IiwgImhjX3N0YWZmIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
YWxwaGEiKTsKLSAgICAgIHR4dCA9IGVSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90
TnVsbCgidHh0Tm90TnVsbCIsdHh0KTsKLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgcmVtb3ZlZCA9IGVSZWYucmVtb3ZlQ2hpbGQodHh0KTsKLSAgICAgICAg
fQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3Vu
ZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19N
T0RJRklDQVRJT05fQUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTMoKTsKLX0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy54aHRt
bCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy54
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzEzMTdhNDYzZTE5ZTk2ZDljMTI1
NDY3OWZiNTc1ZTdiOWZjMDU1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNo
aWxkMTMueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRk
IiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2
OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0
ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICIm
Izk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFU
VExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1s
bnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAg
ICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0
ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRh
PC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RB
VEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRt
bCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNp
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhz
ZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRG
LTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxMy5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDE0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIzNWJm
NGRmZGIwMGUyNWUwODE4YjE2ZDBkMGNhYTU4OTVmNzk2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXBpTm90TnVs
bDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDNkNWExOTMzZWU5NzY1YTI5YzU3NWJjYjVmMGY1OWRkMWFmZWVhMS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwxMjIgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUg
V2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ks
IEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhl
bWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29y
ayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBp
biB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93
d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEy
MzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhl
IHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1
bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNCI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJl
ZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gcmVtb3ZlIGl0cyBsYXN0IFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiAKLQljaGlsZCBub2RlIGFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEK
LSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIw
MDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5vZGVyZW1vdmVjaGlsZDE0
KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVy
LCAibm9kZXJlbW92ZWNoaWxkMTQiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAg
ICAgIHZhciByZW1vdmVkOwotICAgICAgdmFyIGVSZWY7Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2
YXIgZW50TmFtZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAg
ICAgcGkgPSBlUmVmLmxhc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgicGlOb3ROdWxs
IixwaSk7Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJl
bW92ZWQgPSBlUmVmLnJlbW92ZUNoaWxkKHBpKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewot
ICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29k
ZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewot
ICAgbm9kZXJlbW92ZWNoaWxkMTQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDA4NGY3ZDc0NWVmZDI3YzQ2ZWQ4NTc1ZjY3N2Q4MmYwODc2NDM2
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQueGh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZ
TEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBn
YW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkg
ZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBk
aXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENE
QVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQg
UElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgot
PCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgi
Lz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxNC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9q
YXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3Jp
cHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFy
Z2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+
NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxs
YXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlu
b2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5j
ZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFT
ZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNv
ZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAg
PGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNv
ZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZh
cj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4
NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5n
LCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cu
YWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25u
b3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwv
ZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNw
ZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3Jv
bnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODAyZTBjMmJhOGJmOGVjYTYxYTg1MmY5
NTZmMGM4MWQ1YmI4YzkyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxk
MTUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNo
aWxkMTUKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVsZW1Ob3ROdWxsOiBhc3NlcnROb3ROdWxs
IGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE1LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1M2IzZjdj
YzhlMDgxMWJiODBiM2U3YjRjYTk5MDQ5ZGQwOTVjN2QwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNS5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAg
IC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBA
cmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0
VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1IjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0
ZW1wdCB0byByZW1vdmUgYW4gRWxlbWVudCBjaGlsZCAKLQlhbmQgdmVyaWZ5IGlmIGEgTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4gCi0KLSogQGF1dGhvciBJQk0KLSogQGF1
dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24g
bm9kZXJlbW92ZWNoaWxkMTUoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRp
YWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxNSIpICE9IG51bGwpIHJldHVybjsK
LSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZh
ciBlbnROYW1lOwotICAgICAgdmFyIHJlbW92ZWQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1Jl
ZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZl
cmVuY2UoImVudDQiKTsKLSAgICAgIGVsZW0gPSBlUmVmLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFz
c2VydE5vdE51bGwoImVsZW1Ob3ROdWxsIixlbGVtKTsKLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNl
OwotCQl0cnkgewotICAgICAgICAgICAgcmVtb3ZlZCA9IGVSZWYucmVtb3ZlQ2hpbGQoZWxlbSk7
Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNv
ZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgi
dGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQot
Ci0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZW1vdmVjaGlsZDE1KCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNo
aWxkMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92
ZWNoaWxkMTUueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhNDg2MjdhNWMx
MWJlMjY3ZTBkY2EzNGQwNThiODRkYjkwNTJjNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE1LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAot
ICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEt
c3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBi
ZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBk
ZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRp
b24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUi
PgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5z
OmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAg
ICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jv
bnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFF
TlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVs
ZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFu
IHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAx
Li0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAg
IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0g
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBo
Y19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNo
YXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlbW92ZWNoaWxk
MTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQxOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDE4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2Q5Zjg0MTg4ZGYxYTAxZDk0ZTAzYmM1MjQ3Njc1MWIzMjkxMjE1ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOAotU3RhdHVzCVN1Y2Nlc3MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMTguanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDE4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTBiNjcyYmM0OGQ5YTdj
NTYwOWM2NmY2OGZiOWMwYzFhOTIyNDhmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMTguanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotCi0vKgotQ29w
eXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3Nh
Y2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNv
cnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkp
LiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0
aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhl
IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVn
YWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAg
ICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1
cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsK
LSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
Ci0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
ICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1
aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRp
b24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVz
dHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMg
Y29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxv
d3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlV
c2luZyByZXBsYWNlQ2hpbGQgb24gYSBEb2N1bWVudEZyYWdtZW50IG5vZGUgYXR0ZW1wdCB0byBy
ZXBsYWNlIGEgQ0RBVEFTZWN0aW9uIG5vZGUgd2l0aCAKLQlhIEVudGl0eVJlZmVyZW5jZSBhbmQg
dmljZSB2ZXJzYSB2ZXJpZnkgdGhlIGRhdGEgb2YgdGhlIHJlcGxhY2VkIG5vZGVzLgotCi0qIEBh
dXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9y
Zy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3
Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDE4KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0g
ICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDE4Iikg
IT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAg
IHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcmVwbGFjZWRDRGF0YTsK
LSAgICAgIHZhciByZXBsYWNlZEVyZWY7Ci0gICAgICB2YXIgY2RhdGFOYW1lOwotICAgICAgdmFy
IGVyZWZOYW1lOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24o
IkNEQVRBU2VjdGlvbiIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5j
ZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVu
dFJlZik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChjZGF0YSk7
Ci0gICAgICByZXBsYWNlZENEYXRhID0gZG9jRnJhZy5yZXBsYWNlQ2hpbGQoZW50UmVmLGNkYXRh
KTsKLSAgICAgIGNkYXRhTmFtZSA9IHJlcGxhY2VkQ0RhdGEubm9kZVZhbHVlOwotCi0gICAgICBh
c3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQxOF8xIiwiQ0RBVEFTZWN0aW9uIixjZGF0YU5h
bWUpOwotICAgICAgIHJlcGxhY2VkRXJlZiA9IGRvY0ZyYWcucmVwbGFjZUNoaWxkKGNkYXRhLGVu
dFJlZik7Ci0gICAgICBlcmVmTmFtZSA9IHJlcGxhY2VkRXJlZi5ub2RlTmFtZTsKLQotICAgICAg
YXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMThfMiIsImFscGhhIixlcmVmTmFtZSk7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNo
aWxkMTgoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMTgueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxZDc2N2I5ZWFmODRlMmFjZWQzMWNhNTljZmEzOTE0MzZkM2MyZTNhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVwbGFjZWNoaWxkMTguanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYThhMmQzNjFlOTEwNmQ0ZDFkODBlNTEyYmNkZWM1ODBi
M2IwZTc0OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOQot
U3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMTkuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkYjlhMTdkZjk3ZjQzZDAzNTJmM2JkOGFkMWM1YzkzNDA4ZjM1YjFlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTgg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBEb2N1bWVudEZyYWdtZW50
IG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGFuIEVsZW1lbnQgbm9kZSB3aXRoIAotCWl0cyBFbnRp
dHlSZWZlcmVuY2UgY2hpbGQgdmVyaWZ5IHRoZSBub2RlTmFtZSBvZiB0aGUgcmVwbGFjZWQgbm9k
ZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lE
LTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQxOSgpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNl
Y2hpbGQxOSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0Zy
YWc7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgcmVwbGFj
ZWQ7Ci0gICAgICB2YXIgbm9kZU5hbWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFn
ID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRl
RWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZG9tMzpwIik7Ci0gICAg
ICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVsZW0pOwotICAgICAgcmVwbGFjZWQgPSBkb2NGcmFn
LnJlcGxhY2VDaGlsZChlbnRSZWYsZWxlbSk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5v
ZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQxOSIsImRvbTM6
cCIsbm9kZU5hbWUpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewot
ICAgbm9kZXJlcGxhY2VjaGlsZDE5KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMzI1YjJjYjNiM2JlNzBlZDc5NGJlMWYwMjAzMGIzNmQxOTM0
NzNlNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNU
LVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBY
SFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJ
VFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5U
SVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAg
ICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhz
aSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFy
Z2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgot
XT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53
My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
bj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVU
Ri04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDE5LmpzIi8+PHNjcmlwdCB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08
L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9u
Zz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAg
PHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUu
IERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhh
IFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVm
ZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBD
REFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgot
ICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20i
PgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgot
ICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgot
ICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlk
PSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJ
cnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDov
L3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkg
T2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxz
dXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAw
MDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0
ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8
L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MWRhZjJmZWYzNWVkYjM3
Mzk1ZjQ0OTczYzg4MTU1MjI2YmI3YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQyMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRl
c3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMjIKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZmQzZjQyM2Y3MzVmM2YxYjI1Y2E1ZTRjYjM2MDgyNTYzMDNhNzQ1
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTQ1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBX
b3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBU
ZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNz
IGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVk
LiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGlj
ZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsx
XSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3
YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVu
dGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAot
ICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDIyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0g
bnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rpbmcg
ZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8v
ICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3Vz
Ci0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUg
c3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlz
IGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2Yg
dGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3Qg
ZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWls
ZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEg
bmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhbiBFbnRpdHlSZWZl
cmVuY2Ugbm9kZSB3aXRoIAotCWl0cyBFbGVtZW50IHBhcmVudCwgd2l0aCBpdHNlbGYgYW5kIHZp
Y2UgdmVyc2EgdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93
bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lE
LTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQyMigpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNl
Y2hpbGQyMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJl
Zk1haW47Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgYXBw
ZW5kZWRDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxl
bWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZG9tMzpwIik7Ci0gICAgICBl
bnRSZWZNYWluID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGVu
dFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3Mg
PSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkQ2hpbGQgPSBlbnRSZWZNYWlu
LnJlcGxhY2VDaGlsZChlbGVtLGVudFJlZik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVwbGFjZWRDaGlsZCA9IGVudFJlZk1haW4ucmVwbGFjZUNoaWxkKGVudFJl
ZixlbGVtKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBl
b2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3Nl
cnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMiIsc3VjY2Vzcyk7Ci0J
fQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNl
ZENoaWxkID0gZW50UmVmTWFpbi5yZXBsYWNlQ2hpbGQoZW50UmVmTWFpbixlbnRSZWYpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQyMigpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQyMi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMjIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmMzI1NGUyY2Fi
YTMyYmI0MDUzZDc0NjQ5Y2M5ZmE4MzAxYWVkMGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQyMi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hp
bGQyMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDIzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMjMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0MThiNzdiMzhlM2JjMWMzN2FiYWY2NmRjYWVhYzBkOTRhZWI0OWY5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzCi1TdGF0dXMJU3VjY2Vzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQyMy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMjMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljMzFhZmM5ZGM3ZTU0
MDNhODVjZjQ3NTRkODZiZmM0ZWQyZTZhMTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQyMy5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3OCArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
CVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0
IHRvIHJlcGxhY2UgYW4gRWxlbWVudCwgVGV4dCwKLQlDb21tZW50LCBQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24gYW5kIENEQVRBU2VjdGlvbiBub2RlcyB3aXRoIGVhY2ggb3RoZXIgYW5kIGluIGVhY2gg
Y2FzZQotCXZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24u
Ci0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03
ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMjMoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNo
aWxkMjMiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbnRSZWY7
Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgY29tbWVudDsKLSAg
ICAgIHZhciBwaTsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAg
IHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIiwiZG9tMzpwIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2Rl
KCJUZXh0Iik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQiKTsK
LSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7Ci0g
ICAgICBwaSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEi
KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
ZWxlbS5hcHBlbmRDaGlsZChwaSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRD
aGlsZChjZGF0YSk7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChjZGF0YSxlbGVtKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMSIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlz
dWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNlZCA9IGVudFJlZi5y
ZXBsYWNlQ2hpbGQocGksY2RhdGEpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBz
dWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcp
OwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8y
IixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAg
ICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChjb21tZW50LHBpKTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19O
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMyIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNj
ZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNlZCA9IGVudFJlZi5yZXBs
YWNlQ2hpbGQodHh0LGNvbW1lbnQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBz
dWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcp
OwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl80
IixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAg
ICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChlbGVtLHR4dCk7Ci0gICAgICAg
IH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1
bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzUiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1m
dW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDIzKCk7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIz
LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQyMy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU4YTFkMjUxNjNmZDVh
M2ZiYWM3ZDEwMTQ5M2Q0YTU3MWFlYjE3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwg
dmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAg
UFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3Ry
aWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRh
ICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0
YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24x
RmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgot
ICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRt
c3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAg
ICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAg
ICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jvbnlt
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJ
VFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1l
bnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHht
bG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHht
bG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19z
dGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJz
ZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDIz
LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFb
VGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRh
YiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxs
YXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9n
ZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0g
IDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8
L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwg
RGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0
cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8
L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzMC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQ5ZjgzZTc0YjkyNjczMzFjMTcwM2JkMjhkMTZlZmMyMWY0NmZiMDcuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDMwLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzMC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzczNThmOTM0NzI2M2I4Mjdh
OGU4ODgxM2U3YWUzN2MwYjc2MzJkZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDMwLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTY4ICswLDAgQEAKLQotLyoKLUNvcHly
aWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0
aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4g
QWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2Fs
LzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAg
KiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJp
IGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0g
ICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0KLQot
Ci0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGFuIEVsZW1lbnQgbm9kZSBhdHRlbXB0IHRvIHJlcGxh
Y2UgYSBuZXcgRWxlbWVudCBjaGlsZCBub2RlIHdpdGggCi0JbmV3IGNoaWxkIG5vZGVzIGFuZCB2
aWNlIHZlcnNhIGFuZCBpbiBlYWNoIGNhc2UgdmVyaWZ5IHRoZSBuYW1lIG9mIHRoZSByZXBsYWNl
ZCBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2Nv
cmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDMwKCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJl
cGxhY2VjaGlsZDMwIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
cGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0VsZW1lbnQ7Ci0gICAg
ICB2YXIgbmV3VGV4dDsKLSAgICAgIHZhciBuZXdDb21tZW50OwotICAgICAgdmFyIG5ld1BJOwot
ICAgICAgdmFyIG5ld0NkYXRhOwotICAgICAgdmFyIG5ld0VSZWY7Ci0gICAgICB2YXIgcmVwbGFj
ZWQ7Ci0gICAgICB2YXIgbm9kZU5hbWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBwYXJlbnQg
PSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwieGh0
bWw6aHRtbCIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIiwieGh0bWw6aGVhZCIpOwotICAgICAgbmV3RWxlbWVudCA9
IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRt
bDpib2R5Iik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG9sZENo
aWxkKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3RWxlbWVu
dCk7Ci0gICAgICBuZXdUZXh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG5ld1RleHQpOwotICAgICAgbmV3Q29t
bWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50Iik7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gcGFyZW50LmFwcGVuZENoaWxkKG5ld0NvbW1lbnQpOwotICAgICAgbmV3UEkgPSBkb2MuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJ0YXJnZXQiLCJkYXRhIik7Ci0gICAgICBhcHBlbmRl
ZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG5ld1BJKTsKLSAgICAgIG5ld0NkYXRhID0gZG9j
LmNyZWF0ZUNEQVRBU2VjdGlvbigiQ2RhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJl
bnQuYXBwZW5kQ2hpbGQobmV3Q2RhdGEpOwotICAgICAgbmV3RVJlZiA9IGRvYy5jcmVhdGVFbnRp
dHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVu
ZENoaWxkKG5ld0VSZWYpOwotICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5l
d0VsZW1lbnQsb2xkQ2hpbGQpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsK
LQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfMSIsInhodG1sOmhlYWQi
LG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hp
bGQsbmV3RWxlbWVudCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8yIiwieGh0bWw6Ym9keSIsbm9k
ZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdUZXh0LG9s
ZENoaWxkKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFz
c2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzMiLCJ4aHRtbDpoZWFkIixub2RlTmFtZSk7
Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5ld1RleHQp
OwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1
YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfNCIsIiN0ZXh0Iixub2RlTmFtZSk7Ci0gICAgICAgcmVw
bGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NvbW1lbnQsb2xkQ2hpbGQpOwotICAgICAg
bm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2Rl
cmVwbGFjZWNoaWxkMzBfNSIsInhodG1sOmhlYWQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNl
ZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3Q29tbWVudCk7Ci0gICAgICBub2Rl
TmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBs
YWNlY2hpbGQzMF82IiwiI2NvbW1lbnQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBh
cmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3UEkpOwotICAgICAgbm9kZU5hbWUgPSByZXBs
YWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBf
NyIsInRhcmdldCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VD
aGlsZChvbGRDaGlsZCxuZXdDZGF0YSk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVO
YW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF84IiwiI2NkYXRh
LXNlY3Rpb24iLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hp
bGQob2xkQ2hpbGQsbmV3RVJlZik7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1l
OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF85IiwiZGVsdGEiLG5v
ZGVOYW1lKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5v
ZGVyZXBsYWNlY2hpbGQzMCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAueGh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGNkYjVjYmIxMzNmYWFmMmViNGYxMDQzZDIxZmM0MzUwOGI3ZGM3ZTMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlM
RSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFs
cGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdh
bW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBl
cHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRp
ciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQ
SWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIv
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzMC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9q
YXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3Jp
cHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFy
Z2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+
NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxs
YXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlu
b2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5j
ZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFT
ZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNv
ZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAg
PGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNv
ZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZh
cj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4
NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5n
LCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cu
YWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25u
b3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwv
ZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNw
ZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3Jv
bnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzNmOTI5MzM1ODJhNzA1NDI2MTVk
MTI1MGE0OTEwYTc0OTNkMGE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDMzCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy5qcyBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGU3NGJlNDRkNGIwYTc3MWNiNzkyMDQzNmM3YTNjMmQ4YTYyMTY0YjYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy5qcworKysgL2Rldi9udWxs
CkBAIC0xLDEyMCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQg
V2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5v
bG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQg
TWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhp
cyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2Ug
WzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0
cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0y
MDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmll
cyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAq
LwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMyI7
Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7
Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1l
d29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElm
IHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8g
ICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1
cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1l
ZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0
ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdy
dW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3Vt
ZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9
IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwot
ICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAg
IAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0
aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJv
bm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3lu
Y2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdl
IHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUg
dGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAo
Kytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIGRlZmF1
bHQgQXR0ciBub2RlIHRvIHJlcGxhY2UgaXRzIFRleHQgQ2hpbGQgd2l0aCBhIAotCW5ldyBFbnRp
dHlSZWZlcmVuY2UgTm9kZSBhbmQgdmVyaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgcmVwbGFjZWQgY2hp
bGQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJ
RC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzMoKSB7Ci0gICB2YXIg
c3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFj
ZWNoaWxkMzMiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBjaGls
ZExpc3Q7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xk
Q2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICB2
YXIgbm9kZVZhbHVlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEi
KTsKLSAgICAgIGNoaWxkTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicCIpOwotICAg
ICAgZWxlbSA9IGNoaWxkTGlzdC5pdGVtKDMpOwotICAgICAgcGFyZW50ID0gZWxlbS5nZXRBdHRy
aWJ1dGVOb2RlKCJkaXIiKTsKLSAgICAgIG9sZENoaWxkID0gcGFyZW50Lmxhc3RDaGlsZDsKLQot
ICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsK
LSAgICAgIG5vZGVWYWx1ZSA9IHJlcGxhY2VkLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1
YWxzKCJub2RlcmVwbGFjZWNoaWxkMzMiLCJydGwiLG5vZGVWYWx1ZSk7Ci0gICAgICAgCi19Ci0K
LQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzMoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzMueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDMzLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzk5MGMx
NTgwNjU1NWVkZWNkMTVmMzIxMDFhOGNmYTI0NjNhNjdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzMueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBA
Ci08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBo
dG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInho
dG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5U
SVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5U
SVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwh
RU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJu
b3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24y
RmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAg
eG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1s
Ci0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAg
ICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNU
IHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVt
YmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAg
ICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5j
ZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxl
PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3Jp
cHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFj
ZWNoaWxkMzMuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9
ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMg
YSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08
IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNl
IHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAg
PHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0
cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwv
Y29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4
NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBE
YWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRw
Oi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3Jk
aWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNDM1ZWU0ZDU4NmNmMDA5ODZjOTAxZWVkNGYxNGM5NDczYmM3M2ViYy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNAotU3RhdHVzCVN1Y2Nl
c3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzQuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDM0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjRhMzVhMDFl
YTRlM2U4ZmJhOWMwOTMyMWEyZjgwNDg4MmU1YmVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQiOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgQXR0ciBub2RlLCByZXBsYWNlIGl0cyBu
ZXcgRW50aXR5UmVmZXJlbmNlIENoaWxkIHdpdGggYSAKLQluZXcgVGV4dCBOb2RlIGFuZCB2ZXJp
ZnkgdGhlIHZhbHVlIG9mIHRoZSBuZXcgY2hpbGQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhv
ciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1M
ZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2Rl
cmVwbGFjZWNoaWxkMzQoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxp
emF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzQiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAg
ICB2YXIgbmV3Q2hpbGQ7Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVk
Q2hpbGQ7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwg
ImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5T
KCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIpOwotICAg
ICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChvbGRDaGlsZCk7Ci0gICAgICBuZXdD
aGlsZCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgcmVwbGFjZWQgPSBwYXJl
bnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAgIG5vZGVWYWx1ZSA9IHBh
cmVudC52YWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzQiLCJU
ZXh0Iixub2RlVmFsdWUpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgbm9kZXJlcGxhY2VjaGlsZDM0KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC54aHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzA2OWJiMDM4MGQxNWRjZTM1YWNhODUwYTU4MzYyYjRk
MWI2YzJiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9U
RVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFF
TlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwh
RU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAg
ICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5z
OnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJ
dGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVE
PgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3
dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2Nh
dGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM0LmpzIi8+PHNjcmlwdCB0eXBl
PSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7
IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0
cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4K
LSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBB
dmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFy
dGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5
UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2Vu
dCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25n
PgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1
NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5j
b20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25n
PgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3Vw
PgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8i
IGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAy
NyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0
cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkpl
bnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0g
IDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5F
TVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29t
cHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1
NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1MWM5ODhmNjRmYzk4
MzIzNTg3MjhjMTAzNzVhNzI5NmEwNzc2ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzNS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzUKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMWJhZTg2N2E1ZWYyYmI3ZGNhOTFlYjcyN2YyZGM1NWM2MDgx
MTliMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTI0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDM1IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVy
ID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rp
bmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8K
LS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9u
b3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0
aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9u
IGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkg
b2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRl
c3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBi
dWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9
IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4
KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAg
VGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNo
IGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBl
dmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAg
dGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5
IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewot
ICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9u
IGEgbmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IEVudGl0eVJlZmVybmVjZSBDaGlsZCB3
aXRoIGEgCi0JbmV3IEF0dHIgTm9kZSBhbmQgdmVyaWZ5IGlmIGEgSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNSgp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVyZXBsYWNlY2hpbGQzNSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsK
LSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIHZh
ciByZXBsYWNlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMu
b3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
cGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0
ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6
bGFuZyIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAg
ICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwot
ICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2Rl
KSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDMpOwotCQl9Ci0JCWFzc2VydFRydWUoInRo
cm93X0hJRVJBUkNIWV9SRVFVRVNUX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzUoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTY3MjFjZDk0ZjE1ZTI2
Y2ZlNWFjZjgzNTQyM2ZmZDZkNjk4OGE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJp
Y3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEg
IiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRh
ICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFs
cGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFG
aWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0g
ICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1z
dGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAg
ICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0g
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElU
WSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVu
dCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1s
bnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+
Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1s
bnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAg
ICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0
YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNl
dD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzUu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDM2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOTE5OWUwMTYxMTliY2I5MDQxMjQ5M2M3MmYxMGVhZjE4NzNjNDc2MS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MzYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWEyMjViZWVmMmZhMzhlZWM5
NWUwMDhlMTJiNjc5NTc2YzBhNGEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjIgKzAsMCBAQAotCi0vKgotQ29weXJp
Z2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1
c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRp
dW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBB
bGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUg
VzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwv
MjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAq
ICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkg
aWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAg
ICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2lu
ZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgQXR0ciBub2RlLCByZXBsYWNlIGl0cyBuZXcgRW50aXR5
UmVmZXJuZWNlIG5vZGUgd2l0aCBhIAotCW5ldyBUZXh0IE5vZGUgYW5kIHZlcmlmeSBpZiBhIE5P
VF9GT1VORF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBE
ZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1D
b3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2Vj
aGlsZDM2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihi
dWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDM2IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBk
b2M7Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5l
d0NoaWxkOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBwYXJlbnQg
PSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVz
cGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbnRpdHlSZWZl
cmVuY2UoImRlbHRhIik7Ci0gICAgICBuZXdDaGlsZCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4
dCIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAg
ICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDgpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9GT1VORF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2FhODgwYjA3MmEzNTc4NDAxZmIxYmVlZmQ3
YTI0YTZhYzE4ODBjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM2LmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyYzFhYTVi
Zjg4OWQyNTY2YWEzNTNiMDljNDQxYWE3N2EwYmY2YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzcKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXRocm93X1dS
T05HX0RPQ1VNRU5UX0VSUjogYXNzZXJ0VHJ1ZSBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmQwMjY0NDEzZGI3NjZiYjRhZmYyMDYzNGE5ODdjMzky
MTc0NDg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0y
MDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl
IG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3Jt
YXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVz
ZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2Fy
ZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAK
LQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQt
c29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0
IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0
ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICB2YXIgZG9jMlJlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jMikgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jMlJlZiA9IHRo
aXMuZG9jMjsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2MyUmVmLCAi
ZG9jMiIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAy
KSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0g
ICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwg
ZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAK
LS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8v
Ci0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0
ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUK
LS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDIpIHsKLSAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJl
cGxhY2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBUZXh0IG5vZGUg
d2l0aCBhIAotCW5ldyBFbnRpdHlSZWZlcmVuY2UgTm9kZSBjcmVhdGVkIGJ5IGFub3RoZXIgZG9j
dW1lbnQgYW5kIHZlcmlmeSBpZiBhIAotCVdST05HX0RPQ1VNRU5UX0VSUiBpcyByYWlzZWQuCi0K
LSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4
ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzcoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxk
MzciKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2MyOwotICAg
ICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsK
LSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICB2YXIgYXBw
ZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAKLSAgICAgIHZhciBkb2MyUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MyKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2MyUmVmID0gdGhpcy5kb2My
OwotICAgICAgfQotICAgICAgZG9jMiA9IGxvYWQoZG9jMlJlZiwgImRvYzIiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5v
cmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9j
LmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICBuZXdDaGlsZCA9IGRvYzIuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBl
bmRDaGlsZChvbGRDaGlsZCk7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxv
bGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlw
ZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNCk7Ci0JCX0KLQkJYXNz
ZXJ0VHJ1ZSgidGhyb3dfV1JPTkdfRE9DVU1FTlRfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQot
Ci0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNygpOwotfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzcueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ZGRiZDIz
MzE5OTdlMzMzODVmYWEwZmYyNzMyOTQ5YmVmYmFmNjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzNy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNl
Y2hpbGQzNy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNl
dHRleHRjb250ZW50MTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDc2MDkzNGZlYzRkOTQ3ODZhZTFiZjU4ZjVkNDVhNTliMWE5MmM1Ni4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAKLVN0YXR1
cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTAuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXNldHRleHRjb250ZW50MTAuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE1NzFhZTc3MzhhMGIyODNiYzkyYzg3YWZkM2FjNTEzNjI5YjMxNTYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMx
ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBD
b25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJv
cGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGlj
cywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhl
IAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3Lncz
Lm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0q
LwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0
LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlv
biBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJu
YW1lc3BhY2VBd2FyZSIsIHRydWUpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRl
KCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAw
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkg
ewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRo
aXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBh
c3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZl
cnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRo
ZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBv
ZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAg
ICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRob2Qgc2V0VGV4dENvbnRl
bnQgaGFzIG5vIGVmZmVjdCB3aGVuIHRoZSBub2RlIGlzIGRlZmluZWQgdG8gYmUgbnVsbC4KLQkK
LQlVc2luZyBzZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbGVtZW50IG5vZGUsIGF0dGVtcHQgdG8g
c2V0IGl0cyBjb250ZW50IHRvIEVMRU1FTlQuCi0JUmV0cmVpdmUgdGhlIHRleHRDb250ZW50IGFu
ZCB2ZXJpZnkgaWYgaXQgaXMgd2FzIHNldCB0byBFTEVNRU5ULgotCi0qIEBhdXRob3IgSUJNCi0q
IEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JF
Qy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1m
dW5jdGlvbiBub2Rlc2V0dGV4dGNvbnRlbnQxMCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR0ZXh0Y29udGVudDEwIikgIT0g
bnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciB0
eHQ7Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2Rh
dGE7Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBw
ZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcv
RE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgi
VGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsK
LSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAg
IHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwot
ICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0u
YXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENo
aWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsK
LSAgICAgIGVsZW0udGV4dENvbnRlbnQgPSAiRUxFTUVOVCI7Ci0KLSAgICAgIHRleHRDb250ZW50
ID0gZWxlbS50ZXh0Q29udGVudDsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2Rlc2V0dGV4dGNv
bnRlbnQxMCIsIkVMRU1FTlQiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR0ZXh0Y29udGVudDEwKCk7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50
MTAueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRj
b250ZW50MTAueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlZGU3NjBmMGYw
YTJiNzU4ZTZmMmVlODBlMzBjNWM5ZjRhNTc0NWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVzZXR0ZXh0Y29udGVudDEwLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRt
bAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRt
bDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElU
WSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElU
WSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90
YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZp
bGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHht
bG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAot
ICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAg
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBz
cGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAg
ICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
Ci0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXNldHRleHRj
b250ZW50MTAuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9
ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMg
YSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08
IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNl
IHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAg
PHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0
cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwv
Y29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4
NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBE
YWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRw
Oi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3Jk
aWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGJiYzE0NzA4ODZiZjA0ZTRiMDk1MjY3ZjY1MzQ1ZTA0YjNlYTMzNmMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExCi1TdGF0
dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVzZXR0ZXh0Y29udGVudDExLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVzZXR0ZXh0Y29udGVudDExLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkNDQzMWY3OTIzMWYwMGIyNGM1NDgwOGE5NjhjMzkzOWU2MzFlMmVjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS5qcworKysgL2Rldi9udWxsCkBAIC0xLDEz
NSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIg
Q29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVy
b3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRp
Y3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlz
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRo
ZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53
My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQot
Ki8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVz
dC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rp
b24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExIjsKLSAgIH0K
LQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8K
LS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJl
Zm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUg
YXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAg
ZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAg
ICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5
Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0v
LwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcn
OwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVp
bGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRl
Q29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAg
IAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNo
SW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxv
YWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91
cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVz
IGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRv
IGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0vKioKLSogCi0KLQkKLQlVc2luZyBzZXRUZXh0Q29udGVudCBvbiBhIG5ldyBE
b2N1bWVudEZyYWdtZW50IG5vZGUgRWxlbWVudCBjaGlsZCwgYXR0ZW1wdCB0byBzZXQgaXRzIGNv
bnRlbnQgdG8gCi0JRE9DVU1FTlRGUkFHTUVOVC4gIFJldHJlaXZlIHRoZSB0ZXh0Q29udGVudCBh
bmQgdmVyaWZ5IGlmIGl0IGlzIHdhcyBzZXQgdG8gRE9DVU1FTlRGUkFHTUVOVAotCi0qIEBhdXRo
b3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRl
bnQKLSovCi1mdW5jdGlvbiBub2Rlc2V0dGV4dGNvbnRlbnQxMSgpIHsKLSAgIHZhciBzdWNjZXNz
OwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR0ZXh0Y29udGVu
dDExIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsK
LSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVsZW1DaGlsZDsKLSAgICAgIHZhciB0eHQ7Ci0g
ICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0g
ICAgICB2YXIgcGk7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRD
aGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVsZW0g
PSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwieGh0
bWw6cCIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0ICIpOwotICAgICAg
Y29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwotICAgICAgZW50UmVmID0g
ZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0
ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEgPSBk
b2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVs
ZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENo
aWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50
UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAg
IGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVsZW0pOwotICAgICAgZWxlbS50ZXh0Q29udGVu
dCA9ICJET0NVTUVOVEZSQUdNRU5UIjsKLQotICAgICAgZWxlbUNoaWxkID0gZG9jRnJhZy5sYXN0
Q2hpbGQ7Ci0KLSAgICAgIHRleHRDb250ZW50ID0gZWxlbUNoaWxkLnRleHRDb250ZW50OwotCi0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVudDExIiwiRE9DVU1FTlRGUkFHTUVO
VCIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgbm9kZXNldHRleHRjb250ZW50MTEoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDJjYmQwNGFjOTFmZDk4ZjQwMjEzOTc0MzE5
ODVkZGUxYjgxM2ZmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50
MTEueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBb
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+
Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsi
PgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1
MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJ
U1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAg
ICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8
c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9z
cGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEg
I0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0dGV4dGNvbnRlbnQxMS5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDEyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MmEwZmJmNDJiMmU5Njc1MDgzZjIxN2MxNWZhZDc4MmRkN2ZkZDQ0Yi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250
ZW50MTIuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRj
b250ZW50MTIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2YzM2ZmU2YjExZWNi
ZTgxYzU2MzZkYWFlYTgwYjQ1OWI3MGE4N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDEyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI2ICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIiOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBu
b2RlLCBhdHRlbXB0IHRvIHNldCBpdHMgdmFsdWUuCi0JU2luY2UgRW50aXR5UmVmZXJlbmNlIG5v
ZGVzIGFyZSBSZWFkT25seSwgY2hlY2sgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIg
IAotCWlzIHJhaXNlZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9kZXNldHRleHRjb250
ZW50MTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJub2Rlc2V0dGV4dGNvbnRlbnQxMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIg
ZG9jOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIHRleHRD
b250ZW50OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRv
Y1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5kb2N1bWVudEVsZW1l
bnQ7Ci0KLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsK
LSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICAK
LQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGVudFJlZi50ZXh0
Q29udGVudCA9ICJOQSI7Ci0KLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2Vz
cyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJ
fQotCQlhc3NlcnRUcnVlKCJub2Rlc2V0dGV4dGNvbnRlbnQxMiIsc3VjY2Vzcyk7Ci0JfQotCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dGV4dGNvbnRlbnQxMigp
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDEyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVzZXR0ZXh0Y29udGVudDEyLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2NGJmOTY4N2EwZWI0ZDg3Mzk0MjczMzU1ZjA3MzQzZDFmMWJjOTM3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/Pgot
PCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8v
RU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsi
PgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0Nzsi
PgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0
OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVN
ICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRs
JwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0g
ICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMg
Y29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
ZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Im5vZGVzZXR0ZXh0Y29udGVudDEyLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
PmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+
PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0
aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMg
OTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtD
REFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAy
ICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0
aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRh
cnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAw
MzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRt
ZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0Ozwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4
NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEu
Y29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25n
PgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFs
cGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+Mjcg
U291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0
cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwv
Y29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9w
PgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OGQ3YWYyZmY5ODNlMTczMWUwNmRhZGI1M2Y0ODAyZmRk
ZTJmNmVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOAotU3Rh
dHVzCWVycm9yCi1NZXNzYWdlCUxpbmUgMTEzOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWI2ZjU4NjNiZjQ2NzhhZTUwYWU5NWQ4ODZkNjZlMGM4
ZTM1NGRkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDguanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0y
MDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl
IG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3Jt
YXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVz
ZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2Fy
ZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAK
LQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQt
c29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0
IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0
ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dXNl
cmRhdGEwOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSBzZXRVc2VyRGF0YSBv
biBhIENEQVRBU2VjdGlvbiBhbmQgRW50aXR5UmVmZXJlbmNlIG5vZGUgdG8gc2V0IHRoZWlyIAot
CVVzZXJEYXRhIHRvIHRoaXMgRG9jdW1lbnQgYW5kIERvY3VtZW50RWxlbWVudCBub2RlLiAgVmVy
aWZ5IGlmIHRoZSBVc2VyRGF0YSAKLQlvYmplY3QgdGhhdCB3YXMgc2V0IGZvciBib3RoIG5vZGVz
IGlzIGRpZmZlcmVudC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI05vZGUzLXNldFVzZXJEYXRhCi0qLwotZnVuY3Rpb24gbm9kZXNldHVzZXJkYXRh
MDgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJub2Rlc2V0dXNlcmRhdGEwOCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwot
ICAgICAgdmFyIGRvY0VsZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNEYXRhOwot
ICAgICAgdmFyIGVsZW1MaXN0OwotICAgICAgdmFyIGVsZW1OYW1lOwotICAgICAgdmFyIHVzZXJE
YXRhOwotICAgICAgdmFyIHJldHVybmVkMTsKLSAgICAgIHZhciByZXR1cm5lZDI7Ci0gICAgICB2
YXIgc3VjY2VzczsKLSAgICAgIHZhciByZXRVc2VyRGF0YTsKLSAgICAgIHZhciBudWxsSGFuZGxl
ciA9IG51bGw7Ci0KLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50UmVm
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGNEYXRhID0gZG9j
LmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7Ci0gICAgICBpZiAobnVsbCA9PSBu
dWxsSGFuZGxlcikgewotICAgICAgICAgZW50UmVmLnNldFVzZXJEYXRhKCJLZXkxIiwgZG9jLCBu
dWxsKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgZW50UmVmLnNldFVzZXJEYXRhKCJLZXkx
IiwgZG9jLCBudWxsSGFuZGxlci5oYW5kbGUpOwotICAgICAgfQotICAgICAgIGlmIChudWxsID09
IG51bGxIYW5kbGVyKSB7Ci0gICAgICAgICBjRGF0YS5zZXRVc2VyRGF0YSgiS2V5MiIsIGRvY0Vs
ZW0sIG51bGwpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBjRGF0YS5zZXRVc2VyRGF0YSgi
S2V5MiIsIGRvY0VsZW0sIG51bGxIYW5kbGVyLmhhbmRsZSk7Ci0gICAgICB9Ci0gICAgICAgcmV0
dXJuZWQxID0gZW50UmVmLmdldFVzZXJEYXRhKCJLZXkxIik7Ci0gICAgICByZXR1cm5lZDIgPSBj
RGF0YS5nZXRVc2VyRGF0YSgiS2V5MiIpOwotICAgICAgc3VjY2VzcyA9IHJldHVybmVkMS5pc0Vx
dWFsTm9kZShyZXR1cm5lZDIpOwotICAgICAgYXNzZXJ0RmFsc2UoIm5vZGVzZXR1c2VyZGF0YTA4
IixzdWNjZXNzKTsKLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXNl
dHVzZXJkYXRhMDgoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNGY0NjQwNjk2ZTZmOTI0M2E2MDgxZjc5MjIxNzhkYzFlYjZhYWZjYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJub2Rlc2V0dXNlcmRhdGEwOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0
Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFk
Pjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFy
dGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFz
IDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2Eu
Y29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFb
Q0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIg
MiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdp
dGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0
YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5
ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3Rh
LmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9u
Zz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZh
bHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3
IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxz
dHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8
L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwv
cD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyNWEzODA5ZDc5MDFmYTA0NDZjNzc3
N2I0ZWFhY2JkNGY0ZWUxMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hv
bGV0ZXh0MDYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJl
cGxhY2V3aG9sZXRleHQwNgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMThmMjc2MTI0MzUxNGFiYTE2ZmJmNDMyZmNl
YzhhZmQzN2NkMDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0
MDYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOC
wqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMg
SW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1m
b3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1S
aWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LC
riBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQg
d2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9j
b3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRz
IFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRp
ZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJl
dHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90
ZXh0cmVwbGFjZXdob2xldGV4dDA2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAw
MDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxs
ZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0
ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0
aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVk
LiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFu
ZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50
ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewot
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAg
Ly8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgot
ICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAg
ICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAg
ICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIs
IHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0g
cHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYg
KGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlv
bkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhl
IGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGlu
IHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1
bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3
aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQu
Ci1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8q
KgotKiAKLQlUaGUgbWV0aG9kIHJlcGxhY2VXaG9sZVRleHQgc3Vic3RpdHV0ZXMgdGhlIGEgc3Bl
Y2lmaWVkIHRleHQgZm9yIHRoZSB0ZXh0IG9mIAotCXRoZSBjdXJyZW50IG5vZGUgYW5kIGFsbCBs
b2dpY2FsbHktYWRqYWNlbnQgdGV4dCBub2Rlcy4gIFRoaXMgbWV0aG9kIHJhaXNlcwotCWEgTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlmIG9uZSBvZiB0aGUgVGV4dCBub2RlcyBiZWluZyBy
ZXBsYWNlZCBpcyByZWFkb25seS4KLQkKLQlJbnZva2UgcmVwbGFjZVdob2xlVGV4dCBvbiBhbiBl
eGlzdGluZyB0ZXh0IG5vZGUgd2l0aCBuZXdseSBjcmVhdGVkIHRleHQgYW5kIEVudGl0eXJlZmVy
ZW5jZQotCW5vZGVzICh3aG9zZSByZXBsYWNlbWVudCB0ZXh0IGlzIGEgY2hhcmFjdGVyIGVudGl0
eSByZWZlcmVuY2UpIGFwcGVuZGVkIGFzIGNoaWxkcmVuIG9mIGl0cyBwYXJlbnQgZWxlbWVudCBu
b2RlLiAgCi0JV2hlcmUgdGhlIG5vZGVzIHRvIGJlIHJlbW92ZWQgYXJlIHJlYWQtb25seSBkZXNj
ZW5kYW50cyBvZiBhbiBFbnRpdHlSZWZlcmVuY2UsIHRoZSBFbnRpdHlSZWZlcmVuY2UgCi0gICAg
ICAgIG11c3QgYmUgcmVtb3ZlZCBpbnN0ZWFkIG9mIHRoZSByZWFkLW9ubHkgbm9kZXMuIE9ubHkg
aWYgYW55IEVudGl0eVJlZmVyZW5jZSB0byBiZSByZW1vdmVkIGhhcyAKLSAgICAgICAgZGVzY2Vu
ZGFudHMgdGhhdCBhcmUgbm90IEVudGl0eVJlZmVyZW5jZSwgVGV4dCwgb3IgQ0RBVEFTZWN0aW9u
IG5vZGVzLCB0aGUgcmVwbGFjZVdob2xlVGV4dCAKLSAgICAgICAgbWV0aG9kIG11c3QgZmFpbCwg
cmFpc2luZyBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUi4gVmVyaWZ5IHRoYXQgdGhlIG1l
dGhvZCBkb2VzIG5vdCByYWlzZQotICAgICAgICBhbiBleGNlcHRpb24gYW5kIHZlcmlmeSB0aGUg
Y29udGVudCBvZiB0aGUgcmV0dXJuZWQgdGV4dCBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBh
dXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1E
T00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdob2xlVGV4dAotKi8K
LWZ1bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0ZXh0cmVwbGFjZXdob2xldGV4dDA2
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgaXRlbUxpc3Q7Ci0g
ICAgICB2YXIgZWxlbWVudFN0cm9uZzsKLSAgICAgIHZhciB0ZXh0Tm9kZTsKLSAgICAgIHZhciBl
cmVmTm9kZTsKLSAgICAgIHZhciByZXBsYWNlZFRleHQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGls
ZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgaXRlbUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoInN0cm9uZyIpOwotICAgICAgZWxlbWVudFN0cm9uZyA9IGl0ZW1MaXN0Lml0ZW0oMCk7Ci0g
ICAgICB0ZXh0Tm9kZSA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiTmV3IFRleHQiKTsKLSAgICAgIGVy
ZWZOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGVsZW1lbnRTdHJvbmcuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGVsZW1lbnRTdHJvbmcuYXBwZW5kQ2hpbGQoZXJlZk5vZGUpOwotICAgICAg
dGV4dE5vZGUgPSBlbGVtZW50U3Ryb25nLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIHJlcGxhY2VkVGV4
dCA9IHRleHROb2RlLnJlcGxhY2VXaG9sZVRleHQoIk5ldyBUZXh0IGFuZCBDZGF0YSIpOwotICAg
ICAgbm9kZVZhbHVlID0gdGV4dE5vZGUubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMo
InRleHRyZXBsYWNld2hvbGV0ZXh0MDYiLCJOZXcgVGV4dCBhbmQgQ2RhdGEiLG5vZGVWYWx1ZSk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICB0ZXh0cmVwbGFj
ZXdob2xldGV4dDA2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3OTcwYjYwYjEwOTA4YTBjNzlmZDU3YzgxMzliZDkxOGMzNzFl
YzJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LnhodG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9U
RVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFF
TlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwh
RU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAg
ICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5z
OnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJ
dGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVE
PgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3
dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2Nh
dGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0idGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3
aG9sZXRleHQwNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEw
NzVlY2JkMDhlNjg2ZjY5ZmFmZTRhNjM3YWM5NjU2MjBhMmY0OWMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNwotU3RhdHVzCVN1Y2Nlc3MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdo
b2xldGV4dDA3LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBs
YWNld2hvbGV0ZXh0MDcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlNjRkMzJk
ZDMxMzI5ZDY3YTk5MWE3OTE0MjEwMGYwMDFmM2ViMDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzkgKzAsMCBA
QAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRp
dW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJl
c2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlv
IFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmli
dXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0Nv
bnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQot
Ci0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAg
KiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRh
cmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3IjsKLSAgIH0KLQotdmFy
IGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAg
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQot
Ly8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5v
IGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1l
bnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAg
aXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAg
ICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVu
Y3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAg
dHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwg
bWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmln
dXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNw
YWNlQXdhcmUiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1BcHBlbmQgYW4gZW50aXR5IHJlZmVyZW5jZSBhbmQgYSB0ZXh0IG5v
ZGUgYWZ0ZXIgdG8gdGhlIGNvbnRlbnQgb2YgdGhlCi1maXJzdCBzdHJvbmcgZWxlbWVudC4gIFRo
ZW4gY2FsbCByZXBsYWNlV2hvbGVUZXh0IG9uIGluaXRpYWwgY29udGVudAotb2YgdGhhdCBlbGVt
ZW50LiAgU2luY2UgdGhlIGVudGl0eSByZWZlcmVuY2UgZG9lcyBub3QgY29udGFpbiBhbnkgCi1s
b2dpY2FsbHktYWRqYWNlbnQgdGV4dCBjb250ZW50LCBvbmx5IHRoZSBpbml0aWFsIHRleHQgZWxl
bWVudCBzaG91bGQKLWJlIHJlcGxhY2VkLiAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5l
aWwgRGVsaW1hCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9y
Zy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFj
ZVdob2xlVGV4dAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVn
LmNnaT9pZD00MjUKLSovCi1mdW5jdGlvbiB0ZXh0cmVwbGFjZXdob2xldGV4dDA3KCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAidGV4dHJl
cGxhY2V3aG9sZXRleHQwNyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIGl0ZW1MaXN0OwotICAgICAgdmFyIGVsZW1lbnROYW1lOwotICAgICAgdmFyIHRleHROb2Rl
OwotICAgICAgdmFyIGVyZWZOb2RlOwotICAgICAgdmFyIHJlcGxhY2VkVGV4dDsKLSAgICAgIHZh
ciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIG5vZGU7Ci0gICAgICB2YXIgbm9kZVZhbHVlOwot
ICAgICAgdmFyIG5vZGVUeXBlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgIGl0ZW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJz
dHJvbmciKTsKLSAgICAgIGVsZW1lbnROYW1lID0gaXRlbUxpc3QuaXRlbSgwKTsKLSAgICAgIGVy
ZWZOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgdGV4dE5v
ZGUgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIk5ldyBUZXh0Iik7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gZWxlbWVudE5hbWUuYXBwZW5kQ2hpbGQoZXJlZk5vZGUpOwotICAgICAgYXBwZW5kZWRDaGls
ZCA9IGVsZW1lbnROYW1lLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICAgIHRleHROb2RlID0g
ZWxlbWVudE5hbWUuZmlyc3RDaGlsZDsKLQotICAgICAgcmVwbGFjZWRUZXh0ID0gdGV4dE5vZGUu
cmVwbGFjZVdob2xlVGV4dCgiTmV3IFRleHQgYW5kIENkYXRhIik7Ci0gICAgICB0ZXh0Tm9kZSA9
IGVsZW1lbnROYW1lLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydFNhbWUoInJldHZhbF9zYW1l
Iix0ZXh0Tm9kZSxyZXBsYWNlZFRleHQpOwotbm9kZVZhbHVlID0gdGV4dE5vZGUubm9kZVZhbHVl
OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVWYWx1ZVNhbWUiLCJOZXcgVGV4dCBhbmQgQ2Rh
dGEiLG5vZGVWYWx1ZSk7Ci0gICAgICAgbm9kZSA9IHRleHROb2RlLm5leHRTaWJsaW5nOwotCi0g
ICAgICBhc3NlcnROb3ROdWxsKCJzZWNvbmRDaGlsZE5vdE51bGwiLG5vZGUpOwotbm9kZVR5cGUg
PSBub2RlLm5vZGVUeXBlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoInNlY29uZENoaWxkSXNFbnRS
ZWYiLDUsbm9kZVR5cGUpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgdGV4dHJlcGxhY2V3aG9sZXRleHQwNygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcueGh0bWwgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQyOTc3YmExODhhYTFiMTM4ODY2
ZWRhYjM1NTViNzk3YzI0MTc4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3
aG9sZXRleHQwNy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InRleHRyZXBsYWNld2hvbGV0ZXh0
MDcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNl
d2hvbGV0ZXh0MDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyNDUxYTQ2NmI2NDMxYTI0ZDZiN2E0OTMyYTZkY2QzMTQ0NWU2NDJlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgKLVN0
YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjog
YXNzZXJ0VHJ1ZSBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDguanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGUwODU0YjMwZjJmZmE3NGQ3M2E3MTRhZmY3ZGM3YmQzMGEwNTg5YzEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDguanMKKysrIC9kZXYv
bnVsbApAQCAtMSwxMjYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdv
cmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRl
Y2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3Mg
YW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQu
IFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNl
bnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFd
IGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdh
cmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50
aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0g
ICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3
dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xl
dGV4dDA4IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVy
ID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rp
bmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8K
LS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9u
b3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0
aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9u
IGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkg
b2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRl
c3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBi
dWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9
IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImJhcmZv
byIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkg
ewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRo
aXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBh
c3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZl
cnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRo
ZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBv
ZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAg
ICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotQXBwZW5kcyBhbiBlbnRpdHkgcmVmZXJl
bmNlIGNvbnRhaW5pbmcgdGV4dCBhbmQgYW4gZWxlbWVudCB0byBhbiBleGlzdGluZwotdGV4dCBu
b2RlLCB0aGVuIGNhbGxzIFRleHQucmVwbGFjZVdob2xlVGV4dCBvbiB0aGUgZXhpc3RpbmcgdGV4
dCBub2RlLgotQSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgc2hvdWxkIGJlIHRocm93bi4K
LQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI1RleHQzLXJlcGxhY2VXaG9sZVRl
eHQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9
NDI1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lk
PTU0MAotKi8KLWZ1bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDgoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0ZXh0cmVwbGFjZXdo
b2xldGV4dDA4IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgaXRl
bUxpc3Q7Ci0gICAgICB2YXIgcDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgbm9kZTsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgaXRl
bUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKTsKLSAgICAgIHAgPSBpdGVtTGlz
dC5pdGVtKDApOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50
MiIpOwotICAgICAgbm9kZSA9IHAuYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIG5vZGUgPSBw
LmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgbm9kZSA9IG5vZGUucmVwbGFjZVdob2xlVGV4dCgieW8iKTsKLSAgICAgICAg
fQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3Vu
ZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19N
T0RJRklDQVRJT05fQUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgdGV4dHJlcGxhY2V3aG9sZXRleHQwOCgpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0
ZXh0MDgueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxh
Y2V3aG9sZXRleHQwOC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZhZTk5
NjlhZjhjNmQxMDIzNGZhMDAzNjJkNzg1M2U2OTdkMGQxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sIFsKLTwhRU5USVRZIGVudDEgJ2Zvbyc+Ci08IUVOVElUWSBl
bnQyICdmb288YnIvPic+Ci08IUVMRU1FTlQgaHRtbCAoaGVhZCwgYm9keSk+Ci08IUFUVExJU1Qg
aHRtbCB4bWxucyBDREFUQSAjSU1QTElFRD4KLTwhRUxFTUVOVCBoZWFkICh0aXRsZSxzY3JpcHQq
KT4KLTwhRUxFTUVOVCBzY3JpcHQgKCNQQ0RBVEEpPgotPCFBVFRMSVNUIHNjcmlwdCAKLSAgICAg
c3JjIENEQVRBICNJTVBMSUVECi0gICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKLSAgICAgY2hhcnNl
dCBDREFUQSAjSU1QTElFRD4KLTwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Ci08IUVMRU1FTlQg
Ym9keSAocCk+Ci08IUFUVExJU1QgYm9keSBvbmxvYWQgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1F
TlQgcCAoI1BDREFUQXxicikqPgotPCFFTEVNRU5UIGJyIEVNUFRZPgotXT4KLTxodG1sIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz4KLTxoZWFkPgotPHRpdGxlPnJlcGxhY2VX
aG9sZVRleHQgc2FtcGxlPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBz
cmM9J3NlbGZ4aHRtbC5qcyc+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSdVVEYtOCcgdHlwZT0n
dGV4dC9qYXZhc2NyaXB0JyBzcmM9J3RleHRyZXBsYWNld2hvbGV0ZXh0MDguanMnPjwvc2NyaXB0
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkQ29tcGxl
dGUoKSI+Ci08cD5iYXI8L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhj
ZXB0aW9ucy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhYzNk
OWNiZGY3MDBlNjk2YjZhMDc0ODUwYzYyNmM0Mzg2MzY3OTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVm
ZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMjMgKzAsMCBAQAotVGVzdCB0byBtYWtlIHN1cmUgRW50aXR5UmVmZXJlbmNlIG5vZGVzIGFy
ZSBhbHdheXMgdHJlYXRlZCByZWFkb25seQotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotUEFTUyB4bWxEb2MyLmFkb3B0Tm9kZShlbnRpdHlSZWZlcmVuY2UpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBB
U1MgZW50aXR5UmVmZXJlbmNlLm93bmVyRG9jdW1lbnQgaXMgeG1sRG9jCi1QQVNTIGVudGl0eVJl
ZmVyZW5jZS5ub2RlVmFsdWUgPSAnZm9vJyB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1QQVNTIGVudGl0eVJlZmVyZW5j
ZS5ub2RlVmFsdWUgaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2UucHJlZml4ID0gJ2Zvbycg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOYW1lc3BhY2VFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNC4K
LVBBU1MgZW50aXR5UmVmZXJlbmNlLnByZWZpeCBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5j
ZS50ZXh0Q29udGVudCA9ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLUZBSUwgZW50aXR5UmVmZXJlbmNlLnRl
eHRDb250ZW50IHNob3VsZCBiZSA+LiBXYXMgLgotRkFJTCBjaGlsZHJlbkJlZm9yZUZhaWxlZEFw
cGVuZCBzaG91bGQgYmUgMS4gV2FzIDAuCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5hcHBlbmRDaGls
ZCh0ZXh0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
OiBET00gRXhjZXB0aW9uIDcuCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0
aCBpcyBjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZAotRkFJTCBjaGlsZHJlbkJlZm9yZUZhaWxl
ZEFwcGVuZCBzaG91bGQgYmUgMS4gV2FzIDAuCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5pbnNlcnRC
ZWZvcmUodGV4dCwgZW50aXR5UmVmZXJlbmNlLmZpcnN0Q2hpbGQpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1Mg
ZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIGlzIGNoaWxkcmVuQmVmb3JlRmFpbGVk
QXBwZW5kCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRv
bmx5LWV4Y2VwdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5j
ZS9yZWFkb25seS1leGNlcHRpb25zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNmYjE2NDFiZWQ0NDczMDcwZmJjMmU5ZjM0OWMxOWNiODFkM2U4ZjIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50
aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlvbnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDEwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9yZWFkb25seS1leGNlcHRpb25zLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9z
Y3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJl
ZmVyZW5jZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNGJlZWQ5M2E1ZTA2ZDg4NDEyOGRmM2IzNGRiNTQyZDg1MDcxZTM1ZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9FbnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQg
c3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRl
c3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlS
ZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFmMjQ2NTdkODJkYjNlOGE3ZmJiZTQ4NzdkM2QzZDYzYjEwOWQ0
NzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9yZWFkb25seS1leGNl
cHRpb25zLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRl
c3QgdG8gbWFrZSBzdXJlIEVudGl0eVJlZmVyZW5jZSBub2RlcyBhcmUgYWx3YXlzIHRyZWF0ZWQg
cmVhZG9ubHkiKQotCi12YXIgeG1sRG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
RG9jdW1lbnQoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiaHRtbCIsIG51bGwpOwot
dmFyIHhtbERvYzIgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7Ci12YXIgZW50aXR5UmVm
ZXJlbmNlID0geG1sRG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZ3QiKTsKLQotc2hvdWxkVGhy
b3coInhtbERvYzIuYWRvcHROb2RlKGVudGl0eVJlZmVyZW5jZSkiKTsKLXNob3VsZEJlKCJlbnRp
dHlSZWZlcmVuY2Uub3duZXJEb2N1bWVudCIsICJ4bWxEb2MiKQotCi0vLyBub2RlVmFsdWUgaXMg
ZGVmaW5lZCB0byBiZSBudWxsIGZvciBFbnRpdHkgUmVmZXJlbmNlIG5vZGVzLCBhbmQgdGh1cyBz
aG91bGQgc2lsZW50bHkgZmFpbCB0byBtb2RpZnkKLS8vIFNwZWMgaXMgYW1iaWdpb3VzIGFzIHRv
IGlmIHdlIHNob3VsZCB0aHJvdyBoZXJlIG9yIG5vdC4gIEkndmUgcmVxdWVzdGVkIGNsYXJpZmlj
YXRpb246Ci0vLyBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctZG9tLzIw
MDhKYW5NYXIvMDAwOS5odG1sCi1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1
ZSA9ICdmb28nIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSIsICJudWxs
Iik7Ci0KLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2UucHJlZml4ID0gJ2ZvbyciKTsKLXNo
b3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UucHJlZml4IiwgIm51bGwiKTsKLQotc2hvdWxkVGhyb3co
ImVudGl0eVJlZmVyZW5jZS50ZXh0Q29udGVudCA9ICdmb28nIik7Ci1zaG91bGRCZSgiZW50aXR5
UmVmZXJlbmNlLnRleHRDb250ZW50IiwgIic+JyIpOwotCi12YXIgY2hpbGRyZW5CZWZvcmVGYWls
ZWRBcHBlbmQgPSBlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGg7Ci1zaG91bGRCZSgi
Y2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQiLCAiMSIpOwotdmFyIHRleHQgPSBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiRkFJTCIpOwotc2hvdWxkVGhyb3coImVudGl0eVJlZmVyZW5jZS5hcHBl
bmRDaGlsZCh0ZXh0KSIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxl
bmd0aCIsICJjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCIpOwotCi1jaGlsZHJlbkJlZm9yZUZh
aWxlZEFwcGVuZCA9IGVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3VsZEJl
KCJjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCIsICIxIik7Ci1zaG91bGRUaHJvdygiZW50aXR5
UmVmZXJlbmNlLmluc2VydEJlZm9yZSh0ZXh0LCBlbnRpdHlSZWZlcmVuY2UuZmlyc3RDaGlsZCki
KTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGgiLCAiY2hpbGRy
ZW5CZWZvcmVGYWlsZWRBcHBlbmQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L05vZGUvaW5pdGlhbC12YWx1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
Tm9kZS9pbml0aWFsLXZhbHVlcy1leHBlY3RlZC50eHQKaW5kZXggMjZmMGVjMmEzZGViZmU3YTdl
ZGViMDhlMmQxMDFhNzQxNWRjZGZiNS4uMWM5ODFmYjNiNWQ4OTI3ZDVhODQzMzhmMzcxMjQ1M2E2
MGNlODFmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFsLXZh
bHVlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFs
LXZhbHVlcy1leHBlY3RlZC50eHQKQEAgLTExMywxMiArMTEzLDYgQEAgUEFTUyBlbGVtZW50Lm5h
bWVzcGFjZVVSSSBpcyAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKIFBBU1MgZWxlbWVu
dC5wcmVmaXggaXMgJ2h0bWwnCiBQQVNTIGVsZW1lbnQubm9kZVZhbHVlIGlzIG51bGwKIFBBU1Mg
ZWxlbWVudC5hdHRyaWJ1dGVzLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgTmFtZWROb2RlTWFwXScK
LVBBU1MgZG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCdndCcpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KLVBBU1MgZW50aXR5
UmVmZXJlbmNlLm5vZGVOYW1lIGlzICdndCcKLVBBU1MgZW50aXR5UmVmZXJlbmNlLmxvY2FsTmFt
ZSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5uYW1lc3BhY2VVUkkgaXMgbnVsbAotUEFT
UyBlbnRpdHlSZWZlcmVuY2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5v
ZGVWYWx1ZSBpcyBudWxsCiBQQVNTIHByb2Nlc3NpbmdJbnN0cnVjdGlvbi5ub2RlTmFtZSBpcyAn
eG1sLXN0eWxlc2hlZXQnCiBQQVNTIHByb2Nlc3NpbmdJbnN0cnVjdGlvbi5sb2NhbE5hbWUgaXMg
bnVsbAogUEFTUyBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubmFtZXNwYWNlVVJJIGlzIG51bGwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwt
dmFsdWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlh
bC12YWx1ZXMuanMKaW5kZXggNzMxYTgwNjM5MDg2OThiNDY5NWIyOGMzNmI3NzNhN2RkMWEzMDM1
NC4uOWIxMmE5NzkwMWMwMzk0MzIzMzJkMzNkZmNhZGM5ODI3ZmI2YWFmYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1ZXMuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1
ZXMuanMKQEAgLTE1NiwxNiArMTU2LDYgQEAgc2hvdWxkQmUoImVsZW1lbnQucHJlZml4IiwgIido
dG1sJyIpOwogc2hvdWxkQmUoImVsZW1lbnQubm9kZVZhbHVlIiwgIm51bGwiKTsKIHNob3VsZEJl
KCJlbGVtZW50LmF0dHJpYnV0ZXMudG9TdHJpbmcoKSIsICInW29iamVjdCBOYW1lZE5vZGVNYXBd
JyIpOwogCi0vLyBOb3QgcG9zc2libGUgdG8gY3JlYXRlIEVudGl0eSBub2RlcyB2aWEgdGhlIERP
TSwgV2ViS2l0IGRvZXNuJ3QgY3JlYXRlIHRoZW0gZnJvbSBwYXJzaW5nCi0KLXNob3VsZFRocm93
KCJkb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoJ2d0JykiKTsKLXZhciBlbnRpdHlSZWZl
cmVuY2UgPSB4bWxEb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotc2hvdWxkQmUoImVu
dGl0eVJlZmVyZW5jZS5ub2RlTmFtZSIsICInZ3QnIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJl
bmNlLmxvY2FsTmFtZSIsICJudWxsIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5hbWVz
cGFjZVVSSSIsICJudWxsIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLnByZWZpeCIsICJu
dWxsIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSIsICJudWxsIik7Ci0K
IC8vIE5vdCBwb3NzaWJsZSB0byBjcmVhdGUgTm90YXRpb24gbm9kZXMgdmlhIHRoZSBET00sIFdl
YktpdCBkb2Vzbid0IGNyZWF0ZSB0aGVtIGZyb20gcGFyc2luZwogCiB2YXIgcHJvY2Vzc2luZ0lu
c3RydWN0aW9uID0gZG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCd4bWwtc3R5
bGVzaGVldCcsICd0eXBlPVwidGV4dC94c2xcIiBocmVmPVwibWlzc2luZy54c2xcIicpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dAppbmRleCA3NzEzZmM5Y2Y0ODdmNjk3OTgxODc0MjJlMTI3MWFhODYy
YmU2MjU3Li43NDdjZDdlNjI1OWNkZGNhMGJlMjVjZWU0YjVjYzJhMDFmNzBjZjIzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dApAQCAtMzMsOCArMzMsNiBAQCBQQVNTOiBjYW5HZXQoJ0RvY3VtZW50
VHlwZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuU2V0KCdEb2N1bWVudFR5
cGUnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgnRWxlbWVudCcpIHNo
b3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuU2V0KCdFbGVtZW50Jykgc2hvdWxkIGJl
ICd0cnVlJyBhbmQgaXMuCi1QQVNTOiBjYW5HZXQoJ0VudGl0eVJlZmVyZW5jZScpIHNob3VsZCBi
ZSAndHJ1ZScgYW5kIGlzLgotUEFTUzogY2FuU2V0KCdFbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQg
YmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgnRXZhbEVycm9yJykgc2hvdWxkIGJlICd0
cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0V2YWxFcnJvcicpIHNob3VsZCBiZSAndHJ1ZScg
YW5kIGlzLgogUEFTUzogY2FuR2V0KCdFdmVudCcpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGll
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy5o
dG1sCmluZGV4IGZmZjVjNGFkMDgxNGFiOWMxY2MwNDZhZmViYjE4YzlkNzhiYzY3NDAuLjQ0MzE2
YWM3OGYxMzg3ODA0OTBlNGU1NjEyYWIyYWQ4ZmI3ZTA5ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwKQEAgLTg0LDcgKzg0
LDYgQEAgdmFyIHdpbmRvd1JlYWRXcml0ZVByb3BlcnRpZXMgPSBbCiAgICAgIkRvY3VtZW50RnJh
Z21lbnQiLCAKICAgICAiRG9jdW1lbnRUeXBlIiwgCiAgICAgIkVsZW1lbnQiLCAKLSAgICAiRW50
aXR5UmVmZXJlbmNlIiwgCiAgICAgIkV2YWxFcnJvciIsIAogICAgICJFdmVudCIsIAogICAgICJI
VE1MQW5jaG9yRWxlbWVudCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3Jlc291cmNlcy93aW5kb3ctcHJvcGVydGllcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9yZXNvdXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMKaW5kZXggZjljNzA5MjkyOTI5
OGM3NmY3OWNlNWY2YTZhZTUyZmM5Y2VjMGRmNS4uOWQ0MzBlY2ViMmVhYzdhNTcxOGIzN2ZkNjNk
ZTdjZTI0YWJhMWIzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jl
c291cmNlcy93aW5kb3ctcHJvcGVydGllcy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzCkBAIC01Niw3ICs1Niw2IEBAIHZh
ciBwcm9wZXJ0eUluZm8gPSBbCiAgICAgWyJEb2N1bWVudEZyYWdtZW50IiwgIm9iamVjdCJdLAog
ICAgIFsiRG9jdW1lbnRUeXBlIiwgIm9iamVjdCJdLAogICAgIFsiRWxlbWVudCIsICJvYmplY3Qi
XSwKLSAgICBbIkVudGl0eVJlZmVyZW5jZSIsICJvYmplY3QiXSwKICAgICBbIkV2ZW50IiwgIm9i
amVjdCJdLAogICAgIFsiRXZlbnRFeGNlcHRpb24iLCAib2JqZWN0Il0sCiAgICAgWyJIVE1MQW5j
aG9yRWxlbWVudCIsICJvYmplY3QiXSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQK
aW5kZXggNjdkMzAyY2VlZDUyMDU2M2RmZTFkYmY3Zjc5MDBkMjBmZDg0ODhiMC4uMTEyMjE0YTc3
YmY1M2YwYzEyZmYzYWJhM2U3MDdlZjEzMDdlNmFiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1l
eHBlY3RlZC50eHQKQEAgLTExNCw4ICsxMTQsNiBAQCBQQVNTIHdpblsnRG9jdW1lbnRUeXBlJ10g
PT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsn
RG9jdW1lbnRUeXBlJ10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBpcyB0
cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0n
IGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVj
dG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVyZW5jZSddID09ICdbb2JqZWN0IEVu
dGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVy
ZW5jZSddID09ICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQog
UEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUK
IFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVl
CiBQQVNTIHdpblsnRXZlbnRFeGNlcHRpb24nXSA9PSAnW29iamVjdCBFdmVudEV4Y2VwdGlvbkNv
bnN0cnVjdG9yXScgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0Cmlu
ZGV4IDMwMmEwOWI4NmE1YmYyZTc5OWQyNGM4ZTY5ZTEzMDdlMWE0ZDI2ZDEuLmFiZjY3YWQyZTlh
ZjYxOGNhZjg1Nzc3MGJhMDkxMTQ0YTE3MjQ0YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1l
eHBlY3RlZC50eHQKQEAgLTk2LDggKzk2LDYgQEAgUEFTUzogQ29tbWVudCBzdWNjZXNzZnVsbHkg
c2hhZG93ZWQKIFBBU1M6IENEQVRBU2VjdGlvbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6
IERvY3VtZW50VHlwZSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IE5vdGF0aW9uIHN1Y2Nl
c3NmdWxseSBzaGFkb3dlZAotUEFTUzogRW50aXR5IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAotUEFT
UzogRW50aXR5UmVmZXJlbmNlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogUHJvY2Vzc2lu
Z0luc3RydWN0aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogSFRNTERvY3VtZW50IHN1
Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogSFRNTEVsZW1lbnQgc3VjY2Vzc2Z1bGx5IHNoYWRv
d2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LXNoYWRvd2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0eS1zaGFkb3dpbmcuaHRtbAppbmRleCA5YjQ2ZWFjZTAxMzcwYzU1MjYyZDBlZjY0ZDY4
MWFlNTZlYWJjMDJjLi5jYjc0ZmIwNGEwNzI1MmYxMGI1ZGM2M2Y5YzYwNGIxNTE5MGM1ZDljIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNo
YWRvd2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydHktc2hhZG93aW5nLmh0bWwKQEAgLTIxNSwxMCArMjE1LDYgQEAKICAgICAgICAgbG9nKERv
Y3VtZW50VHlwZSA9PSAxID8gIlBBU1M6IERvY3VtZW50VHlwZSBzdWNjZXNzZnVsbHkgc2hhZG93
ZWQiIDogIkZBSUw6IERvY3VtZW50VHlwZSB3YXMgbm90IHNoYWRvd2VkIik7CiAgICAgICAgIHZh
ciBOb3RhdGlvbiA9IDE7CiAgICAgICAgIGxvZyhOb3RhdGlvbiA9PSAxID8gIlBBU1M6IE5vdGF0
aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogTm90YXRpb24gd2FzIG5vdCBzaGFk
b3dlZCIpOwotICAgICAgICB2YXIgRW50aXR5ID0gMTsKLSAgICAgICAgbG9nKEVudGl0eSA9PSAx
ID8gIlBBU1M6IEVudGl0eSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IEVudGl0eSB3
YXMgbm90IHNoYWRvd2VkIik7Ci0gICAgICAgIHZhciBFbnRpdHlSZWZlcmVuY2UgPSAxOwotICAg
ICAgICBsb2coRW50aXR5UmVmZXJlbmNlID09IDEgPyAiUEFTUzogRW50aXR5UmVmZXJlbmNlIHN1
Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRW50aXR5UmVmZXJlbmNlIHdhcyBub3Qgc2hh
ZG93ZWQiKTsKICAgICAgICAgdmFyIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9IDE7CiAgICAgICAg
IGxvZyhQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPT0gMSA/ICJQQVNTOiBQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24gd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAgICB2YXIgSFRNTERvY3VtZW50ID0gMTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQK
aW5kZXggNGExOGFkZjdiYWY2NjljNzYxZDUxOTdiMTM0ZGEwYmZlZTg3MmU4Ni4uMzdjMzU0MTkz
OGYxMTA3ZDY2Y2M5MzE1MGMxYjE0MzY1ZjVlYTkwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw2IEBAIFBB
U1MgVHJ5QWxsb2NhdGUoJ0NoYXJhY3RlckRhdGEnKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlB
bGxvY2F0ZSgnQ0RBVEFTZWN0aW9uJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUo
J0RvY3VtZW50VHlwZScpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdFbGVtZW50
JykgaXMgJ2V4Y2VwdGlvbicKLVBBU1MgVHJ5QWxsb2NhdGUoJ0VudGl0eVJlZmVyZW5jZScpIGlz
ICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdFdmVudFRhcmdldCcpIGlzICdleGNlcHRp
b24nCiBQQVNTIFRyeUFsbG9jYXRlKCdIVE1MRG9jdW1lbnQnKSBpcyAnZXhjZXB0aW9uJwogUEFT
UyBUcnlBbGxvY2F0ZSgnTm9kZScpIGlzICdleGNlcHRpb24nCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9kb20tY29uc3RydWN0b3JzLmh0bWwKaW5kZXggZjI0OTlkYzA0NjUzNzczNzZmYTg4NmIyY2Ji
M2JkMGE5ZDg2ZTQyMS4uNzk1M2I2MWEyNWQyMTA3MzdiYmNmNmE0MDgxNmUxYWZjNTBjZGJlMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbApAQCAtMTgsNyAr
MTgsNiBAQCB2YXIgb2JqZWN0c19leGNlcHRpb24gPSBbCiAgICAgJ0NEQVRBU2VjdGlvbicsCiAg
ICAgJ0RvY3VtZW50VHlwZScsCiAgICAgJ0VsZW1lbnQnLAotICAgICdFbnRpdHlSZWZlcmVuY2Un
LAogICAgICdFdmVudFRhcmdldCcsCiAgICAgJ0hUTUxEb2N1bWVudCcsCiAgICAgJ05vZGUnLApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQK
aW5kZXggNzg4Y2FiZTVkMDNiNTFmZmJjNDBmZjM2M2NhZDZjYTA2YWI4NWQ0OS4uNjkyYmE3MDVm
ZWQ4M2IyOTVhMjcwOGQ1ZTczNjA2YjBlNmEwMWEwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0CkBAIC00Nyw5ICs0Nyw2IEBAIFBB
U1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlQ0RBVEFTZWN0aW9uKCkuY29uc3Ry
dWN0b3IpIGlzICdDREFUQVNlY3RpCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKSkgaXMgJ0VsZW1lbnQnCiBQQVNTIGpzV3JhcHBl
ckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKS5fX3Byb3Rv
X18pIGlzICdFbGVtZW50UHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVu
dC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykuY29uc3RydWN0b3IpIGlzICdFbGVtZW50
Q29uc3RydWN0b3InCi1QQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgpKSBpcyAnRW50aXR5UmVmZXJlbmNlJwotUEFTUyBqc1dyYXBwZXJDbGFzcyh4
bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoKS5fX3Byb3RvX18pIGlzICdFbnRpdHlS
ZWZlcmVuY2VQcm90b3R5cGUnCi1QQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgpLmNvbnN0cnVjdG9yKSBpcyAnRW50aXR5UmVmZXJlbmNlQ29uc3Ry
dWN0b3InCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbigpKSBpcyAnUHJvY2Vzc2luZ0luc3RydWN0aW9uJwogUEFTUyBqc1dyYXBwZXJD
bGFzcyh4bWxEb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKS5fX3Byb3RvX18p
IGlzICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Qcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNz
KHhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLmNvbnN0cnVjdG9yKSBp
cyAnUHJvY2Vzc2luZ0luc3RydWN0aW9uQ29uc3RydWN0b3InCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3dyYXBwZXItY2xhc3Nlcy5odG1sCmluZGV4IDhiZThmZTNiZjBjMjNjMDM0YTA3NzgyMzU1MGQ2
NzNkZmUxMGVkYzcuLmZmODFkOGY5MDUwNDQwZGMxZTMxZDMwODMzNTVjNjYzMTI5Yzk2MzIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy5odG1sCkBAIC05MCw3ICs5MCw2
IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIHRlc3QoInhtbERvY3VtZW50IiwgIkRvY3VtZW50
Iik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlQ0RBVEFTZWN0aW9uKCkiLCAiQ0RBVEFT
ZWN0aW9uIik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gn
LCAneCcpIiwgIkVsZW1lbnQiKTsKLSAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlS
ZWZlcmVuY2UoKSIsICJFbnRpdHlSZWZlcmVuY2UiKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5j
cmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKSIsICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iKTsK
IAogICAgIGRlYnVnKCcnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDYzZTI0MmEyZmJlMzJiOWQ2YjgzZDU4Y2VhZDU2NDliNDk2NzQxYmIuLmQ1OTNhNWVhYmE4
YThlMDhlMDFjMDljMjI0MzE4ZGU5MDg2MGNkOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0
LWV4cGVjdGVkLnR4dApAQCAtMTg3LDcgKzE4Nyw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSA1
NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogVGhpcyB0ZXN0IGNoZWNr
cyBjcm9zcy1mcmFtZSBhY2Nlc3Mgc2VjdXJpdHkgKHJkYXI6Ly9wcm9ibGVtLzUyNTEzMDkpLgog
CiAKQEAgLTIzNSw3ICsyMzQsNiBAQCBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5Eb2N1bWVu
dEZyYWdtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJn
ZXRXaW5kb3cuRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzog
Y2FuR2V0KCd0YXJnZXRXaW5kb3cuRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4K
IFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkVudGl0eScpIHNob3VsZCBiZSAnZmFsc2UnIGFu
ZCBpcy4KLVBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkVudGl0eVJlZmVyZW5jZScpIHNob3Vs
ZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkV2YWxFcnJv
cicpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93
LkV2ZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRX
aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWdldC5odG1sCmluZGV4IDM4MDBhMGI1ZTgxMjRiOTQ1ZDgxMDM5MGMzZTliNWY5MGU1
NzgzOGQuLmNjZTVmN2EzZjIzNDFjYWI3ZmYwOWNiZTc1YjNiMmU2OWRlYTZjZjkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdl
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWdldC5odG1sCkBAIC0yMCw3ICsyMCw2IEBACiAgICAgICAgICAgICAiRG9jdW1lbnRU
eXBlIiwgCiAgICAgICAgICAgICAiRWxlbWVudCIsIAogICAgICAgICAgICAgIkVudGl0eSIsIAot
ICAgICAgICAgICAgIkVudGl0eVJlZmVyZW5jZSIsIAogICAgICAgICAgICAgIkV2YWxFcnJvciIs
IAogICAgICAgICAgICAgIkV2ZW50IiwgCiAgICAgICAgICAgICAiSFRNTEFuY2hvckVsZW1lbnQi
LCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJh
bWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CmluZGV4IGU0NTg1YWJkNTE2MDVjMWUyZDllOGI5ZjJj
ZDg4YWJjZDVjYWQyZTAuLjFlYTViZGM2ZDk0OTc0NmUxZTljMjUzNTY2NDY1YzQwYjM5Yjg1Yzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dApAQCAtNzgsNyArNzgsNiBAQCBQQVNTOiBjYW5HZXRE
ZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0RvY3VtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5k
IGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdEb2N1bWVudEZyYWdt
ZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0
YXJnZXRXaW5kb3csICdEb2N1bWVudFR5cGUnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQ
QVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0VsZW1lbnQnKSBzaG91bGQgYmUg
J2ZhbHNlJyBhbmQgaXMuCi1QQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0Vu
dGl0eVJlZmVyZW5jZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERl
c2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRXZhbEVycm9yJykgc2hvdWxkIGJlICdmYWxzZScgYW5k
IGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFdmVudCcpIHNob3Vs
ZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93
LCAnSFRNTEFuY2hvckVsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci5odG1sCmlu
ZGV4IGRlYTAxN2Q2NzhhMTVmZGQxM2M3N2E5MmFlNTE1YzcwOGU3YmQzYWMuLjMwNjZiM2EyYWZj
YjVkNWQyMzkxZmNmNDk5ZDFlMzQ5NDY1MTU0MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3Jp
cHRvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJh
bWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci5odG1sCkBAIC0xOSw3ICsxOSw2IEBA
CiAgICAgICAgICAgICAiRG9jdW1lbnRGcmFnbWVudCIsIAogICAgICAgICAgICAgIkRvY3VtZW50
VHlwZSIsIAogICAgICAgICAgICAgIkVsZW1lbnQiLCAKLSAgICAgICAgICAgICJFbnRpdHlSZWZl
cmVuY2UiLCAKICAgICAgICAgICAgICJFdmFsRXJyb3IiLCAKICAgICAgICAgICAgICJFdmVudCIs
IAogICAgICAgICAgICAgIkhUTUxBbmNob3JFbGVtZW50IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
cHV0LWV4cGVjdGVkLnR4dAppbmRleCA0N2ZkNTQzOWQzN2Q3NmQxMDY1NDlhNzE5YmI1YWM5MjI5
MjNjYmVjLi44NWIwYWJhMWIxNWI0NmVhZWJhMDYwZmJkNTVlMjkyOWY0MTI1MmQ2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1w
dXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTU0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNTI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0
cyBtdXN0IG1hdGNoLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5BdHRyIHNob3VsZCBiZSAnW29iamVj
dCBBdHRyQ29uc3RydWN0b3JdJyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LkNEQVRBU2Vj
dGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgQ0RBVEFTZWN0aW9uQ29uc3RydWN0b3JdJyBhbmQgaXMu
CiBBTEVSVDogUEFTUzogd2luZG93LkNoYXJhY3RlckRhdGEgc2hvdWxkIGJlICdbb2JqZWN0IENo
YXJhY3RlckRhdGFDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KQEAgLTE0LDggKzE0LDYgQEAgQUxFUlQ6
IFBBU1M6IHdpbmRvdy5ET01FeGNlcHRpb24gc2hvdWxkIGJlICdbb2JqZWN0IERPTUV4Y2VwdGlv
bkNvbnN0cnVjdG9yXScgYW4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRE9NSW1wbGVtZW50YXRpb24g
c2hvdWxkIGJlICdbb2JqZWN0IERPTUltcGxlbWVudGF0aW9uQ29uc3RydWN0b3JdJyBhbmQgaXMu
CiBBTEVSVDogUEFTUzogd2luZG93LkRPTVBhcnNlciBzaG91bGQgYmUgJ1tvYmplY3QgRE9NUGFy
c2VyQ29uc3RydWN0b3JdJyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LkVsZW1lbnQgc2hv
dWxkIGJlICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KLUFMRVJUOiBQQVNT
OiB3aW5kb3cuRW50aXR5IHNob3VsZCBiZSAndW5kZWZpbmVkJyBhbmQgaXMuCi1BTEVSVDogUEFT
Uzogd2luZG93LkVudGl0eVJlZmVyZW5jZSBzaG91bGQgYmUgJ1tvYmplY3QgRW50aXR5UmVmZXJl
bmNlQ29uc3RydWN0b3JdJyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LkV2YWxFcnJvciBz
aG91bGQgYmUgJ2Z1bmN0aW9uIEV2YWxFcnJvcigpIHsgICAgW25hdGl2ZSBjb2RlXX0nIGFuZCBp
cy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRXZlbnQgc2hvdWxkIGJlICdbb2JqZWN0IEV2ZW50Q29u
c3RydWN0b3JdJyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LkhUTUxBbmNob3JFbGVtZW50
IHNob3VsZCBiZSAnW29iamVjdCBIVE1MQW5jaG9yRWxlbWVudENvbnN0cnVjdG9yXScgYW5kIGlz
LgpAQCAtMjc0LDE1ICsyNzIsMTUgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyMDogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxMjE6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIzOiBCbG9ja2VkIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5z
LCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjQ6IEJsb2Nr
ZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vz
c2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2Nv
bHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEzMzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
IGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTM1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4K
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzNDogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM2OiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Np
bmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xz
LCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAx
Mzc6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEzODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTM5OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNDA6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0MTogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQy
OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJv
bSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4g
UHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxNDM6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE0NDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3Qg
bWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQg
cG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNDY6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgpAQCAtMzIxLDcgKzMxOSw3IEBAIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxNzg6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc5OiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODA6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90
b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDE4MTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTgyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0
cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NTogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlu
cywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg2OiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9j
b2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxODc6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgpAQCAtMzM3LDcg
KzMzNSw3IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOTY6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTk3OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIg
ZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
Ii4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVT
U0FHRTogbGluZSAxOTg6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgog
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjAwOiBCbG9ja2VkIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDI6IEJsb2NrZWQg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2lu
ZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMs
IGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIw
MzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMjA0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENP
TlNPTEUgTUVTU0FHRTogbGluZSAyMDU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgpAQCAtMzcwLDcgKzM2OCw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMzE6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjMyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMzM6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzNDogQmxvY2tlZCBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9t
YWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjM1OiBC
bG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBh
Y2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJv
dG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIFRoaXMgdGVzdCBjaGVja3Mg
Y3Jvc3MtZnJhbWUgYWNjZXNzIHNlY3VyaXR5IG9mIHdpbmRvdyBhdHRyaWJ1dGUgc2V0dGVycyAo
cmRhcjovL3Byb2JsZW0vNTMyNjc5MSkuCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAppbmRleCBh
YzAyNGY4NTVhYTg2NmU2NzE3Yjk3ZmZiMWI3NDk1NmIzYzVkNzNjLi5hMmI2Yjg3MGExOGM3Mzky
NTQ4YzFlYTlkODU5MjI3ODI5Y2I2ZTAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbApAQCAtNTAs
NyArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRh
cmdldFdpbmRvdywgIkRPTUltcGxlbWVudGF0aW9uIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVy
dHkodGFyZ2V0V2luZG93LCAiRE9NUGFyc2VyIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHko
dGFyZ2V0V2luZG93LCAiRWxlbWVudCIpOwotICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdl
dFdpbmRvdywgIkVudGl0eVJlZmVyZW5jZSIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRh
cmdldFdpbmRvdywgIkV2YWxFcnJvciIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdl
dFdpbmRvdywgIkV2ZW50Iik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93
LCAiSFRNTEFuY2hvckVsZW1lbnQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1l
LWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRtbAppbmRleCAzNmY4MjZiZDkwNWYwNTc3ODBiOGI2Mzg2
OTZmNzkzN2U1YzRjODhmLi5iNjdkZmMzOWZiMDIzYjBjOTc3ZWVjODNjOTY2NjFiOGMxOThlMGQ1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9j
cm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVz
dC5odG1sCkBAIC01OCw4ICs1OCw2IEBACiAgICAgICAgIHZhciBET01JbXBsZW1lbnRhdGlvbk9s
ZCA9IHdpbmRvdy5ET01JbXBsZW1lbnRhdGlvbjsKICAgICAgICAgdmFyIERPTVBhcnNlck9sZCA9
IHdpbmRvdy5ET01QYXJzZXI7CiAgICAgICAgIHZhciBFbGVtZW50T2xkID0gd2luZG93LkVsZW1l
bnQ7Ci0gICAgICAgIHZhciBFbnRpdHlPbGQgPSB3aW5kb3cuRW50aXR5OwotICAgICAgICB2YXIg
RW50aXR5UmVmZXJlbmNlT2xkID0gd2luZG93LkVudGl0eVJlZmVyZW5jZTsKICAgICAgICAgdmFy
IEV2YWxFcnJvck9sZCA9IHdpbmRvdy5FdmFsRXJyb3I7CiAgICAgICAgIHZhciBFdmVudE9sZCA9
IHdpbmRvdy5FdmVudDsKICAgICAgICAgdmFyIEhUTUxBbmNob3JFbGVtZW50T2xkID0gd2luZG93
LkhUTUxBbmNob3JFbGVtZW50OwpAQCAtMjYxLDggKzI1OSw2IEBACiAgICAgICAgICAgICBzaG91
bGRCZSgid2luZG93LkRPTUltcGxlbWVudGF0aW9uIiwgIkRPTUltcGxlbWVudGF0aW9uT2xkIik7
CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkRPTVBhcnNlciIsICJET01QYXJzZXJPbGQi
KTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRWxlbWVudCIsICJFbGVtZW50T2xkIik7
Ci0gICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkVudGl0eSIsICJFbnRpdHlPbGQiKTsKLSAg
ICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRW50aXR5UmVmZXJlbmNlIiwgIkVudGl0eVJlZmVy
ZW5jZU9sZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FdmFsRXJyb3IiLCAiRXZh
bEVycm9yT2xkIik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkV2ZW50IiwgIkV2ZW50
T2xkIik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkhUTUxBbmNob3JFbGVtZW50Iiwg
IkhUTUxBbmNob3JFbGVtZW50T2xkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwt
ZXhwZWN0ZWQudHh0CmluZGV4IDliZWEyYTNkNjY2NmQwZDkzNmMxMGNmYjExNjkxYTE5NmI0YWRi
ODMuLjliYWM4NzZiNDA5YTQ3OGRkZWZlYmIwOTVmNjY0MGQ0NDJkYzAzYjQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3Rvcmlj
YWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0CkBAIC05LDcgKzksNyBAQCBQQVNT
IEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NTG9jYXRvcgogUEFT
UyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTU9iamVjdCAKIFBB
U1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01Vc2VyRGF0YSAK
IFBBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHkgCi1G
QUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRW50aXR5UmVmZXJl
bmNlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0iCitQ
QVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRW50aXR5UmVmZXJl
bmNlIAogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEV2ZW50
RXhjZXB0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBFdmVudEV4Y2VwdGlvbkNvbnN0cnVjdG9y
XSIKIFBBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBOYW1lTGlz
dCAKIFBBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBOb3RhdGlv
biAKQEAgLTE5LDkgKzE5LDcgQEAgUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJl
IHJlbW92ZWQ6IFJhbmdlRXhjZXB0aW9uCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11
c3QgYmUgcmVtb3ZlZDogY3JlYXRlQ0RBVEFTZWN0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIGNyZWF0ZUNEQVRBU2VjdGlvbigpIHsKICAgICBbbmF0aXZlIGNvZGVdCiB9IgotRkFJTCBI
aXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IGNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdv
dCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiBjcmVhdGVFbnRpdHlSZWZlcmVuY2UoKSB7
Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIKK1BBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVz
dCBiZSByZW1vdmVkOiBjcmVhdGVFbnRpdHlSZWZlcmVuY2UgCiBGQUlMIEhpc3RvcmljYWwgRE9N
IGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogeG1sRW5jb2RpbmcgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgbnVsbAogRkFJTCBI
aXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IHhtbFN0YW5kYWxvbmUgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKGJvb2xl
YW4pIGZhbHNlCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDog
eG1sVmVyc2lvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQg
YnV0IGdvdCAob2JqZWN0KSBudWxsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDJk
OGRjOGUxOTg1OTc0NThjOTMxNGRlZGJlZTI3Y2YzNjFkNmUzOGQuLjc5ODk1ODJhYjNlYjhhYzA1
MGEzZDhhNzVkYWVjNDI2OGJkZWQ3ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBA
IC0zMTMsMTEgKzMxMyw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHko
J2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJl
bmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
LnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
Lmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGJhYWI0OTgyMGY0ZGE5ZjMzOTMwYjJi
Nzk5NDJlOTMzMTA1ZThmNzAuLjQ1N2U5OTAxNGQ0Mzg5MzJjYTQ2MzI3ODRjOWI2Y2E1Nzg5ZDJl
MjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQKQEAgLTMxMywxMSArMzEzLDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlz
IHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRp
dHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9w
ZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlS
ZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRy
dWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2
ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2
ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5j
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKaW5kZXggZWRiNzU1MDc2Mjlj
N2MwZGM2MjA3YmYwNDk0NjBhNGQ1Nzg5NGE4Mi4uODJiMDI0YTg2NmE0MGQzMjkxYzY1YzczYWZj
ZjliYzI0M2E5NzQ1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVu
dFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBB
U1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rv
cl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0
cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50
Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tv
YmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50
aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBp
cyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScg
aXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0n
IGlzIHRydWUKIFBBU1Mgd2luWydFdmVudEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhj
ZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYTBjNmZmNGY4NzljNTk5YzYwMDdlNjdlNjk1
YjIxYTU2MmUyNjk5Zi4uZTY4MWE0NmE0ZjhlNmVkNWUyNGI3N2ExNzkzMGFjNTE1ZThlNjRkNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApA
QCAtMzE4LDExICszMTgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0
eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1
ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJl
ZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5
KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVy
ZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQn
KS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQn
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGMx
NWI2NjVhMGZmYWI2NzZjMGZlOGQ5NzVmODM4Yjc3ZDg5ODliYzguLmUxODQyOTVjMGVjMTNjODAz
ZDNiZjU5NTA0MTc4YWNmNTNjYTZlZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICsz
MDgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxl
bWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZh
bHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBm
YWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1l
cmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBF
cnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwMGZiYzRiMDI4ZDkyZTZh
ZGZhNjYzNzZlOGVlMmJmNjdlYzRmY2YzLi45NGQ3ODEyNjI5MGQwYjNmMDM3YTQ5NjVmYTVkZjdk
YTNkYzI4NzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMwOCw2IEBAIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxl
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVm
ZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50
aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFz
T3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVy
ZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFz
T3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0
ZWQudHh0CmluZGV4IDkzZGFkYzAzMWY2MmYzNjYzYTg5NjYwM2EzZGFiMThlZTI2NDMyYTQuLjE2
MmY0OGZjNTZiOTg3OWIzYTliMTM2YjhiNzFiMmVmOWE4N2EyZWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRl
bmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKQEAgLTExNCw4ICsx
MTQsNiBAQCBQQVNTIHdpblsnRG9jdW1lbnRUeXBlJ10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBl
Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRG9jdW1lbnRUeXBlJ10gPT0gJ1tvYmpl
Y3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCdd
ID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVt
ZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5b
J0VudGl0eVJlZmVyZW5jZSddID09ICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9y
XScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVyZW5jZSddID09ICdbb2JqZWN0IEVudGl0
eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tv
YmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdb
b2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnRFeGNlcHRp
b24nXSA9PSAnW29iamVjdCBFdmVudEV4Y2VwdGlvbkNvbnN0cnVjdG9yXScgaXMgdHJ1ZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nl
cy1vYmpjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93
cmFwcGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKaW5kZXggYzJjZmZlMTRiZDNlMjBjYWU1
MzNmYzkwY2Q3YTc1ZGRlZjU0YWIxNy4uN2MyYjE3MzExNDQ1ZjNjN2Q0MzcwZTg0YzA3NjgxZmQz
OTJmMmNmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CkBAIC0yMSw3
ICsyMSw2IEBAIFhNTAogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50KSBpcyAnRE9N
RG9jdW1lbnQnCiBQQVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlQ0RBVEFT
ZWN0aW9uKCkpIGlzICdET01DREFUQVNlY3Rpb24nCiBQQVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1s
RG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpKSBpcyAnRE9NRWxlbWVudCcK
LVBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
KSkgaXMgJ0RPTUVudGl0eVJlZmVyZW5jZScKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1
bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKSkgaXMgJ0RPTVByb2Nlc3NpbmdJbnN0
cnVjdGlvbicKIAogRXZlbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sCmluZGV4IDBiYmI0NDVhY2Y3
NWE4MDk5MjRiYmMyMjg5NjgyMjg0NmMzYTNjMWIuLmYzNTlkOTQzZDA4ZDBjMDA5Y2NiNjdhYjcy
MmU4NjhiZDYxYmFlMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sCkBAIC0xMDMsNyArMTAzLDYg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9jdW1lbnQi
KTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJDREFUQVNl
Y3Rpb24iKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcs
ICd4JykiLCAiRWxlbWVudCIpOwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgpIiwgIkVudGl0eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpOwog
CiAgICAgZGVidWcoJycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IDA0NGYxNGYwZTUyOTZlNjc1ZDhiNDNjOGI0M2Q4MDJkMjY5Nzcx
MTguLmMxYTQyMmYwYTE1NTc3MThjMWE3ZWQ5ZjEwNGY4OGNkOTUwYTU2MTQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMwOCwxMSAr
MzA4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vs
ZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlz
IGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxl
bWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52
YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMg
ZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRp
dHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVt
ZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMg
RXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKaW5kZXggMDgzYTA3MWY2Y2U2ZWI1ZWQyMWNkMDQ2MDFhM2FiZTc2
MTkzMWZiZi4uNmViYWFhZjZjY2NhMDEwYTkyZmY3MDdmMTkyNDFkYzg1NTdjZWY4YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMjM4
LDExICsyMzgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5j
ZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQn
KSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScp
LmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1
ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261661</attachid>
            <date>2015-09-21 09:37:49 -0700</date>
            <delta_ts>2015-09-21 10:45:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150921093733.patch</filename>
            <type>text/plain</type>
            <size>449641</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDllOThhOWFlODM1MzIw
ZDE0YzQ1MWUzMzJlOTBhOGE1NmYzYmZhNC4uY2MyMDUwY2QwMjQ4MTBkMTNjNjM1MDM1NzExMjQ3
OWUwMTI4MDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wOS0xOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKIDIwMTUtMDktMjEgIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vvay5v
aEBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIG1lZGlhIGNvbnRyb2xzIGRvZXMgbm90
IHNob3cgdXAgd2hlbiBwbGF5aW5nIHZpZGVvIGZpbmlzaGVzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJhY2Fk
ZDA4ZmJmZjQ4YmY5NTlkNDg4NTEwZGE3ZDE3ZDc4YzIyOTMuLjNkZDkwMGEwZTJkNjA2NDdkOTVh
OTE1NmQ0NzA0YWY0YWE2NTUzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0w
OS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3Vw
cG9ydCBmb3IgbGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIGhhbmRsaW5nIEVudGl0
eVJlZmVyZW5jZSBOb2Rlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL21hYy9XS0RPTUludGVybmFscy5tbToKKyAgICAgICAgKFdlYktpdDo6V0tET01Ob2RlQ2xh
c3MpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6aXNBc3Npc3RhYmxlRWxlbWVudCk6CisKIDIwMTUtMDkt
MjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAg
ICBSZW1vdmUgWEhSX1RJTUVPVVQgY29tcGlsYXRpb24gZ3VhcmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggYjVhY2I0MTE4MTg5NjY0ZmI4NTgzMmY0Zjc0MjMyMDhlZTM1MDRkMi4uNmE2NTVkZDI4
MjQ0ZjdkNTA0NjhmYTZmMWExYThhODIyYWNhODM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTM5MSw3ICszOTEsNiBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGRvbS9E
b2N1bWVudEZyYWdtZW50LmlkbAogICAgIGRvbS9Eb2N1bWVudFR5cGUuaWRsCiAgICAgZG9tL0Vs
ZW1lbnQuaWRsCi0gICAgZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKICAgICBkb20vRXJyb3JFdmVu
dC5pZGwKICAgICBkb20vRXZlbnQuaWRsCiAgICAgZG9tL0V2ZW50RXhjZXB0aW9uLmlkbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IGQzZWI1MTczMWUwNjAwMmUxMzQzOGRhY2JmNTdl
YTQ3YWRkYzQzMWMuLjM0M2E4MDEyNWY0MmY4ZDk4Mjg3MGMzN2I0NTI0MTRiZjg4ZjVjODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTE0OSw3ICsxNDksNiBAQAogI2luY2x1ZGUg
IkpTRE9NV2luZG93LmNwcCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0NTUy5jcHAiCiAjaW5jbHVk
ZSAiSlNFbGVtZW50LmNwcCIKLSNpbmNsdWRlICJKU0VudGl0eVJlZmVyZW5jZS5jcHAiCiAjaW5j
bHVkZSAiSlNFcnJvckV2ZW50LmNwcCIKICNpbmNsdWRlICJKU0V2ZW50LmNwcCIKICNpbmNsdWRl
ICJKU0V2ZW50RXhjZXB0aW9uLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDc3NGNhMDY0OGE3YjViOTAwZGY0YTAwZTNmNmUzMWJm
OWMwNzJjMDguLjMyZmExNmYwMzEwNTk5Yjg4ZTA5MDI5YmEzMWNiYTkwZTI0ZmRmNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTgz
MiwyMCArMTgzMiw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmNwcCI+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
JChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNF
cnJvckV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CkBAIC0xOTg0NSw3ICsxOTgzMSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01VUkwuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RPTVdpbmRvdy5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRWxlbWVudC5oIiAvPgot
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxh
dGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5
UmVmZXJlbmNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNFcnJvckV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXZlbnRFeGNlcHRpb24uaCIgLz4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVycwppbmRleCAyNjMzMzc3YTk3ZTFkMjczNGMwYmU2YjBhMGE4YzAxZWY1MTY4NjNmLi5iNTA1
ZjI0M2U3Zjk5OTU5NWRiZjRhZDkxNDRlZDg5YzcyMjY0YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC01
MjU0LDkgKzUyNTQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTRWxlbWVudC5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmNwcCI+Ci0gICAgICA8RmlsdGVy
PkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVj
dHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFcnJvckV2ZW50LmNwcCI+CiAg
ICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0xMjY0Myw5ICsxMjY0MCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNFbGVtZW50LmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmgiPgotICAgICAgPEZpbHRl
cj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRl
Y3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5oIj4KICAg
ICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAxMDVlYTBkMTEzZDU1ZjdkZWUyNjM0YjVkY2ZhYTEzNzZiMzQ1ODNjLi4wZTAwMGQ2M2ZjMWEx
MWY0ZThhNmJjZjIwNjQ2NzIyMWI2OWZkZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTg5LDggKzM1ODksNiBAQAogCQk5
M0Y5QjY1ODBCQTBGMzVFMDA4NTQwNjQgLyogRE9NSFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2NTUw
QkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsK
IAkJOTNGOUI2RTAwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERTBCQTBGQjcyMDA4NTQw
NjQgLyogSlNDb21tZW50LmNwcCAqLzsgfTsKIAkJOTNGOUI2RTEwQkEwRkI3MjAwODU0MDY0IC8q
IEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oICovOyB9OwotCQk5M0Y5
Qjc3NDBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3NzIwQkE1RkREQzAwODU0
MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCAqLzsgfTsKLQkJOTNGOUI3NzUwQkE1RkRERDAw
ODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc3MzBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlS
ZWZlcmVuY2UuaCAqLzsgfTsKIAkJOTNGOUI3QTAwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFT
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgKi87IH07CiAJ
CTkzRjlCN0ExMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3OUYwQkE2MDMyNjAwODU0
MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmggKi87IH07CiAJCTkzRkRBRkNBMEIxMTMwNzQwMEUyNzQ2
RiAvKiBFZGl0b3JJbnNlcnRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRkRBRkM5MEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRB
Y3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTA5NjAsOCArMTA5NTgsNiBAQAogCQk5M0Y5QjY1NTBCQTBGMzVFMDA4NTQwNjQgLyogRE9N
SFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzRjlCNkRFMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb21tZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NvbW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGOUI3NzIwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50
aXR5UmVmZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RW50aXR5UmVmZXJlbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGOUI3
NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50aXR5UmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NEQVRBU2VjdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2
NCAvKiBKU0NEQVRBU2VjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0NEQVRBU2VjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0ZEQUZDOTBC
MTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFZGl0b3JJbnNlcnRBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIwMDQ3LDggKzIwMDQzLDYgQEAKIAkJCQlCQzY0NjQ5NjExRDgyMzQ5MDA2
NDU1QjAgLyogSlNET01TdHJpbmdNYXAuaCAqLywKIAkJCQk2NURGMzFFNTA5RDFDQzYwMDAwQkUz
MjUgLyogSlNFbGVtZW50LmNwcCAqLywKIAkJCQk2NURGMzFFNjA5RDFDQzYwMDAwQkUzMjUgLyog
SlNFbGVtZW50LmggKi8sCi0JCQkJOTNGOUI3NzIwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5
UmVmZXJlbmNlLmNwcCAqLywKLQkJCQk5M0Y5Qjc3MzBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRp
dHlSZWZlcmVuY2UuaCAqLywKIAkJCQlGRTgwREE1RjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9s
b2NhdGlvbi5jcHAgKi8sCiAJCQkJRkU4MERBNjAwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9j
YXRpb24uaCAqLywKIAkJCQlGRTgwREE2MTBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlv
bi5jcHAgKi8sCkBAIC0yNTU3NSw3ICsyNTU2OSw2IEBACiAJCQkJRkQ3ODY4QkExMzZCOTk5MjAw
RDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjVERjMxRkEwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQURFQzc4RjgxOEVFNTMwODAwMTMxNUMyIC8qIEpTRWxlbWVudEN1c3RvbS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTNGOUI3NzUwQkE1RkRERDAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUNGN0FERDEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJv
ckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyog
SlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTgzNzhFMDlGODVENEYwMEI4
NUFFNCAvKiBKU0V2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5MTM3LDcgKzI5MTMwLDYgQEAK
IAkJCQlGRDc4NjhCOTEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2Rl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUY5MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0Vs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyRUQ1NTUwQzZCOUJEMzAwOTIwQkZGIC8q
IEpTRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5M0Y5Qjc3NDBCQTVGRERD
MDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVD
RjdBREMxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTRFODM3ODQwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0
L1dlYktpdERPTVByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9X
ZWJLaXRET01Qcml2YXRlLmNwcAppbmRleCA1OWNmNjhjMTI5MGE3YWIwMjZlMzFlMzI2MWIwNjhh
NDNkMzY2MDkzLi5hY2ExZjk4YWM5OTQ4OTBjNzAyODc2YjFhOGNlYjcwYjk3YmZhYmViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0
ZS5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFR5cGVQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01FbnRpdHlS
ZWZlcmVuY2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRUYXJnZXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
RE9NRmlsZVByaXZhdGUuaCIKQEAgLTkzLDggKzkyLDYgQEAgV2ViS2l0RE9NTm9kZSogd3JhcChO
b2RlKiBub2RlKQogICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBUZXh0KGRvd25j
YXN0PFRleHQ+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6CiAg
ICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcENEQVRBU2VjdGlvbihzdGF0aWNfY2Fz
dDxDREFUQVNlY3Rpb24qPihub2RlKSkpOwotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5D
RV9OT0RFOgotICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBFbnRpdHlSZWZlcmVu
Y2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpKTsKICAgICBjYXNlIE5vZGU6
OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01f
Tk9ERSh3cmFwUHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0
cnVjdGlvbio+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCBkZWVlNjc1YTkyNTEy
MTA1NGYxNzIzMjdlNTM2YWE0ZGY4ZTVmNzU5Li43M2IyMTBhYThkMWVhMDVjZjFlMTlmNWU0ZjM1
MWYxZTA1ZWI5OTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3Rv
bS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRW50aXR5LmgiCi0jaW5jbHVkZSAi
RW50aXR5UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
IkhUTUxBdWRpb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgpAQCAt
NTEsNyArNTAsNiBAQAogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0RvY3Vt
ZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJKU0RvY3VtZW50VHlwZS5oIgotI2luY2x1ZGUgIkpT
RW50aXR5UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVk
ZSAiSlNIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9y
eS5oIgpAQCAtMjA5LDkgKzIwNyw2IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgY3Jl
YXRlV3JhcHBlcklubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqCiAjZW5kaWYK
ICAgICAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVj
dCwgRG9jdW1lbnRGcmFnbWVudCwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6Ci0gICAgICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRW50aXR5UmVmZXJlbmNlLCBub2RlKTsK
LSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgd3JhcHBl
ciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIE5vZGUsIG5vZGUpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KaW5kZXggOGUxZmJlMWZjZDdjMzdjNDZlOTBj
MzNjYzA0NDIzNGExYWU0ODc4Mi4uZTgzOTY1ZGJjMzRmMjFjM2NlMzExNjBkNDc1YTZkMjgyY2Ez
ZmJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KQEAgLTMxMSw4ICszMTEsNiBA
QCBDbGFzcyBraXRDbGFzcyhXZWJDb3JlOjpOb2RlKiBpbXBsKQogICAgICAgICAgICAgcmV0dXJu
IFtET01UZXh0IGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNU
SU9OX05PREU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTUNEQVRBU2VjdGlvbiBjbGFzc107Ci0g
ICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAg
ICAgICAgcmV0dXJuIFtET01FbnRpdHlSZWZlcmVuY2UgY2xhc3NdOwogICAgICAgICBjYXNlIFdl
YkNvcmU6Ok5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgICAgIHJl
dHVybiBbRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJD
b3JlOjpOb2RlOjpDT01NRU5UX05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
QXR0ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKaW5kZXggYWM3YjY2Zjk5NzA1
ZDg5OWVlY2UzYzI4OTRmODllMWY4MDlkMTVmOC4uOTZkN2VlZDNiMGZmMjE1NTlhZGMzMzVlMjBh
NGM0NTlkZjIxYmRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcApAQCAtMTQ4LDEzICsxNDgsNyBAQCBSZWY8
Tm9kZT4gQXR0cjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBD
bG9uaW5nT3BlcmF0aW9uKQogLy8gRE9NIFNlY3Rpb24gMS4xLjEKIGJvb2wgQXR0cjo6Y2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogewotICAgIHN3aXRjaCAodHlwZSkgewot
ICAgICAgICBjYXNlIFRFWFRfTk9ERToKLSAgICAgICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05P
REU6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9CisgICAgcmV0dXJuIHR5cGUgPT0gVEVYVF9OT0RFOwog
fQogCiB2b2lkIEF0dHI6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0
dHIuaAppbmRleCAxMjRjNmQ3YTJhYTI4NjgzMGZjYmEyOTYyODg4OGI3MjAyMjk5Mjg2Li5mNmYz
NjIwNzcxN2EzNWMyYjI0M2ZhYWE5NjVkYzNhYjcyZjI2YmNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQXR0ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKQEAgLTMz
LDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlv
bjsKIGNsYXNzIE11dGFibGVTdHlsZVByb3BlcnRpZXM7CiAKLS8vIEF0dHIgY2FuIGhhdmUgVGV4
dCBhbmQgRW50aXR5UmVmZXJlbmNlIGNoaWxkcmVuCisvLyBBdHRyIGNhbiBoYXZlIFRleHQgY2hp
bGRyZW4KIC8vIHRoZXJlZm9yZSBpdCBoYXMgdG8gYmUgYSBmdWxsYmxvd24gTm9kZS4gVGhlIHBs
YW4KIC8vIGlzIHRvIGR5bmFtaWNhbGx5IGFsbG9jYXRlIGEgdGV4dGNoaWxkIGFuZCBzdG9yZSB0
aGUKIC8vIHJlc3VsdGluZyBub2RldmFsdWUgaW4gdGhlIGF0dHJpYnV0ZSB1cG9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggYzk2MzRiMGNlMTAwMzRlOTJiNWM1MTZlMTMy
ZDBjNDM0MzE3YTUwZC4uM2Y0ZmUwZjgwMzc0YzgzNzAwOTkwZWQ0YjQ1YTRhOWQyMTk0OWJiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtMTgwLDcgKzE4MCw2IEBAIHN0
YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUm
IG5ld1BhcmVudCwgTm9kZSYgbmV3CiB7CiAgICAgLy8gVXNlIGNvbW1vbiBjYXNlIGZhc3QgcGF0
aCBpZiBwb3NzaWJsZS4KICAgICBpZiAoKG5ld0NoaWxkLmlzRWxlbWVudE5vZGUoKSB8fCBuZXdD
aGlsZC5pc1RleHROb2RlKCkpICYmIG5ld1BhcmVudC5pc0VsZW1lbnROb2RlKCkpIHsKLSAgICAg
ICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSk7CiAgICAgICAgIEFTU0VSVCgh
bmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKICAgICAgICAgQVNTRVJUKGlzQ2hpbGRU
eXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgICAgIGlmIChjb250YWluc0Nv
bnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQpAQCAtMTkzLDggKzE5
Miw2IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRh
aW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3CiAgICAgaWYgKG5ld0NoaWxkLmlzUHNldWRv
RWxlbWVudCgpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogCi0gICAg
aWYgKG5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKQotICAgICAgICByZXR1cm4gTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSOwogICAgIGlmIChjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1l
bnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVF
U1RfRVJSOwogCkBAIC0yMDksNyArMjA2LDYgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Db2Rl
IGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXcKIAog
c3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKENv
bnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewotICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOwogICAgIEFTU0VS
VCghbmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKICAgICBBU1NFUlQoaXNDaGlsZFR5
cGVBbGxvd2VkKG5ld1BhcmVudCwgbmV3Q2hpbGQpKTsKICAgICBpZiAobmV3Q2hpbGQuY29udGFp
bnMoJm5ld1BhcmVudCkpIHsKQEAgLTUyMSwxMiArNTE3LDYgQEAgYm9vbCBDb250YWluZXJOb2Rl
OjpyZW1vdmVDaGlsZChOb2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICBl
YyA9IDA7CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNlZCBpZiB0
aGlzIG5vZGUgaXMgcmVhZG9ubHkuCi0gICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAg
ICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0KICAgICAvLyBOT1RfRk9VTkRfRVJSOiBSYWlzZWQgaWYgb2xkQ2hpbGQgaXMg
bm90IGEgY2hpbGQgb2YgdGhpcyBub2RlLgogICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkg
IT0gdGhpcykgewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCAwOGQ5ZGNkOWMyNDNhN2U2NzBmNWYyN2FkZjc1MzQ3M2VmNmIyNjQzLi5iOTNl
MDUzNTcyY2U5MTIxNzVjM2MzZWZiOTNiOWU5MzU5M2Q2YWZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTkwOSwxNyArOTA5LDEwIEBAIFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+
IERvY3VtZW50OjpjcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY29uc3QgU3RyaW5nCiAgICAg
cmV0dXJuIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y3JlYXRlKCp0aGlzLCB0YXJnZXQsIGRhdGEp
OwogfQogCi1SZWZQdHI8RW50aXR5UmVmZXJlbmNlPiBEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVm
ZXJlbmNlKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8RW50
aXR5UmVmZXJlbmNlPiBEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmICghaXNWYWxpZE5hbWUobmFtZSkpIHsK
LSAgICAgICAgZWMgPSBJTlZBTElEX0NIQVJBQ1RFUl9FUlI7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLSAgICBpZiAoaXNIVE1MRG9jdW1lbnQoKSkgewotICAgICAgICBlYyA9IE5P
VF9TVVBQT1JURURfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0
dXJuIEVudGl0eVJlZmVyZW5jZTo6Y3JlYXRlKCp0aGlzLCBuYW1lKTsKKyAgICBlYyA9IE5PVF9T
VVBQT1JURURfRVJSOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWY8VGV4dD4gRG9jdW1l
bnQ6OmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZShjb25zdCBTdHJpbmcmIHRleHQpCkBAIC05NDQsNyAr
OTM3LDYgQEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjppbXBvcnROb2RlKE5vZGUqIGltcG9ydGVk
Tm9kZSwgYm9vbCBkZWVwLCBFeGNlcHRpb25Db2RlJgogICAgIGNhc2UgRUxFTUVOVF9OT0RFOgog
ICAgIGNhc2UgVEVYVF9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgIGNh
c2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgUFJPQ0VTU0lOR19JTlNUUlVDVElP
Tl9OT0RFOgogICAgIGNhc2UgQ09NTUVOVF9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfRlJBR01F
TlRfTk9ERToKQEAgLTk3NCwxMSArOTY2LDYgQEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjphZG9w
dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoc291cmNlLT5pc1JlYWRPbmx5Tm9k
ZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KICAgICBFdmVudFF1ZXVlU2NvcGUgc2NvcGU7CiAK
ICAgICBzd2l0Y2ggKHNvdXJjZS0+bm9kZVR5cGUoKSkgewpAQCAtMTcxMCw1MiArMTY5Nyw1MiBA
QCBSZWY8UmFuZ2U+IERvY3VtZW50OjpjcmVhdGVSYW5nZSgpCiAgICAgcmV0dXJuIFJhbmdlOjpj
cmVhdGUoKnRoaXMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRl
Tm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRy
PE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJ
dGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2Rl
RmlsdGVyPiYmIGZpbHRlciwgYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJu
IGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwg
ZWMpOworfQorCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJh
dG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0
ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIXJvb3QpIHsKICAg
ICAgICAgZWMgPSBUeXBlRXJyb3I7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAg
ICByZXR1cm4gTm9kZUl0ZXJhdG9yOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3Zl
KGZpbHRlciksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworICAgIHJldHVybiBOb2RlSXRlcmF0
b3I6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSk7CiB9CiAKLVJl
ZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9v
dCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0
ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hh
dFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIGNyZWF0
ZU5vZGVJdGVyYXRvcihyb290LCB3aGF0VG9TaG93LCBudWxscHRyLCBlYyk7CiB9CiAKLVJlZlB0
cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2Rl
SXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCB3aGF0
VG9TaG93LCBudWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0
b3Iocm9vdCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJh
dG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50OjpjcmVhdGVUcmVlV2Fsa2VyKE5v
ZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYg
ZmlsdGVyLCBib29sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlTm9k
ZUl0ZXJhdG9yKHJvb3QsIDB4RkZGRkZGRkYsIG51bGxwdHIsIGZhbHNlLCBlYyk7CisgICAgcmV0
dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciks
IGVjKTsKIH0KIAotUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50OjpjcmVhdGVUcmVlV2Fsa2Vy
KE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+
JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEV4Y2VwdGlvbkNvZGUmIGVj
KQorUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50OjpjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVy
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIXJvb3QpIHsKICAgICAgICAgZWMgPSBU
eXBlRXJyb3I7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICByZXR1cm4gVHJl
ZVdhbGtlcjo6Y3JlYXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKTsKLX0KLQotUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50Ojpj
cmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVm
UHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICByZXR1
cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwg
ZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gVHJlZVdhbGtlcjo6Y3JlYXRlKHJvb3QsIHdoYXRUb1No
b3csIFdURjo6bW92ZShmaWx0ZXIpKTsKIH0KIAogUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50
OjpjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwg
d2hhdFRvU2hvdywgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlVHJlZVdh
bGtlcihyb290LCB3aGF0VG9TaG93LCBudWxscHRyLCBlYyk7CiB9CiAKIFJlZlB0cjxUcmVlV2Fs
a2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCAweEZGRkZGRkZGLCBu
dWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIDB4
RkZGRkZGRkYsIG51bGxwdHIsIGVjKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6c2NoZWR1bGVGb3Jj
ZWRTdHlsZVJlY2FsYygpCkBAIC0zMzU3LDcgKzMzNDQsNiBAQCBib29sIERvY3VtZW50OjpjaGls
ZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgY2FzZSBDREFUQV9TRUNUSU9O
X05PREU6CiAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgIGNhc2UgRE9DVU1F
TlRfTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFRFWFRf
Tk9ERToKICAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0zMzg1LDcgKzMzNzEsNiBAQCBib29sIERvY3VtZW50OjpjYW5BY2NlcHRDaGlsZChj
b25zdCBOb2RlJiBuZXdDaGlsZCwgY29uc3QgTm9kZSogcmVmQ2hpbGQsIEFjY2VwdAogICAgIGNh
c2UgQVRUUklCVVRFX05PREU6CiAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6CiAgICAgY2Fz
ZSBET0NVTUVOVF9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNh
c2UgVEVYVF9OT0RFOgogICAgIGNhc2UgWFBBVEhfTkFNRVNQQUNFX05PREU6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2FjOTUxNzkzOWFiNGVkNjRhY2Ex
NDMxNzI1NzAzMGE5MTM0MjllYy4uNzgxZWYyMGJkMzM3NzkzY2M4MzNjM2MxY2FiYTUwYTBjMWI4
OGUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTUzNiwxMiArNTM2LDEyIEBAIHB1YmxpYzoK
IAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxSYW5nZT4gY3JlYXRlUmFuZ2UoKTsKIAotICAgIFJl
ZlB0cjxOb2RlSXRlcmF0b3I+IGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25l
ZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBib29sIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBj
cmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBS
ZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCwgRXhjZXB0aW9uQ29kZSYpOyAvLyBGb3IgT2JqQyBi
aW5kaW5ncy4KICAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9k
ZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxOb2RlSXRlcmF0b3I+IGNyZWF0ZU5vZGVJdGVy
YXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9v
dCwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVX
YWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZp
bHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCwgRXhjZXB0aW9u
Q29kZSYpOyAvLyBGb3IgT2JqQyBiaW5kaW5ncy4KICAgICBSZWZQdHI8VHJlZVdhbGtlcj4gY3Jl
YXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0
cjxOb2RlRmlsdGVyPiYmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+
IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBF
eGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIo
Tm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXgg
MWNjMDAwNzNjYzA0OTc1ZjI5NzFmZmRkMDNmMGU2NWYwZjUwOTVlYi4uZjI2ZWNlZjg2YmMzM2E1
ZmU2MjgxNjViZDRkNDA0ODk3NWNmNWM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0z
OSw3ICszOSwxMCBAQAogICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIE5ld09iamVj
dCwgUmFpc2VzRXhjZXB0aW9uXSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gY3JlYXRlUHJvY2Vzc2lu
Z0luc3RydWN0aW9uKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHRhcmdl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwg
RE9NU3RyaW5nIGRhdGEpOwogICAgIFtOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gQXR0ciBj
cmVhdGVBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFt
ZSk7Ci0gICAgW05ld09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBFbnRpdHlSZWZlcmVuY2UgY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5n
IG5hbWUpOworCisjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0Vf
T0JKRUNUSVZFX0MgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JK
RUNUCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJl
ZmVyZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyNl
bmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JK
RUNUSVZFX0MKICAgICBbSW1wbGVtZW50ZWRBcz1nZXRFbGVtZW50c0J5VGFnTmFtZUZvck9iakNd
IE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9u
YWwgRE9NU3RyaW5nIHRhZ25hbWUpOwpAQCAtOTIsMTQgKzk1LDIzIEBACiAKICAgICAvLyBET00g
TGV2ZWwgMiBUcmFudmVyc2FsIGFuZCBSYW5nZSAoRG9jdW1lbnRUcmF2ZXJzYWwgaW50ZXJmYWNl
KQogCi0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uLCBO
ZXdPYmplY3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAorI2lm
IGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DIHx8
IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0VfR09CSkVDVAorICAgIFtPYmpD
TGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gTm9kZUl0ZXJhdG9yIGNy
ZWF0ZU5vZGVJdGVyYXRvcihOb2RlIHJvb3QsCiAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCiAgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0ZXI/
IGZpbHRlciwKICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb24sIE5l
d09iamVjdF0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwKKyAgICBbT2Jq
Q0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb25dIFRyZWVXYWxrZXIgY3Jl
YXRlVHJlZVdhbGtlcihOb2RlIHJvb3QsCiAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCiAgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0ZXI/IGZp
bHRlciwKICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsK
KyNlbHNlCisgICAgW1JhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBOb2RlSXRlcmF0b3IgY3Jl
YXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9vdCwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKKyAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8g
ZmlsdGVyKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIFRyZWVXYWxrZXIgY3Jl
YXRlVHJlZVdhbGtlcihOb2RlIHJvb3QsCisgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCisgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0ZXI/IGZp
bHRlcik7CisjZW5kaWYKIAogICAgIC8vIERPTSBMZXZlbCAyIEFic3RyYWN0IFZpZXdzIChEb2N1
bWVudFZpZXcgaW50ZXJmYWNlKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5j
cHAKaW5kZXggZjliMzhhMGJkMjhlOGUzYzYwOTM0YWZmMWE2MDA1OTI3MDkwM2ZlYy4uYTY3MDAy
YzRiZjk4NzQ0YTI5NTNmNDllMjZlNjFiYTBjYWQzNzFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudEZyYWdtZW50LmNwcApAQCAtNjAsNyArNjAsNiBAQCBib29sIERvY3VtZW50RnJhZ21l
bnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICAgICAgY2FzZSBD
T01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgVEVYVF9OT0RFOgogICAgICAgICBjYXNlIENEQVRB
X1NFQ1RJT05fTk9ERToKLSAgICAgICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZDMwNzRkMWU4Mzc0YjBiNzc3YjZl
NzA0M2I0NzliYjU2ODQ2ZTU0Li41OGZjODA0Njc4MjQyZjRkZGI2MjZjYmFhNjk4NDgwZjFhNDhm
Y2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNzU1LDcgKzE3NTUsNiBAQCBib29sIEVs
ZW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICBjYXNlIENP
TU1FTlRfTk9ERToKICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBj
YXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCmluZGV4IDdlOTFhNDYyZGE4MjA5ZDkyMmM0
NWRjODRjNDFhMDg1NWFkNmJlMWEuLmU1ODI0ZjEwOGJiNmY1NDNiNWEwNzY3YWZlMWZhODRhMmQ0
ODFkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCkBAIC0yNSwzMCAr
MjUsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBFbnRpdHlSZWZlcmVuY2U6
OkVudGl0eVJlZmVyZW5jZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZW50aXR5
TmFtZSkKK2lubGluZSBFbnRpdHlSZWZlcmVuY2U6OkVudGl0eVJlZmVyZW5jZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYpCiAgICAgOiBDb250YWluZXJOb2RlKGRvY3VtZW50KQot
ICAgICwgbV9lbnRpdHlOYW1lKGVudGl0eU5hbWUpCiB7CiB9CiAKLVJlZjxFbnRpdHlSZWZlcmVu
Y2U+IEVudGl0eVJlZmVyZW5jZTo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiBlbnRpdHlOYW1lKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVudGl0eVJlZmVy
ZW5jZShkb2N1bWVudCwgZW50aXR5TmFtZSkpOwotfQotCi1TdHJpbmcgRW50aXR5UmVmZXJlbmNl
Ojpub2RlTmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZW50aXR5TmFtZTsKLX0KLQotTm9k
ZTo6Tm9kZVR5cGUgRW50aXR5UmVmZXJlbmNlOjpub2RlVHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIEVOVElUWV9SRUZFUkVOQ0VfTk9ERTsKLX0KLQotUmVmPE5vZGU+IEVudGl0eVJlZmVyZW5j
ZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3Bl
cmF0aW9uKQotewotICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIG1fZW50aXR5TmFt
ZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RW50aXR5UmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgK
aW5kZXggODZkZmViMzk4MjViMzQ1MGU3NTM1OTI1MDY4NTExMGIzYWYwY2E4Zi4uMThjMmVjMWFm
Y2U1NzBlODBlODY1YTA4NDViYWJkODg2NmY5NjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuaApAQCAtMjYsMTggKzI2LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBFbnRpdHlSZWZlcmVuY2UgZmluYWwgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxFbnRpdHlSZWZlcmVuY2U+IGNyZWF0ZShEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgZW50aXR5TmFtZSk7Ci0KK2NsYXNzIEVudGl0eVJlZmVyZW5jZSA6IHB1Ymxp
YyBDb250YWluZXJOb2RlIHsKIHByaXZhdGU6CiAgICAgRW50aXR5UmVmZXJlbmNlKERvY3VtZW50
JiwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKTsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVO
YW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNv
bnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7Ci0KLSAgICBTdHJpbmcgbV9lbnRp
dHlOYW1lOwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJl
bmNlLmlkbAppbmRleCA2ZDA1MzVmOWJjMWRhYTc5MTc4MzFlZmRiZTZhYmQwN2FlOWI3ZGJhLi5l
ZmY5NWEwM2UzYTRlMmZkMzZiMmUyMThjNjA5NjQ4MzhjYzZlN2YwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRW50aXR5UmVmZXJlbmNlLmlkbApAQCAtMTcsOCArMTcsMTIgQEAKICAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgogICovCiAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9D
KSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQyB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYm
IExBTkdVQUdFX0dPQkpFQ1QKKwogWworICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEpTR2Vu
ZXJhdGVUb0pTT2JqZWN0CiBdIGludGVyZmFjZSBFbnRpdHlSZWZlcmVuY2UgOiBOb2RlIHsKIH07
CiAKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDQzNjJkNjU2ZGM0N2ZkNjQzMzViNDY4NjE0
YmU3MzY1ODgxMzAyYmEuLmRlZjI0Y2U2NzA5NTU2NjRiY2JhMTM1MDQ3MTZmYzQxN2NhZjYzMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKQEAgLTEwMyw3ICsxMDMsNiBAQCB2b2lkIE5vZGU6OmR1bXBTdGF0
aXN0aWNzKCkKICAgICBzaXplX3QgdGV4dE5vZGVzID0gMDsKICAgICBzaXplX3QgY2RhdGFOb2Rl
cyA9IDA7CiAgICAgc2l6ZV90IGNvbW1lbnROb2RlcyA9IDA7Ci0gICAgc2l6ZV90IGVudGl0eVJl
ZmVyZW5jZU5vZGVzID0gMDsKICAgICBzaXplX3QgZW50aXR5Tm9kZXMgPSAwOwogICAgIHNpemVf
dCBwaU5vZGVzID0gMDsKICAgICBzaXplX3QgZG9jdW1lbnROb2RlcyA9IDA7CkBAIC0xNjgsMTAg
KzE2Nyw2IEBAIHZvaWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgICAgICAgICAgICAgICsr
Y29tbWVudE5vZGVzOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6IHsKLSAgICAgICAgICAgICAgICAr
K2VudGl0eVJlZmVyZW5jZU5vZGVzOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQogICAgICAgICAgICAgY2FzZSBFTlRJVFlfTk9ERTogewogICAgICAgICAgICAgICAgICsr
ZW50aXR5Tm9kZXM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yMTEsNyArMjA2LDYgQEAg
dm9pZCBOb2RlOjpkdW1wU3RhdGlzdGljcygpCiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBUZXh0
IG5vZGVzOiAlenVcbiIsIHRleHROb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBDREFU
QVNlY3Rpb24gbm9kZXM6ICV6dVxuIiwgY2RhdGFOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJl
ciBvZiBDb21tZW50IG5vZGVzOiAlenVcbiIsIGNvbW1lbnROb2Rlcyk7Ci0gICAgcHJpbnRmKCIg
IE51bWJlciBvZiBFbnRpdHlSZWZlcmVuY2Ugbm9kZXM6ICV6dVxuIiwgZW50aXR5UmVmZXJlbmNl
Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgRW50aXR5IG5vZGVzOiAlenVcbiIsIGVu
dGl0eU5vZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIFByb2Nlc3NpbmdJbnN0cnVjdGlv
biBub2RlczogJXp1XG4iLCBwaU5vZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIERvY3Vt
ZW50IG5vZGVzOiAlenVcbiIsIGRvY3VtZW50Tm9kZXMpOwpAQCAtMzg0LDE0ICszNzgsOCBAQCBT
dHJpbmcgTm9kZTo6bm9kZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
LXZvaWQgTm9kZTo6c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYgLypub2RlVmFsdWUqLywgRXhj
ZXB0aW9uQ29kZSYgZWMpCit2b2lkIE5vZGU6OnNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmIC8q
bm9kZVZhbHVlKi8sIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIC8vIE5PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUjogUmFpc2VkIHdoZW4gdGhlIG5vZGUgaXMgcmVhZG9ubHkKLSAgICBpZiAoaXNS
ZWFkT25seU5vZGUoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIEJ5IGRlZmF1bHQsIHNldHRpbmcg
bm9kZVZhbHVlIGhhcyBubyBlZmZlY3QuCiB9CiAKQEAgLTg5MCwxMSArODc4LDYgQEAgdm9pZCBO
b2RlOjpjaGVja1NldFByZWZpeChjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaXNSZWFkT25seU5v
ZGUoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIEZJWE1FOiBSYWlzZSBOQU1FU1BBQ0VfRVJSIGlm
IHByZWZpeCBpcyBtYWxmb3JtZWQgcGVyIHRoZSBOYW1lc3BhY2VzIGluIFhNTCBzcGVjaWZpY2F0
aW9uLgogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBub2RlTmFtZXNwYWNlVVJJID0gbmFtZXNw
YWNlVVJJKCk7CkBAIC0xNDIyLDcgKzE0MDUsNiBAQCBzdGF0aWMgdm9pZCBhcHBlbmRUZXh0Q29u
dGVudChjb25zdCBOb2RlKiBub2RlLCBib29sIGNvbnZlcnRCUnNUb05ld2xpbmVzLCBib29sJgog
ICAgICAgICB9CiAgICAgICAgIEZBTExUSFJPVUdIOwogICAgIGNhc2UgTm9kZTo6QVRUUklCVVRF
X05PREU6Ci0gICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBO
b2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICBpc051bGxTdHJpbmcgPSBmYWxz
ZTsKICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKQEAgLTE0NTgsNyArMTQ0MCw2IEBAIHZv
aWQgTm9kZTo6c2V0VGV4dENvbnRlbnQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBFTEVNRU5UX05PREU6CiAg
ICAgICAgIGNhc2UgQVRUUklCVVRFX05PREU6Ci0gICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5D
RV9OT0RFOgogICAgICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6IHsKICAgICAgICAg
ICAgIFJlZjxDb250YWluZXJOb2RlPiBjb250YWluZXIoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4o
KnRoaXMpKTsKICAgICAgICAgICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oY29u
dGFpbmVyKTsKQEAgLTE0NzgsNyArMTQ1OSw2IEBAIHZvaWQgTm9kZTo6c2V0VGV4dENvbnRlbnQo
Y29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogRWxlbWVudCogTm9kZTo6
YW5jZXN0b3JFbGVtZW50KCkgY29uc3QKIHsKLSAgICAvLyBJbiB0aGVvcnksIHRoZXJlIGNhbiBi
ZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYmV0d2VlbiBlbGVtZW50cywgYnV0IHRoaXMgaXMgY3Vy
cmVudGx5IG5vdCBzdXBwb3J0ZWQuCiAgICAgZm9yIChDb250YWluZXJOb2RlKiBhbmNlc3RvciA9
IHBhcmVudE5vZGUoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudE5vZGUo
KSkgewogICAgICAgICBpZiAoaXM8RWxlbWVudD4oKmFuY2VzdG9yKSkKICAgICAgICAgICAgIHJl
dHVybiBkb3duY2FzdDxFbGVtZW50PihhbmNlc3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCAwNGUzOGQy
NWI0M2I0MGZiZDViMzY0Y2Y0MzNlNzdjM2MxMDczNWM0Li5hMmZjNDM4ODk0MGUyMmNmNzViZjU5
NWI3NDg5ZGQ4MzkyZDUwMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTEyNSw3ICsxMjUsNiBAQCBwdWJs
aWM6CiAgICAgICAgIEFUVFJJQlVURV9OT0RFID0gMiwKICAgICAgICAgVEVYVF9OT0RFID0gMywK
ICAgICAgICAgQ0RBVEFfU0VDVElPTl9OT0RFID0gNCwKLSAgICAgICAgRU5USVRZX1JFRkVSRU5D
RV9OT0RFID0gNSwKICAgICAgICAgUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFID0gNywKICAg
ICAgICAgQ09NTUVOVF9OT0RFID0gOCwKICAgICAgICAgRE9DVU1FTlRfTk9ERSA9IDksCkBAIC0x
MzQsNiArMTMzLDcgQEAgcHVibGljOgogICAgICAgICBYUEFUSF9OQU1FU1BBQ0VfTk9ERSA9IDEz
LAogICAgIH07CiAgICAgZW51bSBEZXByZWNhdGVkTm9kZVR5cGUgeworICAgICAgICBFTlRJVFlf
UkVGRVJFTkNFX05PREUgPSA1LAogICAgICAgICBFTlRJVFlfTk9ERSA9IDYsCiAgICAgICAgIE5P
VEFUSU9OX05PREUgPSAxMiwKICAgICB9OwpAQCAtNDE3LDcgKzQxNyw2IEBAIHB1YmxpYzoKICAg
ICBib29sIGlzSW5TaGFkb3dUcmVlKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc0luU2hhZG93
VHJlZUZsYWcpOyB9CiAgICAgYm9vbCBpc0luVHJlZVNjb3BlKCkgY29uc3QgeyByZXR1cm4gZ2V0
RmxhZyhzdGF0aWNfY2FzdDxOb2RlRmxhZ3M+KEluRG9jdW1lbnRGbGFnIHwgSXNJblNoYWRvd1Ry
ZWVGbGFnKSk7IH0KIAotICAgIGJvb2wgaXNSZWFkT25seU5vZGUoKSBjb25zdCB7IHJldHVybiBu
b2RlVHlwZSgpID09IEVOVElUWV9SRUZFUkVOQ0VfTk9ERTsgfQogICAgIGJvb2wgaXNEb2N1bWVu
dFR5cGVOb2RlKCkgY29uc3QgeyByZXR1cm4gbm9kZVR5cGUoKSA9PSBET0NVTUVOVF9UWVBFX05P
REU7IH0KICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB1bnNpZ25lZCBjb3VudENoaWxkTm9kZXMoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKaW5kZXggNDhhMGExOTJhN2JlZTBjZmYyMDlk
NWVhNGQ4OWM5YzMxYTA0YzcwOS4uZGE5ZDAyM2IyNWU4ZjlmMmJmNTdhYzg4MTAzOGQ3MjVkNWUx
YzY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKQEAgLTc2LDggKzc2LDggQEAg
Ym9vbCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVyOjptb3ZlVG9QcmV2aW91cyhOb2RlKiByb290
KQogICAgIHJldHVybiBub2RlOwogfQogCi1Ob2RlSXRlcmF0b3I6Ok5vZGVJdGVyYXRvcihQYXNz
UmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxO
b2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQotICAgIDog
Tm9kZUl0ZXJhdG9yQmFzZShyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciks
IGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCitOb2RlSXRlcmF0b3I6Ok5vZGVJdGVyYXRvcihQYXNz
UmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxO
b2RlRmlsdGVyPiYmIGZpbHRlcikKKyAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdo
YXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpKQogICAgICwgbV9yZWZlcmVuY2VOb2RlKHJvb3Qo
KSwgdHJ1ZSkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuYXR0YWNoTm9kZUl0ZXJhdG9yKHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCmluZGV4IDk3MTkyNzRhM2RhMWI5NzU0MDZh
YTcxY2M1ZTllYWU1ZjNjN2QzMzUuLjRmMTUwN2RlMDNhYzMwM2U1ZjE4MGIzMzExMjY4MDc0YzY5
ODA4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKQEAgLTM3LDkgKzM3LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgTm9kZUl0ZXJhdG9yIDogcHVibGljIFNjcmlw
dFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8Tm9kZUl0ZXJhdG9yPiwgcHVibGljIE5vZGVJ
dGVyYXRvckJhc2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxOb2RlSXRlcmF0
b3I+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRU
b1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzKQorICAgICAgICBzdGF0aWMgUmVmPE5vZGVJdGVyYXRvcj4gY3JlYXRlKFBhc3NSZWZQ
dHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVG
aWx0ZXI+JiYgZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBOb2RlSXRlcmF0b3Iocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
LCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBOb2RlSXRlcmF0b3Iocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
KSk7CiAgICAgICAgIH0KICAgICAgICAgfk5vZGVJdGVyYXRvcigpOwogCkBAIC01NCw3ICs1NCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBub2RlV2lsbEJlUmVtb3ZlZChO
b2RlJik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxO
b2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9v
bCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQ
dHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYp
OwogCiAgICAgICAgIHN0cnVjdCBOb2RlUG9pbnRlciB7CiAgICAgICAgICAgICBSZWZQdHI8Tm9k
ZT4gbm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRs
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKaW5kZXggMTIwMjVkZTZiOGI0
OTQ3M2VmZDdmNzg0MDExZjQxZjc2MTMwN2I2Ny4uMjMxMTJkOTk0M2Y1OTMzN2FmZjE1ZGFjYzdj
MWVlNWI3YTVmNzljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRv
ci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKQEAgLTI2LDcg
KzI2LDkgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByb290OwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3c7CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIE5vZGVGaWx0ZXIgZmlsdGVyOworI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0Mp
ICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
ZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKKyNlbmRpZgogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBO
b2RlIHJlZmVyZW5jZU5vZGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcG9pbnRl
ckJlZm9yZVJlZmVyZW5jZU5vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9S
YW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDUyZTJmMTkzMjE2
N2FmYzg1YTUxOWRlNTA5ZmQ1MWJhZjE2MDk0OTMuLjhjMWUyYjBkODI0MDdjZGUyMzA2YWZmMzZi
MTVhYTQ5MTc0YTM0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtNTcyLDcgKzU3Miw2IEBAIHN0
YXRpYyBpbmxpbmUgdW5zaWduZWQgbGVuZ3RoT2ZDb250ZW50c0luTm9kZShOb2RlKiBub2RlKQog
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q2hhcmFjdGVyRGF0YT4oKm5vZGUpLmxlbmd0aCgpOwog
ICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgogICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05P
REU6Ci0gICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBOb2Rl
OjpET0NVTUVOVF9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgogICAg
IGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKQEAgLTczMyw3ICs3MzIsNiBAQCBS
ZWZQdHI8Tm9kZT4gUmFuZ2U6OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5
cGUgYWN0aW9uLCBQYXNzUmVmUHRyPAogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vZGU6OkVM
RU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9k
ZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToK
ICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VN
RU5UX0ZSQUdNRU5UX05PREU6CkBAIC04NTYsMTMgKzg1NCw2IEBAIHZvaWQgUmFuZ2U6Omluc2Vy
dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBwcnBOZXdOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
UjogUmFpc2VkIGlmIGFuIGFuY2VzdG9yIGNvbnRhaW5lciBvZiBlaXRoZXIgYm91bmRhcnktcG9p
bnQgb2YKLSAgICAvLyB0aGUgUmFuZ2UgaXMgcmVhZC1vbmx5LgotICAgIGlmIChjb250YWluZWRC
eVJlYWRPbmx5KCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBISUVSQVJDSFlfUkVRVUVTVF9FUlI6
IFJhaXNlZCBpZiB0aGUgY29udGFpbmVyIG9mIHRoZSBzdGFydCBvZiB0aGUgUmFuZ2UgaXMgb2Yg
YSB0eXBlIHRoYXQKICAgICAvLyBkb2VzIG5vdCBhbGxvdyBjaGlsZHJlbiBvZiB0aGUgdHlwZSBv
ZiBuZXdOb2RlIG9yIGlmIG5ld05vZGUgaXMgYW4gYW5jZXN0b3Igb2YgdGhlIGNvbnRhaW5lci4K
IApAQCAtMTAyMiw3ICsxMDEzLDYgQEAgTm9kZSogUmFuZ2U6OmNoZWNrTm9kZVdPZmZzZXQoTm9k
ZSogbiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVO
VF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBO
b2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFN
RVNQQUNFX05PREU6IHsKICAgICAgICAgICAgIGlmICghb2Zmc2V0KQogICAgICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwpAQCAtMTA1Miw3ICsxMDQyLDYgQEAgdm9pZCBSYW5nZTo6Y2hlY2tO
b2RlQkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGNhc2UgTm9k
ZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToK
ICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5U
SVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJV
Q1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgIGNhc2Ug
Tm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMDcyLDcgKzEwNjEsNiBAQCB2b2lkIFJh
bmdlOjpjaGVja05vZGVCQShOb2RlKiBuLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAg
ICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
VFlQRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2Fz
ZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VT
U0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAg
ICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTExNDksNyArMTEzNyw2
IEBAIHZvaWQgUmFuZ2U6OnNlbGVjdE5vZGUoTm9kZSogcmVmTm9kZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAg
ICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6
OkVMRU1FTlRfTk9ERToKLSAgICAgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9O
T0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6
CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9k
ZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTY1LDcgKzExNTIsNiBAQCB2b2lkIFJhbmdl
OjpzZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBj
YXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBF
X05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5v
ZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5H
X0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAg
ICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTIwNCw3ICsxMTkwLDYgQEAg
dm9pZCBSYW5nZTo6c2VsZWN0Tm9kZUNvbnRlbnRzKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgog
ICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBO
b2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVO
Q0VfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9O
T0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICBjYXNl
IE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTI0MywyMCArMTIyOCwxMiBAQCB2b2lk
IFJhbmdlOjpzdXJyb3VuZENvbnRlbnRzKFBhc3NSZWZQdHI8Tm9kZT4gcGFzc05ld1BhcmVudCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RF
OgogICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpF
TEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgog
ICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAg
Y2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNF
X05PREU6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlI6IFJhaXNlZCBpZiBhbiBhbmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVy
IGJvdW5kYXJ5LXBvaW50IG9mCi0gICAgLy8gdGhlIFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBp
ZiAoY29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gUmFpc2UgYSBI
SUVSQVJDSFlfUkVRVUVTVF9FUlIgaWYgc3RhcnRDb250YWluZXIoKSBkb2Vzbid0IGFjY2VwdCBj
aGlsZHJlbiBsaWtlIG5ld1BhcmVudC4KICAgICBOb2RlKiBwYXJlbnRPZk5ld1BhcmVudCA9ICZz
dGFydENvbnRhaW5lcigpOwogCkBAIC0xMzMwLDM2ICsxMzA3LDE2IEBAIHZvaWQgUmFuZ2U6OmNo
ZWNrRGVsZXRlRXh0cmFjdChBY3Rpb25UeXBlIGFjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiAg
ICAgaWYgKCFjb21tb25BbmNlc3RvckNvbnRhaW5lcigpKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBpZiAoYWN0aW9uICE9IEV4dHJhY3QpCisgICAgICAgIHJldHVybjsKKwogICAgIE5vZGUqIHBh
c3RMYXN0ID0gcGFzdExhc3ROb2RlKCk7CiAgICAgZm9yIChOb2RlKiBuID0gZmlyc3ROb2RlKCk7
IG4gIT0gcGFzdExhc3Q7IG4gPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpuKSkgewotICAgICAgICBp
ZiAobi0+aXNSZWFkT25seU5vZGUoKSkgewotICAgICAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlI7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoYWN0aW9uID09IEV4dHJhY3QgJiYgbi0+bm9kZVR5cGUoKSA9PSBOb2RlOjpET0NVTUVO
VF9UWVBFX05PREUpIHsKKyAgICAgICAgaWYgKG4tPmlzRG9jdW1lbnRUeXBlTm9kZSgpKSB7CiAg
ICAgICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgIH0KLQotICAgIGlmIChjb250YWluZWRCeVJlYWRPbmx5KCkpIHsK
LSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci19Ci0KLWJvb2wgUmFuZ2U6OmNvbnRhaW5lZEJ5UmVhZE9ubHkoKSBjb25zdAot
ewotICAgIGZvciAoTm9kZSogbiA9ICZzdGFydENvbnRhaW5lcigpOyBuOyBuID0gbi0+cGFyZW50
Tm9kZSgpKSB7Ci0gICAgICAgIGlmIChuLT5pc1JlYWRPbmx5Tm9kZSgpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGZvciAoTm9kZSogbiA9ICZlbmRDb250YWluZXIoKTsg
bjsgbiA9IG4tPnBhcmVudE5vZGUoKSkgewotICAgICAgICBpZiAobi0+aXNSZWFkT25seU5vZGUo
KSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIE5vZGUqIFJhbmdlOjpmaXJzdE5vZGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaAppbmRleCBjOGYy
OTkzYWRkMGQxNTlmYWM1MmJkYWM3ZjFjYzkzMGJkZTVmNmVlLi40YzExMTYyMGE3MmQ3MTc4NTgy
NTVjZDllMDM1MWUzNGVlYmUyNDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaApAQCAtMTYxLDcgKzE2MSw2IEBA
IHByaXZhdGU6CiAKICAgICBOb2RlKiBjaGVja05vZGVXT2Zmc2V0KE5vZGUqLCBpbnQgb2Zmc2V0
LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCBjaGVja05vZGVCQShOb2RlKiwgRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0OwotICAgIGJvb2wgY29udGFpbmVkQnlSZWFkT25seSgpIGNvbnN0
OwogCiAgICAgZW51bSBBY3Rpb25UeXBlIHsgRGVsZXRlLCBFeHRyYWN0LCBDbG9uZSB9OwogICAg
IHZvaWQgY2hlY2tEZWxldGVFeHRyYWN0KEFjdGlvblR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCAwNGNlZjVjYTFkMTQ4MzdiMjdhZjdmNzQyOWQ2
N2QyZmNiNzBmMzg2Li40NTU0N2ZlYjI0ZTJiYmM1MTJjNTI0ZGYzZTM2MjdlZDJlZWYwNzQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAgYm9vbCBTaGFk
b3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgY2FzZSBD
T01NRU5UX05PREU6CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2FzZSBDREFUQV9TRUNUSU9O
X05PREU6Ci0gICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZl
cnNhbC5jcHAKaW5kZXggNzRhOTI4ZjdjYzAyOWI2ZjMzY2ZkY2U1MWExZjJhM2EzMWZlZGI1Mi4u
M2M0YTk1NWIxMTEwNmNkYTIyMjg1YTlmNTI3MTcwN2IxZDljNzdmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
YXZlcnNhbC5jcHAKQEAgLTMwLDE4ICszMCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LU5vZGVJdGVyYXRvckJhc2U6Ok5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiByb290
Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBub2Rl
RmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCitOb2RlSXRlcmF0b3JCYXNlOjpO
b2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZpbHRlcikKICAgICA6IG1fcm9v
dChyb290Tm9kZSkKICAgICAsIG1fd2hhdFRvU2hvdyh3aGF0VG9TaG93KQogICAgICwgbV9maWx0
ZXIoV1RGOjptb3ZlKG5vZGVGaWx0ZXIpKQotICAgICwgbV9leHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCiB7CiB9CiAKIHNob3J0IE5vZGVJdGVyYXRvckJhc2U6
OmFjY2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogVG8gaGFuZGxl
IFhNTCBwcm9wZXJseSB3ZSB3b3VsZCBoYXZlIHRvIGNoZWNrIG1fZXhwYW5kRW50aXR5UmVmZXJl
bmNlcy4KLQogICAgIC8vIFRoZSBiaXQgdHdpZGRsaW5nIGhlcmUgaXMgZG9uZSB0byBtYXAgRE9N
IG5vZGUgdHlwZXMsIHdoaWNoIGFyZSBnaXZlbiBhcyBpbnRlZ2VycyBmcm9tCiAgICAgLy8gMSB0
aHJvdWdoIDE0LCB0byB3aGF0VG9TaG93IGJpdCBtYXNrcy4KICAgICBpZiAoISgoKDEgPDwgKG5v
ZGUtPm5vZGVUeXBlKCkgLSAxKSkgJiBtX3doYXRUb1Nob3cpKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwu
aAppbmRleCBlZDZlOGRkYmQwYzI2NjE1ZTMzN2EyZTQyYzliOWQ5MzU4ZjhmZGRhLi5mZmJkNTQ5
YjFkZTg0ODYwNDNlZTRkMGI0MjBhN2RkY2E3NDhmYTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJhdmVyc2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5o
CkBAIC0zOCwxNyArMzgsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOb2RlKiBy
b290KCkgY29uc3QgeyByZXR1cm4gbV9yb290LmdldCgpOyB9CiAgICAgICAgIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdygpIGNvbnN0IHsgcmV0dXJuIG1fd2hhdFRvU2hvdzsgfQogICAgICAgICBO
b2RlRmlsdGVyKiBmaWx0ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlci5nZXQoKTsgfQotICAg
ICAgICBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMoKSBjb25zdCB7IHJldHVybiBtX2V4cGFu
ZEVudGl0eVJlZmVyZW5jZXM7IH0KKyAgICAgICAgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgTm9k
ZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cs
IFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworICAg
ICAgICBOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hh
dFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYpOwogICAgICAgICBzaG9ydCBhY2NlcHROb2Rl
KE5vZGUqKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxOb2RlPiBtX3Jv
b3Q7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV93aGF0VG9TaG93OwogICAgICAgICBSZWZQdHI8
Tm9kZUZpbHRlcj4gbV9maWx0ZXI7Ci0gICAgICAgIGJvb2wgbV9leHBhbmRFbnRpdHlSZWZlcmVu
Y2VzOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fs
a2VyLmNwcAppbmRleCBhZDBhY2UxOTliN2RhNjllZWNiMjA0M2EyOGM5ZWY0NGZjMDYzZDQ2Li44
Nzc0ODJhZmY0N2EzYzU0MzRhZjc1MzJlNmRjMDUzZDE1MTNjZDFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVXYWxrZXIuY3BwCkBAIC0zMyw4ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
VHJlZVdhbGtlcjo6VHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25l
ZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKQotICAgIDogTm9kZUl0ZXJhdG9yQmFzZShyb290Tm9kZSwgd2hh
dFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCitUcmVl
V2Fsa2VyOjpUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyKQorICAgIDogTm9kZUl0
ZXJhdG9yQmFzZShyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpCiAgICAg
LCBtX2N1cnJlbnQocm9vdCgpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVXYWxrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKaW5kZXggYmY2
OWJkZWNlMDk5YmNkMTRkYmFmZDU4ZjAxN2NmYmQ4N2I1MTU2My4uMjI4ZjIzZDQ3NDZhMjE1OWJi
NTBiZjZhYTYyNzg4YjczMzY0ZmI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVXYWxrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCkBAIC0zNyw5
ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFRyZWVXYWxrZXIgOiBw
dWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxUcmVlV2Fsa2VyPiwgcHVi
bGljIE5vZGVJdGVyYXRvckJhc2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxU
cmVlV2Fsa2VyPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50
aXR5UmVmZXJlbmNlcykKKyAgICAgICAgc3RhdGljIFJlZjxUcmVlV2Fsa2VyPiBjcmVhdGUoUGFz
c1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8
Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFRyZWVXYWxrZXIocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0
ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUcmVlV2Fsa2VyKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVy
KSkpOwogICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCiAgICAgICAgIE5v
ZGUqIGN1cnJlbnROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50LmdldCgpOyB9CkBAIC01
NCw3ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9kZSogbmV4dE5vZGUo
KTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAgICAgVHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKICAgICAg
ICAgCiAgICAgICAgIE5vZGUqIHNldEN1cnJlbnQoUGFzc1JlZlB0cjxOb2RlPik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlV2Fsa2VyLmlkbAppbmRleCA0ODA5ZWUzZDRmMWQxZmQ0MDg1ZTFhMTE5NzNhOGRm
NDAyMGU0NzE1Li5hZDVjYjVkNjQwMzEwZjhjMDM4OTYxZjUxMzJkNWJkZGQyMzY2YzdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCkBAIC0yNiw3ICsyNiw5IEBACiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlRmlsdGVyIGZpbHRlcjsK
LSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzOyAg
ICAgICAgCisjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JK
RUNUSVZFX0MKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzOworI2VuZGlmCiAgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIE5v
ZGUgY3VycmVudE5vZGU7CiAKICAgICBOb2RlIHBhcmVudE5vZGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggODM0NTU3MjA0OTZhMGQxMGRk
MDZmYzBlYTRlZWJmNDM4Y2I0ZWMyNi4uNzEyYWJmYWY4Y2VjY2M4ZjI3NzZlYTUwNTg2ZGMzYTAx
MGFjZjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVs
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5j
cHAKQEAgLTU3Myw3ICs1NzMsNiBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdGFy
dE1hcmt1cChTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IE5vZGUmIG5vZAogICAgICAgICBh
cHBlbmRDREFUQVNlY3Rpb24ocmVzdWx0LCBkb3duY2FzdDxDREFUQVNlY3Rpb24+KG5vZGUpLmRh
dGEoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6Ci0g
ICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBOb2RlOjpYUEFU
SF9OQU1FU1BBQ0VfTk9ERToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhVdGlsLmNwcAppbmRleCA2ZjY2NGQ4NDAxZmY3MTcwNTI2
ODYwM2UwNDFlYmY3N2I1OGYzYzQ0Li5iZWFkYjRkZjIwZmU4ZTQ0MGEyNTM0YzIxOTRjYzg4N2E2
NDc2Njk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhVdGlsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhVdGlsLmNwcApAQCAtNzEsNyArNzEsNiBAQCBib29s
IGlzVmFsaWRDb250ZXh0Tm9kZShOb2RlKiBub2RlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgY2Fz
ZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JF
RkVSRU5DRV9OT0RFOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIE5v
ZGU6OlRFWFRfTk9ERToKICAgICAgICAgICAgIHJldHVybiAhKG5vZGUtPnBhcmVudE5vZGUoKSAm
JiBub2RlLT5wYXJlbnROb2RlKCktPmlzQXR0cmlidXRlTm9kZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUludGVy
bmFscy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTUludGVybmFscy5tbQppbmRleCBlNWM2ZjAyZmM4ZGM4MTEwODg4M2VhYjc1MDJjNTIz
ODg4ZmU3ZWUzLi5kNTdkZmNkM2ViYTBkMjc1NDY5NTFmZWY0ZTQ4MDRkYmEyMjdlODc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01JbnRlcm5hbHMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tCkBAIC03Niw3ICs3Niw2IEBAIHN0YXRp
YyBDbGFzcyBXS0RPTU5vZGVDbGFzcyhXZWJDb3JlOjpOb2RlKiBpbXBsKQogICAgICAgICByZXR1
cm4gW1dLRE9NVGV4dCBjbGFzc107CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpBVFRSSUJVVEVf
Tk9ERToKICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBj
YXNlIFdlYkNvcmU6Ok5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFdlYkNv
cmU6Ok5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBjYXNlIFdlYkNvcmU6
Ok5vZGU6OkNPTU1FTlRfTk9ERToKICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkRPQ1VNRU5UX1RZ
UEVfTk9ERToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQppbmRleCA4NzEwNWE4YjZjZjZkYTk5OTAxYzExZDdhYmEwNGFmZWQyZWY4
M2QxLi44NjNhODU0ZTk2ZTRmYjI1YzRmNDA4YTQ1NmYyMWNmYjg5OWU0YjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC0yMzI0LDExICsyMzI0LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0Fzc2lzdGFibGVFbGVt
ZW50KEVsZW1lbnQmIG5vZGUpCiAgICAgaWYgKGlzPEhUTUxTZWxlY3RFbGVtZW50Pihub2RlKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKGlzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG5v
ZGUpKQotICAgICAgICByZXR1cm4gIWRvd25jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG5vZGUp
LmlzUmVhZE9ubHlOb2RlKCk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChpczxIVE1M
SW5wdXRFbGVtZW50Pihub2RlKSkgewogICAgICAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dEVs
ZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlKTsKICAgICAgICAgLy8gRklY
TUU6IFRoaXMgbGF1bmRyeSBsaXN0IG9mIHR5cGVzIGlzIG5vdCBhIGdvb2Qgd2F5IHRvIGZhY3Rv
ciB0aGlzLiBOZWVkIGEgc3VpdGFibGUgZnVuY3Rpb24gb24gSFRNTElucHV0RWxlbWVudCBpdHNl
bGYuCi0gICAgICAgIHJldHVybiAhaW5wdXRFbGVtZW50LmlzUmVhZE9ubHlOb2RlKCkgJiYgKGlu
cHV0RWxlbWVudC5pc1RleHRGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc0RhdGVGaWVsZCgpIHx8
IGlucHV0RWxlbWVudC5pc0RhdGVUaW1lTG9jYWxGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc01v
bnRoRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNUaW1lRmllbGQoKSk7CisgICAgICAgIHJldHVy
biBpbnB1dEVsZW1lbnQuaXNUZXh0RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlRmllbGQo
KSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlVGltZUxvY2FsRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQu
aXNNb250aEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzVGltZUZpZWxkKCk7CiAgICAgfQogICAg
IHJldHVybiBub2RlLmlzQ29udGVudEVkaXRhYmxlKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTkzN2M4ZWZlOWQy
NDNlOTIxNDY2ZGYwZDkyYjI0NjhhODI2MzkyZi4uZjQxZDQwMjdhZTdiMjIxM2ZjM2UyZjVjNTRj
MWIyNjEyNzA1YjE2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA5LTE5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBsZWdh
Y3kgRW50aXR5UmVmZXJlbmNlIERPTSBOb2RlIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTM0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3Agc2V2ZXJhbCBvdXRkYXRlZCBET00gY29tcGxp
YW5jZSB0ZXN0cy4gVXBkYXRlIC8gUmViYXNlbGluZSBvdGhlcnMuCisKIDIwMTUtMDktMjEgIENo
YW5nU2VvayBPaCAgPGNoYW5nc2Vvay5vaEBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtd
IG1lZGlhIGNvbnRyb2xzIGRvZXMgbm90IHNob3cgdXAgd2hlbiBwbGF5aW5nIHZpZGVvIGZpbmlz
aGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYTM2MjkyN2Y4NjcxZjM1NmE5
ZjgxZjkyNGY4NjAwYmJkMmVjNjY5MC4uMmJjZmVjY2E1MjY5ZjgxNTA0ZTY0NzMyOGQ2NGM4NmZm
Y2ZhYzNiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAK
IDIwMTUtMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBE
cm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBX
M0MgRE9NIHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0OgorCisyMDE1
LTA5LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgR2V0IHJp
ZCBvZiBjdXN0b20gYmluZGluZ3MgZm9yIEhUTUxMaW5rRWxlbWVudC5zaXplcyBzZXR0ZXIKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTM4MgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTJhOGU0NjYxMjRiMThmZjRjNWI2NDdlYWJmYTc3MDE1NDRkODFkNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZl
bDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZgotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRtbCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjU5YWMzNjY5YTBjZDY3NmI0NmU0ZDlm
Y2I3NGZiNjE2YjE4M2ExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDgg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VO
IiAKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCIgPgotPCEtLSBU
aGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2
PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
aHRtbC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9ImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
Zi5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2Fk
PSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAg
ICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5
bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAy
ICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29k
ZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9h
Y3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2Vy
Ci0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8
c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgy
MSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2Jv
ZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIGIvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTdlMTI3
ODQxZWY5ODZkNjE2ODY5YTIyNDE0ODE2MWEzOTE3MDAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3Jl
L2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcworKysgL2Rl
di9udWxsCkBAIC0xLDE0MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQg
V29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2Yg
VGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGlj
cyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZl
ZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExp
Y2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1b
MV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0
d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRl
bnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QK
LSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJjcmVhdGVFbnRp
dHlSZWZlcmVuY2UodGFnTmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFMSURfQ0hBUkFD
VEVSX0VSUiBET01FeGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFtZSBjb250YWlu
cyBhbiBpbnZhbGlkIGNoYXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBhdXRob3IgTWFy
eSBCcmFkeQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0x
LTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2NvbnN0
YW50W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0z
OTJCNzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0x
LTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3JhaXNl
cy9leGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJlZm9y
ZSguLCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMu
b3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlvbiBkb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1Jl
ZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVu
dFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZl
cmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9
Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJpbnZhbGlk
Xk5hbWUiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBl
b2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3Nl
cnRUcnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9
Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlv
bmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5YWViZTQwNDQ3OGQ4YjAy
NWI1MWM2YWUzYzM2NjVkNWEzNzAzOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3Q6CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmMQotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNiNmQwOWNkYWJjMjBjMTcyNjVhYWYyNTk3NmUzMzI0OWY1ZDFi
OTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmMS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAKLSAgICAiaHR0
cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCIgPgotPCEtLSBUaGlzIGlzIGNvbW1l
bnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmaHRtbC5qcyI+PC9z
Y3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
ImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMiPjwvc2Ny
aXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBs
ZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFy
dGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBp
cyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7
Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+
MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8
L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9z
dHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAw
PC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4K
LSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4K
LSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBS
b2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMgYi9MYXlvdXRUZXN0cy9kb20v
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGQxZWM5NzUzMjliMTdk
NzIzY2UzYzBlOTc5ZTVkNWY5MGY0MGEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxNDAgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAg
ICAgICBjaGVja0ZlYXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUNyZWF0aW5nIGFuIGVudGl0eSByZWZlcmVu
Y2Ugd2l0aCBhbiBlbXB0eSBuYW1lIHNob3VsZCBjYXVzZSBhbiBJTlZBTElEX0NIQVJBQ1RFUl9F
UlIuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RS
LzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlk
KCdJRC0yNThBMDBBRicpL2NvbnN0YW50W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkK
LSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAw
MS9sZXZlbC1vbmUtY29yZSNJRC0zOTJCNzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RS
LzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlk
KCdJRC0zOTJCNzVBRScpL3JhaXNlcy9leGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rl
c2NyL3Bbc3Vic3RyaW5nLWJlZm9yZSguLCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD01MjUK
LSovCi1mdW5jdGlvbiBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYxKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWls
ZGVyLCAiZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGJhZEVudGl0eVJlZjsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlp
ZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQot
CXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVm
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZm9vIik7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9F
UlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3Mg
PSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoIiIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNj
ZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwot
CQl9Ci0JCWFzc2VydFRydWUoInRocm93X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7
Ci0JfQotCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZh
bHVlMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxMDgyY2Jl
YWU0ZjZkODhkZmQwNjRlZGI0YzJkOWFhYjk2MTVjM2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUv
aGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAg
QEAKLVRlc3Q6CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2Nv
cmUvaGNfYXR0cmdldHZhbHVlMgotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiYjdiYjhjODEwOWNmNTkzZGZlZjg1YmM5Y2QzNGFlNGNi
Mjg4ZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0Mv
L0RURCBIVE1MIDQuMDEvL0VOIiAKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3Ry
aWN0LmR0ZCIgPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVh
ZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtOCI+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJzZWxmaHRtbC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImhjX2F0dHJnZXR2YWx1ZTIuanMiPjwvc2Ny
aXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBs
ZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFy
dGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBp
cyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7
Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+
MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8
L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9z
dHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAw
PC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4K
LSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4K
LSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBS
b2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIuanMgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFs
dWUyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGNjMmFlMzVlMjdiNDk0NDhk
MDdkNjE2NGI0OWIwYTk4MzBjY2YxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0
IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0
dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0g
Ci1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwg
Ci1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzND
w4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
Mi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBH
ZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRl
bnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAg
IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29y
ZS9oY19hdHRyZ2V0dmFsdWUyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsK
LXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
YnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0
IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9u
cywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAg
T3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0
aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJp
bmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAg
c2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8g
ICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAg
ICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBj
aGVja0ZlYXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUNoZWNrcyB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRl
IHRoYXQgY29udGFpbnMgZW50aXR5IHJlZmVyZW5jZXMuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9s
ZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgx
MDAxL2xldmVsLW9uZS1jb3JlI0lELTIyMTY2MjQ3NAotKi8KLWZ1bmN0aW9uIGhjX2F0dHJnZXR2
YWx1ZTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJoY19hdHRyZ2V0dmFsdWUyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7
Ci0gICAgICB2YXIgYWNyb255bUxpc3Q7Ci0gICAgICB2YXIgdGVzdE5vZGU7Ci0gICAgICB2YXIg
YXR0cmlidXRlczsKLSAgICAgIHZhciB0aXRsZUF0dHI7Ci0gICAgICB2YXIgdmFsdWU7Ci0gICAg
ICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgcmV0dmFsOwotICAgICAgdmFyIGZpcnN0Q2hpbGQ7
Ci0gICAgICB2YXIgYWxwaGFSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgYWNyb255bUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImFjcm9ueW0iKTsKLSAgICAgIHRlc3ROb2RlID0gYWNyb255bUxpc3QuaXRlbSgzKTsKLSAg
ICAgIGF0dHJpYnV0ZXMgPSB0ZXN0Tm9kZS5hdHRyaWJ1dGVzOwotCi0gICAgICB0aXRsZUF0dHIg
PSBhdHRyaWJ1dGVzLmdldE5hbWVkSXRlbSgiY2xhc3MiKTsKLSAgICAgIAotCWlmKAotCQotCShi
dWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNj
ZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBhbHBoYVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAg
IHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0g
OSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3Mp
OwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQlhbHBoYVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlS
ZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBmaXJzdENoaWxkID0gdGl0bGVBdHRyLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIHJldHZhbCA9IHRpdGxlQXR0ci5pbnNlcnRCZWZvcmUoYWxwaGFSZWYsZmly
c3RDaGlsZCk7Ci0gICAgICB2YWx1ZSA9IHRpdGxlQXR0ci52YWx1ZTsKLQotICAgICAgYXNzZXJ0
RXF1YWxzKCJhdHRyVmFsdWUxIiwizrFZzrEiLHZhbHVlKTsKLSAgICAgICAKLQkJfQotCQotfQot
Ci0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgaGNfYXR0cmdldHZhbHVlMigpOwotfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVl
MDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9k
ZXZhbHVlMDMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzBj
N2MzZGIxZGZlNzhkODdhNTFjNGJhZDExNmQyOTgzOGYxYzBlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9j
b3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAs
MCBAQAotVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEv
Y29yZS9oY19ub2RldmFsdWUwMwotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5odG1sIGIvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjgwNDZmMTJmYjg4YjJlYjljZTY2Zjk2MGYyYjJiZDE5YTQ3N2E5
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBI
VE1MIDQuMDEvL0VOIiAKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0
ZCIgPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCI+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmaHRtbC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImhjX25vZGV2YWx1ZTAzLmpzIj48L3NjcmlwdD48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ry
b25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAg
Tm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBp
cyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1w
O3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
PgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgot
ICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgot
ICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5Q
TyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+
UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2
aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcyBi
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjE2NzFhYTRiMzhhNjVhMWNlZDRmOTU5YThiMTQ2
MzVmMzEyNTg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVl
MDMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBu
dWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBm
cmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8g
ICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMK
LS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBz
dGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMg
aW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0
aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMg
PSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBk
b2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxk
ZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFuIGVudGl0eSByZWZlcmVuY2UgaXMgY3Jl
YXRlZCwgc2V0Tm9kZVZhbHVlIGlzIGNhbGxlZCB3aXRoIGEgbm9uLW51bGwgYXJndW1lbnQsIGJ1
dCBnZXROb2RlVmFsdWUKLXNob3VsZCBzdGlsbCByZXR1cm4gbnVsbC4KLQotKiBAYXV0aG9yIEN1
cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVs
LTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtRjY4RDA4MAotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lE
LTExQzk4NDkwCi0qLwotZnVuY3Rpb24gaGNfbm9kZXZhbHVlMDMoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJoY19ub2RldmFsdWUwMyIp
ICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5ld05vZGU7Ci0gICAg
ICB2YXIgbmV3VmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQv
aHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAg
ICAgICAgIG5ld05vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
Tk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQlu
ZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgYXNzZXJ0
Tm90TnVsbCgiY3JlYXRlZEVudFJlZk5vdE51bGwiLG5ld05vZGUpOwotbmV3VmFsdWUgPSBuZXdO
b2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgiaW5pdGlhbGx5TnVsbCIsbmV3VmFs
dWUpOwotICAgIG5ld05vZGUubm9kZVZhbHVlID0gIlRoaXMgc2hvdWxkIGhhdmUgbm8gZWZmZWN0
IjsKLQotICAgICAgbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0
TnVsbCgibnVsbEFmdGVyQXR0ZW1wdGVkQ2hhbmdlIixuZXdWYWx1ZSk7Ci0gICAgCi0JCX0KLQkK
LX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhjX25vZGV2YWx1ZTAzKCk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1
YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9S
VEVEX0VSUi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzOGNl
YzBhODlkNGE1ZmFjZTZiM2NiMjQwMzY5ODdkNzk4YjZmODcuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBh
dGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlI6IFN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9zdmcv
bGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVh
dGVfTk9UX1NVUFBPUlRFRF9FUlIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZi
ZTAxOGM4YTY2MzA1NDk2NzgzZDFiNzVhYzBlNzRiZjIyMzdkZmYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0
IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRp
Y3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2
ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBM
aWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29m
dHdhcmUtMjAwMjEyMzEKLSovCi0KLQotLy8gZXhwb3NlIHRlc3QgZnVuY3Rpb24gbmFtZXMKLWZ1
bmN0aW9uIGV4cG9zZVRlc3RGdW5jdGlvbk5hbWVzKCkKLXsKLXJldHVybiBbJ1hQYXRoRXZhbHVh
dG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSJ107Ci19Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogICAg
ICAgCi0gICAgICBUZXN0IGlmIFhQYXRoRXZhbHVhdG9yLmV2YWx1YXRlIHByb3Blcmx5IHRocm93
cyBOT1RfU1VQUE9SVEVEX0VSUk9SCi0gICAgCi0qIEBhdXRob3IgUGhpbGlwcGUgTGUgSMOpZ2Fy
ZXQKLSogQGF1dGhvciBCb2IgQ2xhcnkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAz
L0NSLURPTS1MZXZlbC0zLVhQYXRoLTIwMDMwMzMxL3hwYXRoI1hQYXRoRXZhbHVhdG9yLWV2YWx1
YXRlCi0qLwotZnVuY3Rpb24gWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9F
UlIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUiIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHhwRXZhbHVhdG9yOwotICAgICAgdmFy
IHJlc3VsdDsKLSAgICAgIHZhciBudWxsTlNSZXNvbHZlciA9IG51bGw7Ci0KLSAgICAgIHZhciBu
dWxsUmVzdWx0ID0gbnVsbDsKLQotICAgICAgdmFyIGNvbnRleHROb2RlOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
ID0gbG9hZChkb2NSZWYsICJkb2MiLCAic3RhZmZOUyIpOwotICAgICAgeHBFdmFsdWF0b3IgPSBj
cmVhdGVYUGF0aEV2YWx1YXRvcihkb2MpOwotY29udGV4dE5vZGUgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJlbnRpdHluYW1lIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHhwRXZhbHVhdG9yLmV2YWx1YXRlKCIvL2Zv
bzpiYXIiLGNvbnRleHROb2RlLG51bGxOU1Jlc29sdmVyLDAsbnVsbFJlc3VsdCk7Ci0gICAgICAg
IH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1
bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9U
X1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3RzL2RvbS9z
dmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJS
LnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzdiOGJkYzFjNmQ0MDk1OTZlMmFl
NDg0MjBkN2JlN2NlOTE4MmU4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRv
cl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw0ICsw
LDAgQEAKLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpuaXN0
PSJodHRwOi8vd3d3Lm5pc3QuZ292Ij48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWln
aHQ9IjEwMCIvPg0KLTxzY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
IHNyYz0iWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMiLz4NCi08
c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9InN2Z3VuaXQu
anMiLz4NCi08L3N2Zz4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94
cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2
YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMTBhN2RjYzZhNjQwZjdmNmYwNmNjYmY0YmUwNzA2MDUyNTU5NDc4MC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRF
RF9FUlItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotWFBhdGhFeHBy
ZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSOiBTdWNjZXNzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVf
Tk9UX1NVUFBPUlRFRF9FUlIuanMgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFjZjYxNDY2MTA5M2NjZmNjNTE3OGI4NjRhNmEyYzBiMjlkZjg2
OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9T
VVBQT1JURURfRVJSLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLS8vIGV4cG9zZSB0
ZXN0IGZ1bmN0aW9uIG5hbWVzCi1mdW5jdGlvbiBleHBvc2VUZXN0RnVuY3Rpb25OYW1lcygpCi17
Ci1yZXR1cm4gWydYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlInXTsK
LX0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAg
ICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0
Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBp
cyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMg
bG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9u
b3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0
dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3Qg
dG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLS8qKgotKiAgICAgICAKLSAgICAgIFRlc3QgaWYgWFBhdGhFeHByZXNzaW9u
LmV2YWx1YXRlIHByb3Blcmx5IHRocm93cyBOT1RfU1VQUE9SVEVEX0VSUk9SCi0gICAgCi0qIEBh
dXRob3IgUGhpbGlwcGUgTGUgSMOpZ2FyZXQKLSogQGF1dGhvciBCb2IgQ2xhcnkKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDAzL0NSLURPTS1MZXZlbC0zLVhQYXRoLTIwMDMwMzMxL3hw
YXRoI1hQYXRoRXhwcmVzc2lvbi1ldmFsdWF0ZQotKi8KLWZ1bmN0aW9uIFhQYXRoRXhwcmVzc2lv
bl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIlhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9O
T1RfU1VQUE9SVEVEX0VSUiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIHhwRXZhbHVhdG9yOwotICAgICAgdmFyIHJlc3VsdDsKLSAgICAgIHZhciBudWxsTlNSZXNv
bHZlciA9IG51bGw7Ci0KLSAgICAgIHZhciBudWxsUmVzdWx0ID0gbnVsbDsKLQotICAgICAgdmFy
IGNvbnRleHROb2RlOwotICAgICAgdmFyIHhwYXRoRXhwcmVzc2lvbjsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9
IGxvYWQoZG9jUmVmLCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVhdG9yID0gY3Jl
YXRlWFBhdGhFdmFsdWF0b3IoZG9jKTsKLXhwYXRoRXhwcmVzc2lvbiA9IHhwRXZhbHVhdG9yLmNy
ZWF0ZUV4cHJlc3Npb24oIi8vZm9vIixudWxsTlNSZXNvbHZlcik7Ci0gICAgICBjb250ZXh0Tm9k
ZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudGl0eW5hbWUiKTsKLSAgICAgIAotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVzdWx0ID0geHBhdGhF
eHByZXNzaW9uLmV2YWx1YXRlKGNvbnRleHROb2RlLDAsbnVsbFJlc3VsdCk7Ci0gICAgICAgIH0K
LQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRl
ZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NV
UFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJl
c3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnIGIvTGF5b3V0VGVzdHMvZG9tL3N2
Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJS
LnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY4NmQ3NTBhMzlkYWFmNDZjYjA0
ZDlmMTNhMjcwY2YyNTVjY2NmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Np
b25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6bmlz
dD0iaHR0cDovL3d3dy5uaXN0LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVp
Z2h0PSIxMDAiLz4NCi08c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiBzcmM9IlhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyIvPg0K
LTxzY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHNyYz0ic3ZndW5p
dC5qcyIvPg0KLTwvc3ZnPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyZDZkMTc3MGExMjc4OTlhMjJhYWNmMzZmY2Y5ODYxMjYw
NzczYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICsw
LDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEv
Y29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYKLVN0YXR1
cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U3ZTEy
Nzg0MWVmOTg2ZDYxNjg2OWEyMjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmIjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLSAgICAgICBjaGVja0ZlYXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9h
ZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0
Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwot
Ly8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAg
IGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBX
aGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8g
ICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAg
IGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLSAgICBUaGUgImNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSh0YWdOYW1lKSIgbWV0aG9kIHJhaXNlcyBhbgotICAgSU5WQUxJRF9DSEFS
QUNURVJfRVJSIERPTUV4Y2VwdGlvbiBpZiB0aGUgc3BlY2lmaWVkCi0gICB0YWdOYW1lIGNvbnRh
aW5zIGFuIGludmFsaWQgY2hhcmFjdGVyLiAKLQotKiBAYXV0aG9yIE5JU1QKLSogQGF1dGhvciBN
YXJ5IEJyYWR5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVs
LTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTI1OEEwMEFGJykvY29u
c3RhbnRbQG5hbWU9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lE
LTM5MkI3NUFFCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVs
LTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTM5MkI3NUFFJykvcmFp
c2VzL2V4Y2VwdGlvbltAbmFtZT0nRE9NRXhjZXB0aW9uJ10vZGVzY3IvcFtzdWJzdHJpbmctYmVm
b3JlKC4sJzonKT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53
My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTI0OQotKi8KLWZ1bmN0aW9uIGRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZigpIHsKLSAgIHZhciBzdWNj
ZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2
YXIgZG9jOwotICAgICAgdmFyIGJhZEVudGl0eVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250
ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNl
OwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiZm9vIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
CX0KLQkKLQkJZWxzZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImludmFs
aWReTmFtZSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0J
CX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29y
ZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4MTA5ODMzMjEwNGYxMGE5YTA3M2FkMDFlNGU0
YTEzYjhhMWUzOGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICsw
LDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NU
WVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0g
ICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAg
PCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAg
PCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJM
SUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3Rh
dGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBhY3JvbnltIGRpciBDREFUQSAibHRyIj4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJz48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi
IGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0
bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNj
cmlwdCAgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMiLz48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZl
LiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24g
d2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGph
Y2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZk
ZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcg
SXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0
PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVs
IERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQu
IERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAw
NTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVy
IFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVm
MS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmM2JjOTk4NWI1
YzJiN2Y2MDFhMTBmODRlMzllNjUzNjgxMzQ2ODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmMQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ZDFlYzk3NTMyOWIxN2Q3MjNjZTNjMGU5NzllNWQ1Zjkw
ZjQwYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAot
Ci0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0s
IAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2Vh
cmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVu
aXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNv
cnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0g
ICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAg
QHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdl
dFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVy
ID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rp
bmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8K
LS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9u
b3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0
aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9u
IGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkg
b2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRl
c3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBi
dWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBjaGVja0ZlYXR1cmUo
IlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2Fk
ZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAg
ICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFs
aXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQg
b24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFy
dGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRl
ZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hh
bmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhl
Y3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLS8qKgotKiAKLUNyZWF0aW5nIGFuIGVudGl0eSByZWZlcmVuY2Ugd2l0aCBhbiBlbXB0eSBu
YW1lIHNob3VsZCBjYXVzZSBhbiBJTlZBTElEX0NIQVJBQ1RFUl9FUlIuCi0KLSogQGF1dGhvciBD
dXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZl
bC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2Nv
bnN0YW50W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJ
RC0zOTJCNzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZl
bC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3Jh
aXNlcy9leGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJl
Zm9yZSguLCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD01MjUKLSovCi1mdW5jdGlvbiBkb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSIpICE9IG51bGwpIHJldHVybjsKLSAg
ICB2YXIgZG9jOwotICAgICAgdmFyIGJhZEVudGl0eVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5j
b250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZh
bHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZm9vIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nl
c3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0J
CX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0K
LQotCX0KLQkKLQkJZWxzZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoIiIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JCX0KLQkKLX0K
LQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4M2JhYjk4NGFlN2NhMmFmZWJjYTAyNGVjM2Q4MGI4N2Q0
OGZlODQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBA
Ci08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBo
dG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInho
dG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5U
SVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5U
SVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwh
RU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJu
b3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24y
RmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBU
aGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4
dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9z
Y3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+
RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2Rl
PkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRo
IEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50
IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25n
PgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBE
YWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRh
OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2Vt
PgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGly
ZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9l
bT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3Bl
Y2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1
NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGYyMDljM2U0MzY0ZWRjNDU1
ZDU0ZDQxNTIwOTRlMmU2NmFhZDc2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdl
dHZhbHVlMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19hdHRy
Z2V0dmFsdWUyCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlhdHRyVmFsdWUxOiBhc3NlcnRFcXVh
bHMgZmFpbGVkLCBhY3R1YWwgWc6xLCBleHBlY3RlZCDOsVnOsS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0Y2MyYWUzNWUyN2I0OTQ0OGQwN2Q2MTY0YjQ5YjBhOTgz
MGNjZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0
IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRp
Y3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2
ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBM
aWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29m
dHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlk
ZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0
Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFs
dWUyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0g
bnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rpbmcg
ZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8v
ICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3Vz
Ci0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUg
c3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlz
IGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2Yg
dGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3Qg
ZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWls
ZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBjaGVja0ZlYXR1cmUoIlhN
TCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQg
Kz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAg
aWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXph
dGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24g
dGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVk
IGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBk
b2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdl
ZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0
ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LS8qKgotKiAKLUNoZWNrcyB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIHRoYXQgY29udGFpbnMg
ZW50aXR5IHJlZmVyZW5jZXMuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1j
b3JlI0lELTIyMTY2MjQ3NAotKi8KLWZ1bmN0aW9uIGhjX2F0dHJnZXR2YWx1ZTIoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJoY19hdHRy
Z2V0dmFsdWUyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgYWNy
b255bUxpc3Q7Ci0gICAgICB2YXIgdGVzdE5vZGU7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAg
ICAgIHZhciB0aXRsZUF0dHI7Ci0gICAgICB2YXIgdmFsdWU7Ci0gICAgICB2YXIgdGV4dE5vZGU7
Ci0gICAgICB2YXIgcmV0dmFsOwotICAgICAgdmFyIGZpcnN0Q2hpbGQ7Ci0gICAgICB2YXIgYWxw
aGFSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwot
ICAgICAgYWNyb255bUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImFjcm9ueW0iKTsK
LSAgICAgIHRlc3ROb2RlID0gYWNyb255bUxpc3QuaXRlbSgzKTsKLSAgICAgIGF0dHJpYnV0ZXMg
PSB0ZXN0Tm9kZS5hdHRyaWJ1dGVzOwotCi0gICAgICB0aXRsZUF0dHIgPSBhdHRyaWJ1dGVzLmdl
dE5hbWVkSXRlbSgiY2xhc3MiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRU
eXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0J
CXRyeSB7Ci0gICAgICAgICAgICBhbHBoYVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImFscGhhIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlw
ZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNz
ZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkK
LQkJZWxzZSB7Ci0JCQlhbHBoYVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhh
Iik7Ci0gICAgICBmaXJzdENoaWxkID0gdGl0bGVBdHRyLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIHJl
dHZhbCA9IHRpdGxlQXR0ci5pbnNlcnRCZWZvcmUoYWxwaGFSZWYsZmlyc3RDaGlsZCk7Ci0gICAg
ICB2YWx1ZSA9IHRpdGxlQXR0ci52YWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJhdHRyVmFs
dWUxIiwizrFZzrEiLHZhbHVlKTsKLSAgICAgICAKLQkJfQotCQotfQotCi0KLQotCi1mdW5jdGlv
biBydW5UZXN0KCkgewotICAgaGNfYXR0cmdldHZhbHVlMigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGEyZTQwMTM4YzU1MDg0OWQ3OWQxN2E4NGE5
ZTQyN2IyODVlZWZiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi54
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/
Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAg
IDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAg
IDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0g
ICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIGRpciBDREFUQSAibHRyIj4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCAgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpzIi8+PHNjcmlwdCB0eXBl
PSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7
IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2
ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9u
IHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9z
dHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVt
PkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+
RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4m
ZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3
IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2Fk
LiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRl
ciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhh
cyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwN2IxYTI2MmZhODgxNmU5
NzFlYzMwNzk2ZDc2NTk5NGVmOThlNTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2
YWx1ZTAzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25vZGV2
YWx1ZTAzCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJRXJyb3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yOiBET00gRXhjZXB0aW9uIDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTYxNjcxYWE0YjM4YTY1YTFjZWQ0Zjk1OWE4YjE0NjM1ZjMxMjU4NS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAs
MCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNv
cnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFu
IFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBL
ZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0
cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1o
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3Jn
L0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0K
LQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0g
ICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdl
dFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMyI7Ci0gICB9Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotQW4gZW50aXR5IHJlZmVyZW5jZSBpcyBjcmVhdGVkLCBzZXROb2RlVmFsdWUgaXMg
Y2FsbGVkIHdpdGggYSBub24tbnVsbCBhcmd1bWVudCwgYnV0IGdldE5vZGVWYWx1ZQotc2hvdWxk
IHN0aWxsIHJldHVybiBudWxsLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC1GNjhEMDgwCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9N
LUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMTFDOTg0OTAKLSovCi1mdW5jdGlv
biBoY19ub2RldmFsdWUwMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlh
bGl6YXRpb24oYnVpbGRlciwgImhjX25vZGV2YWx1ZTAzIikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgbmV3Tm9kZTsKLSAgICAgIHZhciBuZXdWYWx1ZTsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigK
LQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgbmV3Tm9kZSA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewot
ICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29k
ZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3Vj
Y2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsKLQkJCW5ld05vZGUgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhc3NlcnROb3ROdWxsKCJjcmVhdGVkRW50UmVm
Tm90TnVsbCIsbmV3Tm9kZSk7Ci1uZXdWYWx1ZSA9IG5ld05vZGUubm9kZVZhbHVlOwotCi0gICAg
ICBhc3NlcnROdWxsKCJpbml0aWFsbHlOdWxsIixuZXdWYWx1ZSk7Ci0gICAgbmV3Tm9kZS5ub2Rl
VmFsdWUgPSAiVGhpcyBzaG91bGQgaGF2ZSBubyBlZmZlY3QiOwotCi0gICAgICBuZXdWYWx1ZSA9
IG5ld05vZGUubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnROdWxsKCJudWxsQWZ0ZXJBdHRlbXB0
ZWRDaGFuZ2UiLG5ld1ZhbHVlKTsKLSAgICAKLQkJfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgaGNfbm9kZXZhbHVlMDMoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTI3NjUxZWM4OWZhODgwYmI1MjRjYTI0YmFmOWUxYzUyODFm
ZDJlNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZ
TEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBn
YW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkg
ZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIg
Q0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRt
bCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48
dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iaGNfbm9kZXZhbHVlMDMuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8
L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50
YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRl
eGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlS
ZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNl
Y3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNv
ZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAm
Z2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhh
cyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0
cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9j
b2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4
YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxz
dHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8
L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3Jv
bnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzNzkzZTA0Y2I2NGQ5YmU4YWY1
ZjA2YjdlNTM4NmNmMjQ2YWJjNjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRv
cHRub2RlMDYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1l
bnRhZG9wdG5vZGUwNgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDgwNGI5NDgxNTI4ZmUyMDgxZmIzYTRkYzNkNDlkMjVkMDU1YThm
MjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0
IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRp
Y3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2
ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBM
aWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29m
dHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlk
ZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0
Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0
bm9kZTA2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVy
ID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rp
bmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8K
LS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9u
b3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0
aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9u
IGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkg
b2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRl
c3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBi
dWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9
IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4
KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAg
VGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNo
IGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBl
dmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAg
dGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5
IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewot
ICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIGFkb3B0Tm9kZSBvbiBh
IG5ldyBkb2N1bWVudCB0byBhZG9wdCB0aGUgYSBuZXcgQXR0cmlidXRlIG5vZGUgaGF2aW5nIGEg
VGV4dCBhbmQgYW4gRW50aXR5UmVmZXJlbmNlIAotCWNoaWxkLiAgQ2hlY2sgaWYgdGhpcyBhdHRy
aWJ1dGUgaGFzIGJlZW4gYWRvcHRlZCBzdWNjZXNzZnVsbHkgYnkgdmVyaWZ5aW5nIHRoZSBub2Rl
TmFtZSwgbmFtZXNwYWNlVVJJLCBwcmVmaXgsIAotCXNwZWNpZmllZCBhbmQgb3duZXJFbGVtZW50
IGF0dHJpYnV0ZXMgb2YgdGhlIGFkb3B0ZWQgbm9kZS4gIEFsc28gdmVyaWZ5IHRoZSBvd25lckRv
Y3VtZW50IGF0dHJpYnV0ZQotCW9mIHRoZSBhZG9wdGVkIG5vZGUgYW5kIHRoZSBhZG9wdGVkIGNo
aWxkcmVuIG9mIHRoZSBhdHRyaWJ1dGUgbm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9y
IE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxl
dmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0RvY3VtZW50My1hZG9wdE5vZGUKLSovCi1mdW5jdGlv
biBkb2N1bWVudGFkb3B0bm9kZTA2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRhZG9wdG5vZGUwNiIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5ld0RvYzsKLSAgICAgIHZhciBkb21JbXBs
OwotICAgICAgdmFyIG5ld0F0dHI7Ci0gICAgICB2YXIgbmV3VGV4dDsKLSAgICAgIHZhciBuZXdF
bnRSZWY7Ci0gICAgICB2YXIgYWRvcHRlZEF0dHI7Ci0gICAgICB2YXIgYWRvcHRUZXh0OwotICAg
ICAgdmFyIGFkb3B0RW50UmVmOwotICAgICAgdmFyIG5vZGVMaXN0OwotICAgICAgdmFyIG5vZGVO
YW1lOwotICAgICAgdmFyIG5vZGVOYW1lc3BhY2VVUkk7Ci0gICAgICB2YXIgbm9kZVByZWZpeDsK
LSAgICAgIHZhciBhdHRyT3duZXJFbGVtOwotICAgICAgdmFyIGlzU3BlY2lmaWVkOwotICAgICAg
dmFyIGFkb3B0ZWRUZXh0Tm9kZVZhbHVlOwotICAgICAgdmFyIGFkb3B0ZWRFbnRSZWZOb2RlVmFs
dWU7Ci0gICAgICB2YXIgbnVsbERvY1R5cGUgPSBudWxsOwotCi0gICAgICB2YXIgYXBwZW5kZWRD
aGlsZDsKLSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIHJvb3ROUzsKLSAgICAgIHZhciBy
b290TmFtZTsKLSAgICAgIHZhciB4bWxOUyA9ICJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9u
YW1lc3BhY2UiOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICByb290TmFt
ZSA9IGRvY0VsZW0udGFnTmFtZTsKLQotICAgICAgcm9vdE5TID0gZG9jRWxlbS5uYW1lc3BhY2VV
Ukk7Ci0KLSAgICAgIGRvbUltcGwgPSBkb2MuaW1wbGVtZW50YXRpb247Ci1uZXdEb2MgPSBkb21J
bXBsLmNyZWF0ZURvY3VtZW50KHJvb3ROUyxyb290TmFtZSxudWxsRG9jVHlwZSk7Ci0gICAgICBu
ZXdBdHRyID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKHhtbE5TLCJ4bWw6bGFuZyIpOwotICAgICAg
bmV3VGV4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBOb2RlIik7Ci0gICAgICBuZXdFbnRS
ZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IG5ld0F0dHIuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gbmV3QXR0ci5hcHBlbmRDaGlsZChuZXdFbnRSZWYpOwotICAgICAgYWRvcHRlZEF0dHIgPSBu
ZXdEb2MuYWRvcHROb2RlKG5ld0F0dHIpOwotICAgICAgCi0JaWYoCi0JCi0JKGFkb3B0ZWRBdHRy
ICE9IG51bGwpCi0KLQkpIHsKLQlub2RlTmFtZSA9IGFkb3B0ZWRBdHRyLm5vZGVOYW1lOwotCi0g
ICAgICBub2RlTmFtZXNwYWNlVVJJID0gYWRvcHRlZEF0dHIubmFtZXNwYWNlVVJJOwotCi0gICAg
ICBub2RlUHJlZml4ID0gYWRvcHRlZEF0dHIucHJlZml4OwotCi0gICAgICBhdHRyT3duZXJFbGVt
ID0gYWRvcHRlZEF0dHIub3duZXJFbGVtZW50OwotCi0gICAgICBpc1NwZWNpZmllZCA9IGFkb3B0
ZWRBdHRyLnNwZWNpZmllZDsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9k
ZTA2X25vZGVOYW1lIiwieG1sOmxhbmciLG5vZGVOYW1lKTsKLSAgICAgICBhc3NlcnRFcXVhbHMo
ImRvY3VtZW50YWRvcHRub2RlMDZfbmFtZXNwYWNlVVJJIix4bWxOUyxub2RlTmFtZXNwYWNlVVJJ
KTsKLSAgICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfcHJlZml4IiwieG1s
Iixub2RlUHJlZml4KTsKLSAgICAgICBhc3NlcnROdWxsKCJkb2N1bWVudGFkb3B0bm9kZTA2X293
bmVyRG9jIixhdHRyT3duZXJFbGVtKTsKLSAgICBhc3NlcnRUcnVlKCJkb2N1bWVudGFkb3B0bm9k
ZTA2X3NwZWNpZmllZCIsaXNTcGVjaWZpZWQpOwotbm9kZUxpc3QgPSBhZG9wdGVkQXR0ci5jaGls
ZE5vZGVzOwotCi0gICAgICBhZG9wdFRleHQgPSBub2RlTGlzdC5pdGVtKDApOwotICAgICAgYWRv
cHRFbnRSZWYgPSBub2RlTGlzdC5pdGVtKDEpOwotICAgICAgYWRvcHRlZFRleHROb2RlVmFsdWUg
PSBhZG9wdFRleHQubm9kZVZhbHVlOwotCi0gICAgICBhZG9wdGVkRW50UmVmTm9kZVZhbHVlID0g
YWRvcHRFbnRSZWYubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9w
dG5vZGUwNl9UZXh0Tm9kZVZhbHVlIiwiVGV4dCBOb2RlIixhZG9wdGVkVGV4dE5vZGVWYWx1ZSk7
Ci0gICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X0VudFJlZk5vZGVWYWx1
ZSIsImFscGhhIixhZG9wdGVkRW50UmVmTm9kZVZhbHVlKTsKLSAgICAgICAKLQl9Ci0JCi19Ci0K
LQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGFkb3B0bm9kZTA2KCk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRh
ZG9wdG5vZGUwNi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudGFkb3B0bm9kZTA2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTJk
ODkwZGFkYjVhODczNTlmNDlmZWQ0MTk5NDczNTg0ZDIxNzIwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZ
UEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAg
ICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8
IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8
IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJ
QyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0
aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAg
ICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
aHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAg
ICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRU
TElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
Ci0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5z
dGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1l
bnRhZG9wdG5vZGUwNi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9u
bG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhp
cyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50Mjtd
XT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2Rl
PgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0g
IDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNv
ZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlk
PSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9
Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9i
ZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0g
IDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIx
IE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
ZG9jdW1lbnRhZG9wdG5vZGUxNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDI4YWIxODg2MWZiZThhNTBmNTljODEyYWViZDA1MzM5ZWE1N2Nm
NWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNgotU3Rh
dHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9kb2N1bWVudGFkb3B0bm9kZTE2LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL2RvY3VtZW50YWRvcHRub2RlMTYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhmZDZlMmZkYzM0N2EzNDExMDU1YmRhMmVkZTlhMjIyOWJlOWVmZTQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzAg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2IjsKLSAgIH0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1DcmVhdGUgYSBkb2N1bWVudCBmcmFnbWVudCB3aXRoIGFuIGVudGl0
eSByZWZlcmVuY2UsIGFkb3B0IHRoZSBub2RlIGFuZCBjaGVjawotdGhhdCB0aGUgZW50aXR5IHJl
ZmVyZW5jZSB2YWx1ZSBjb21lcyBmcm9tIHRoZSBhZG9wdGluZyBkb2N1bWVudHMgRFRELgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjRG9jdW1lbnQz
LWFkb3B0Tm9kZQotKi8KLWZ1bmN0aW9uIGRvY3VtZW50YWRvcHRub2RlMTYoKSB7Ci0gICB2YXIg
c3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGFk
b3B0bm9kZTE2IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9j
RnJhZ21lbnQ7Ci0gICAgICB2YXIgY2hpbGRMaXN0OwotICAgICAgdmFyIHBhcmVudDsKLSAgICAg
IHZhciBjaGlsZDsKLSAgICAgIHZhciBjaGlsZHNBdHRyOwotICAgICAgdmFyIGVudFJlZjsKLSAg
ICAgIHZhciB0ZXh0Tm9kZTsKLSAgICAgIHZhciBhZG9wdGVkOwotICAgICAgdmFyIHBhcmVudElt
cDsKLSAgICAgIHZhciBjaGlsZEltcDsKLSAgICAgIHZhciBhdHRyaWJ1dGVzOwotICAgICAgdmFy
IGNoaWxkQXR0ckltcDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRD
aGlsZDsKLSAgICAgIHZhciBhdHRyTm9kZTsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAg
dmFyIGZpcnN0Q2hpbGRUeXBlOwotICAgICAgdmFyIGZpcnN0Q2hpbGROYW1lOwotICAgICAgdmFy
IGZpcnN0Q2hpbGRWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBkb2NGcmFnbWVudCA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCk7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlRWxlbWVudCgicGFyZW50Iik7Ci0gICAgICBj
aGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50KCJjaGlsZCIpOwotICAgICAgY2hpbGRzQXR0ciA9IGRv
Yy5jcmVhdGVBdHRyaWJ1dGUoInN0YXRlIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJnYW1tYSIpOwotICAgICAgdGV4dE5vZGUgPSBkb2MuY3JlYXRlVGV4dE5v
ZGUoIlRlc3QiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBjaGlsZHNBdHRyLmFwcGVuZENoaWxk
KGVudFJlZik7Ci0gICAgICBhdHRyTm9kZSA9IGNoaWxkLnNldEF0dHJpYnV0ZU5vZGUoY2hpbGRz
QXR0cik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gY2hpbGQuYXBwZW5kQ2hpbGQodGV4dE5vZGUp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChjaGlsZCk7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZ21lbnQuYXBwZW5kQ2hpbGQocGFyZW50KTsKLSAgICAg
IGFkb3B0ZWQgPSBkb2MuYWRvcHROb2RlKGRvY0ZyYWdtZW50KTsKLSAgICAgIAotCWlmKAotCQot
CShhZG9wdGVkICE9IG51bGwpCi0KLQkpIHsKLQlwYXJlbnRJbXAgPSBhZG9wdGVkLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIGNoaWxkSW1wID0gcGFyZW50SW1wLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGF0
dHJpYnV0ZXMgPSBjaGlsZEltcC5hdHRyaWJ1dGVzOwotCi0gICAgICBjaGlsZEF0dHJJbXAgPSBh
dHRyaWJ1dGVzLmdldE5hbWVkSXRlbSgic3RhdGUiKTsKLSAgICAgIGZpcnN0Q2hpbGQgPSBjaGls
ZEF0dHJJbXAuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZmlyc3RDaGlsZE5v
dE51bGwiLGZpcnN0Q2hpbGQpOwotZmlyc3RDaGlsZE5hbWUgPSBmaXJzdENoaWxkLm5vZGVOYW1l
OwotCi0gICAgICBmaXJzdENoaWxkVmFsdWUgPSBmaXJzdENoaWxkLm5vZGVWYWx1ZTsKLQotICAg
ICAgZmlyc3RDaGlsZFR5cGUgPSBmaXJzdENoaWxkLm5vZGVUeXBlOwotCi0gICAgICAKLQlpZigK
LQkoNSA9PSBmaXJzdENoaWxkVHlwZSkKLQkpIHsKLQlhc3NlcnRFcXVhbHMoImZpcnN0Q2hpbGRF
bnQzUmVmIiwiZ2FtbWEiLGZpcnN0Q2hpbGROYW1lKTsKLSAgICAgICAKLQl9Ci0JCi0JCWVsc2Ug
ewotCQkJYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTE2IiwiVGV4YXMiLGZpcnN0Q2hp
bGRWYWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICBkb2N1bWVudGFkb3B0bm9kZTE2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2Lnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmJiOWRlMWZiOTM4YjA3OTc1MzBm
MTEzMGM4NzE4NmU3NjM3ZDFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0
bm9kZTE2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElD
ICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0
ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0
NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5
NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFB
VFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENE
QVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAg
ICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50
NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0
YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENE
QVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0
bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhz
aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54
c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVU
Ri04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRhZG9wdG5vZGUxNi5qcyIv
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291
bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgot
ICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlv
biB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMg
aXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRh
YjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAm
Z2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0g
Sm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3Vw
PjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4K
LSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVj
dG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMg
OTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5n
b3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+
Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+
Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2
aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2Rl
MjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3Vt
ZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDM3MzQ0MWQ0MzAyMTQ5MmY5NDM3ZGZiNjYwZGMwZTRmYTM2MzgyZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcKLVN0YXR1cwlmYWlsdXJlCi1N
ZXNzYWdlCXRocm93X05PVF9TVVBQT1JURURfRVJSXzE6IGFzc2VydFRydWUgZmFpbGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVu
b2RlMjcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5h
bWVub2RlMjcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2NzNjYWNiYzY4OTZj
NjZjYTIzMzAyZjZhMjFhYjY5Y2UzZDg0YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3Vt
ZW50cmVuYW1lbm9kZTI3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTg5ICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjciOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQlJbnZva2UgdGhlIHJlbmFtZU5vZGUgbWV0aG9kIHRvIGF0dGVtcHQgdG8gcmVuYW1lIG5l
dyBUZXh0LCBDb21tZW50LCBDRGF0YVNlY3Rpb24sCi0JUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFu
ZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgb2YgYSBuZXcgRG9jdW1lbnQuCi0JQ2hlY2sgaWYgYSBO
T1RfU1VQUE9SVEVEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBO
ZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZl
bC0zLUNvcmUtMjAwNDA0MDcvY29yZSNEb2N1bWVudDMtcmVuYW1lTm9kZQotKi8KLWZ1bmN0aW9u
IGRvY3VtZW50cmVuYW1lbm9kZTI3KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRyZW5hbWVub2RlMjciKSAhPSBudWxsKSBy
ZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIgZG9tSW1w
bDsKLSAgICAgIHZhciB0ZXh0OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgY2RhdGE7
Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2YXIgZW50cmVmOwotICAgICAgdmFyIHJlbmFtZWRUeHQ7
Ci0gICAgICB2YXIgcmVuYW1lZENvbW1lbnQ7Ci0gICAgICB2YXIgcmVuYW1lZENkYXRhOwotICAg
ICAgdmFyIHJlbmFtZWRQaTsKLSAgICAgIHZhciByZW5hbWVkRW50UmVmOwotICAgICAgdmFyIG51
bGxEb2NUeXBlID0gbnVsbDsKLQotICAgICAgdmFyIGRvY0VsZW07Ci0gICAgICB2YXIgcm9vdE5T
OwotICAgICAgdmFyIHJvb3ROYW1lOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0g
ICAgICByb290TlMgPSBkb2NFbGVtLm5hbWVzcGFjZVVSSTsKLQotICAgICAgcm9vdE5hbWUgPSBk
b2NFbGVtLnRhZ05hbWU7Ci0KLSAgICAgIGRvbUltcGwgPSBkb2MuaW1wbGVtZW50YXRpb247Ci1u
ZXdEb2MgPSBkb21JbXBsLmNyZWF0ZURvY3VtZW50KHJvb3ROUyxyb290TmFtZSxudWxsRG9jVHlw
ZSk7Ci0gICAgICB0ZXh0ID0gbmV3RG9jLmNyZWF0ZVRleHROb2RlKCJ0ZXh0Iik7Ci0gICAgICBj
b21tZW50ID0gbmV3RG9jLmNyZWF0ZUNvbW1lbnQoImNvbW1lbnQiKTsKLSAgICAgIGNkYXRhID0g
bmV3RG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiY2RhdGEiKTsKLSAgICAgIHBpID0gbmV3RG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigicGl0IiwicGlkIik7Ci0gICAgICBlbnRyZWYgPSBu
ZXdEb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgCi0JewotCQlzdWNj
ZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW5hbWVkVHh0ID0gbmV3RG9jLnJl
bmFtZU5vZGUodGV4dCwiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJ0ZXh0Iik7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
Tk9UX1NVUFBPUlRFRF9FUlJfMSIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFs
c2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW5hbWVkQ29tbWVudCA9IG5ld0RvYy5yZW5hbWVO
b2RlKGNvbW1lbnQsImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwiY29tbWVudCIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9TVVBQT1JURURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZh
bHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZENkYXRhID0gbmV3RG9jLnJlbmFtZU5v
ZGUoY2RhdGEsImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwiY2RhdGEiKTsKLSAgICAgICAg
fQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3Vu
ZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1Rf
U1VQUE9SVEVEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbmFtZWRQaSA9IG5ld0RvYy5yZW5hbWVOb2RlKHBpLCJo
dHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsInBpIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgp
IHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4
LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJf
NCIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZW5hbWVkRW50UmVmID0gbmV3RG9jLnJlbmFtZU5vZGUoZW50cmVmLCJodHRwOi8v
d3d3LnczLm9yZy9ET00vVGVzdCIsImVudHJlZiIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSXzUi
LHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9j
dW1lbnRyZW5hbWVub2RlMjcoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy54aHRtbCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZGU3ODExYjQyZGUyYzQ2N2U1YTJhNjBlMTgyOTFkMmQxMDhm
ODNjOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RF
U1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFRE
IFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVO
VElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFF
TlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJ
T04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAg
ICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6
eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0
YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+
Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudHJlbmFtZW5vZGUyNy5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjAu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjAueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3OGU0
ZTY2NDY2ZmJkYzE0MDc2NzU1Mzg3YTlhMzVmMGYxZWE5NmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLnhodG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+
Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0
Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1
OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3
OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYj
OTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNU
RU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdy
dGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5t
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElF
RAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4K
LSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4K
LSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBp
cyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxT
Y2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhj
X3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0
bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjAuanMiLz48c2NyaXB0IHR5cGU9J3RleHQv
amF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2Ny
aXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1h
cmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3Vw
PjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5
bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVu
Y2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRB
U2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxj
b2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0g
IDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxj
b2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2
YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85
ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3
LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29u
bm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8
L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBT
cGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNy
b255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDkwMjQzNzM4ZjYwYTA4ODQ2NGRhZDg0ODI3ZWE2YzE0ZWIwMTNmNzEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2Ci1T
dGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbnRSZWZDaGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxs
IGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzZThiM2ZhZTg4NzlhMGEzNGRmMDFiNjQ1ZGMzNzYwYWJlMDI3MzFj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNp
bmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gY2hlY2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBu
b2RlIGNvbnRhaW5zIGFuZCBwcmVjZWRlcyBpdCdzIGZpcnN0Ci0JY2hpbGRFbGVtZW50LCBhbmQg
dGhhdCB0aGUgY2hpbGRFbGVtZW50IGlzIGNvbnRhaW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5
UmVmZXJlbmNlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQw
NDA3L2NvcmUjTm9kZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAg
ICAgIHZhciB2YXJFbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGls
ZDE7Ci0gICAgICB2YXIgZW50UmVmUG9zaXRpb247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9z
aXRpb247Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwot
ICAgICAgCi0JaWYoCi0JKGdldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlS
ZWZlcmVuY2VzIikgPT0gZmFsc2UpCi0JKSB7Ci0JdmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5
VGFnTmFtZSgidmFyIik7Ci0gICAgICB2YXJFbGVtID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAg
YXNzZXJ0Tm90TnVsbCgidmFyRWxlbU5vdE51bGwiLHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxl
bS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRS
ZWYpOwotCi0JfQotCQotCQllbHNlIHsKLQkJCWVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZl
cmVuY2UoImVudDQiKTsKLSAgICAgIAotCQl9Ci0JZW50UmVmQ2hpbGQxID0gZW50UmVmLmZpcnN0
Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMU5vdE51bGwiLGVudFJl
ZkNoaWxkMSk7Ci1lbnRSZWZQb3NpdGlvbiA9IGVudFJlZi5jb21wYXJlRG9jdW1lbnRQb3NpdGlv
bihlbnRSZWZDaGlsZDEpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb25Jc0NvbnRhaW5lZEZvbGxvd2luZzI2IiwyMCxlbnRSZWZQb3NpdGlvbik7Ci0gICAg
ICAgZW50UmVmQ2hpbGQxUG9zaXRpb24gPSBlbnRSZWZDaGlsZDEuY29tcGFyZURvY3VtZW50UG9z
aXRpb24oZW50UmVmKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uQ29udGFpbnNQUkVDRURJTkcyNiIsMTAsZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAg
ICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi54
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzczM2UwZDA2NThiYmZiZjRmYTUw
ODNlMGEyMzk3MzJhNDRjMWU5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1s
Ci0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1s
MS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZ
IGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZ
IGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5U
SVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3Rh
dGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmls
ZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1s
bnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0g
ICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFj
cm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNw
YW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAg
ICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIK
LSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yNi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVz
YS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUx
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFb
VGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50
MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9j
b2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2Vt
PgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBN
YW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1Mzwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+
Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAg
PGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsi
IGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRo
IFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVt
cDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4x
ODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwv
Ym9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDcyOWI0Y2Q4MDU4YTNj
NzVjYTgxMmI0MjUyNzViMzZmOGU0MjlmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcKLVN0YXR1cwlmYWlsdXJlCi1N
ZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAxZTE5Yjc2NzAyYjM0YTk4NWU4MjRmODFlYWNhYWYzZWU0YmUwZjYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMTMzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBX
aWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9s
b2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBN
YXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlz
IHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBb
MV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRw
Oi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIw
MDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVz
IHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICov
Ci1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBjb21wYXJlRG9jdW1l
bnRQb3NpdGlvbiB0byBjaGVjayBpZiB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUgY29udGFpbnMg
YW5kIHByZWNlZGVzIGl0J3MgbGFzdAotCWNoaWxkRWxlbWVudCwgYW5kIHRoYXQgdGhpcyBjaGls
ZEVsZW1lbnQgaXMgY29udGFpbmVkIGFuZCBmb2xsb3dzIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIEplbm55IEhzdQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2Rl
My1jb21wYXJlRG9jdW1lbnRQb3NpdGlvbgotKi8KLWZ1bmN0aW9uIG5vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvbjI3KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjciKSAhPSBudWxsKSBy
ZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB2YXJMaXN0OwotICAgICAgdmFyIHZhckVs
ZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsKLSAgICAgIHZh
ciBlbnRSZWZQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigK
LQkoZ2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiKSA9
PSBmYWxzZSkKLQkpIHsKLQl2YXJMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ2YXIi
KTsKLSAgICAgIHZhckVsZW0gPSB2YXJMaXN0Lml0ZW0oMik7Ci0gICAgICBhc3NlcnROb3ROdWxs
KCJ2YXJFbGVtTm90TnVsbCIsdmFyRWxlbSk7Ci1lbnRSZWYgPSB2YXJFbGVtLmZpcnN0Q2hpbGQ7
Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZk5vdE51bGwiLGVudFJlZik7Ci0KLQl9Ci0J
Ci0JCWVsc2UgewotCQkJZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIp
OwotICAgICAgCi0JCX0KLQllbnRSZWZDaGlsZDEgPSBlbnRSZWYubGFzdENoaWxkOwotCi0gICAg
ICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50
UmVmUG9zaXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQx
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uSXNDb250
YWluZWRGb2xsb3dpbmcyNyIsMjAsZW50UmVmUG9zaXRpb24pOwotICAgICAgIGVudFJlZkNoaWxk
MVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZik7
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbkNvbnRhaW5z
UFJFQ0VESU5HIiwxMCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNygp
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMWFiZTAxYmY5YmQ4OWQxYTFlYWY2ZWNiYzAxYjA5M2U2ZWJm
YjEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
Ny54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEu
MCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8v
VzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsK
LSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4K
LSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+
Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUw
OyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElT
VCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAj
SU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpl
bXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAg
ICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxz
cGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3Nw
YW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAj
SU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48
aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg
Y2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3
LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFb
VGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRh
YiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxs
YXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9n
ZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0g
IDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8
L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwg
RGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0
cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8
L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3M2QzMjQ5ZDg0YmIzYzI2MTY3NWUzZTRlOGNhZDM2
Mjk4YTNmODVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb24yOAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZW50UmVmQ2hp
bGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYyYjI4ZTgzYzMwNTQ0
ZGFhYTg0MWYxN2ZkMTVkN2I4ZGJjNTJlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBA
QAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRp
dW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJl
c2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlv
IFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmli
dXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0Nv
bnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQot
Ci0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAg
KiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRh
cmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIGNoZWNr
IHRoZSBkb2N1bWVudCBwb3NpdGlvbiBvZiB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUgZW50NCdz
Ci0JZmlyc3QgY2hpbGQgYW5kIGxhc3QgY2hpbGQuICBJbnZva2UgY29tcGFyZURvY3VtZW50UG9z
aXRvbiBvbiBmaXJzdCBjaGlsZCB3aXRoIGxhc3QgY2hpbGQgYXMgYSBwYXJhbWV0ZXIKLQlzaG91
bGQgcmV0dXJuIEZPTExPV0lORywgYW5kIHNob3VsZCByZXR1cm4gUFJFQ0VESU5HIHZpY2UgdmVy
c2EuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9k
ZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6
YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4IikgIT0gbnVsbCkg
cmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZhciB2YXJF
bGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0gICAgICB2
YXIgZW50UmVmQ2hpbGQyOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0aW9uOwotICAgICAg
dmFyIGVudFJlZkNoaWxkMlBvc2l0aW9uOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCShnZXRJbXBsZW1lbnRhdGlvbkF0dHJp
YnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIpID09IGZhbHNlKQotCSkgewotCXZhckxpc3Qg
PSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInZhciIpOwotICAgICAgdmFyRWxlbSA9IHZhckxp
c3QuaXRlbSgyKTsKLSAgICAgIGFzc2VydE5vdE51bGwoInZhckVsZW1Ob3ROdWxsIix2YXJFbGVt
KTsKLWVudFJlZiA9IHZhckVsZW0uZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgi
ZW50UmVmTm90TnVsbCIsZW50UmVmKTsKLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBk
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICAKLQkJfQotCWVudFJlZkNo
aWxkMSA9IGVudFJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZD
aGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50UmVmQ2hpbGQyID0gZW50UmVmLmxhc3RD
aGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQyTm90TnVsbCIsZW50UmVm
Q2hpbGQyKTsKLWVudFJlZkNoaWxkMVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uKGVudFJlZkNoaWxkMik7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvbkZvbGxvd2luZzI4Iiw0LGVudFJlZkNoaWxkMVBvc2l0aW9uKTsK
LSAgICAgICBlbnRSZWZDaGlsZDJQb3NpdGlvbiA9IGVudFJlZkNoaWxkMi5jb21wYXJlRG9jdW1l
bnRQb3NpdGlvbihlbnRSZWZDaGlsZDEpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb25QUkVDRURJTkcyOCIsMixlbnRSZWZDaGlsZDJQb3NpdGlvbik7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yOCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjUwODI5ZjEyYzI5NmI2MTk1
NmI4MWZjNjY2NTgyZTM2MzIyOWViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJv
ZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48
L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1
NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFU
QVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZl
bnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBh
IHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8
L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwv
ZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50
IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUz
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29t
Ij4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9u
Zz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29k
ZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgot
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmNhNzgxN2M4MTQ4
NWVlYjFmZDRiZTRmODViZDFlZTIxN2Y0OTZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOQotU3RhdHVzCWZhaWx1cmUK
LU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmQ5ZmQ0NWZhOTE1YzRmNTJhMGMwODc3YTE2Yjk1ZWE3YTJkODkxOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxMjggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxk
IFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5k
IE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRo
aXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNl
IFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0
dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUt
MjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZp
ZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAg
Ki8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53
My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yOSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUNyZWF0ZSB0d28gZW50aXR5
IHJlZmVyZW5jZSBub2Rlcy4gVXNpbmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gdG8gY2hlY2sg
aWYgdGhlIGNoaWxkIG9mIHRoZSBmaXJzdCBFbnRpdHkgCi0JUmVmIG5vZGUgcHJlY2VkZXMgdGhl
IGNoaWxkIG9mIHRoZSBzZWNvbmQgRW50aXR5IFJlZiBub2RlLCBhbmQgdGhhdCB0aGUgY2hpbGQg
b2YgdGhlIHNlY29uZCBFbnRpdHkgUmVmIG5vZGUKLQlmb2xsb3dzIHRoZSBjaGlsZCBvZiB0aGUg
Zmlyc3QgRW50aXR5IFJlZiBub2RlLiAgCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5u
eSBIc3UKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1D
b3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5j
dGlvbiBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOSgpIHsKLSAgIHZhciBzdWNjZXNzOwot
ICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI5IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9j
RWxlbTsKLSAgICAgIHZhciBlbnRSZWYxOwotICAgICAgdmFyIGVudFJlZjI7Ci0gICAgICB2YXIg
ZW50UmVmQ2hpbGQxOwotICAgICAgdmFyIGVudFJlZkNoaWxkMjsKLSAgICAgIHZhciBlbnRSZWZD
aGlsZDFQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDJQb3NpdGlvbjsKLSAgICAgIHZh
ciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIGVudFJlZjEgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0
Iik7Ci0gICAgICBlbnRSZWYyID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwot
ICAgICAgZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBkb2NFbGVtLmFwcGVuZENoaWxkKGVudFJlZjEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGRvY0VsZW0uYXBwZW5kQ2hpbGQoZW50UmVmMik7Ci0gICAgICBlbnRSZWZDaGlsZDEgPSBlbnRS
ZWYxLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMU5vdE51
bGwiLGVudFJlZkNoaWxkMSk7Ci1lbnRSZWZDaGlsZDIgPSBlbnRSZWYyLmxhc3RDaGlsZDsKLQot
ICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQyTm90TnVsbCIsZW50UmVmQ2hpbGQyKTsK
LWVudFJlZkNoaWxkMVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKGVudFJlZkNoaWxkMik7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvbkZvbGxvd2luZzI5Iiw0LGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAgICBl
bnRSZWZDaGlsZDJQb3NpdGlvbiA9IGVudFJlZkNoaWxkMi5jb21wYXJlRG9jdW1lbnRQb3NpdGlv
bihlbnRSZWZDaGlsZDEpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb25QUkVDRURJTkcyOSIsMixlbnRSZWZDaGlsZDJQb3NpdGlvbik7Ci0gICAgICAgCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTNkMmE5YjcyMTFkNGRmNjM1YzQ2NWJiNTk2
ZDA1YmE5MTJiYjBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yOS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI5LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2Fk
PSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+
Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4K
LSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlz
IGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgot
PCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0g
IDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZi
ZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVt
PkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5Q
ZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85
ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4g
RGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0
cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQg
TXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1
cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9y
ZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5Pjwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0ZmVhdHVyZTA0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0ZmVhdHVyZTA0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjdhOTVhMWY2MmNlMTQ3NDhmMzQ2MDQyMDRjNzMyOGI3Njk0NGJlYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0Ci1TdGF0dXMJZXJyb3IKLU1lc3Nh
Z2UJTGluZSAxMDE6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjlmNWQyMGY3N2JmYjlkY2EwYTEwZTgwZTFkZjU1ZWJmYjIzYzRkYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDIw
MiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIg
Q29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVy
b3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRp
Y3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlz
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRo
ZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53
My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQot
Ki8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVz
dC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rp
b24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICAgIAotICAg
ICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlh
bGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVk
IG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3Rh
cnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2Fk
ZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNo
YW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4
ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0vKioKLSogCi1DaGVjayBpbXBsZW1lbnRhdGlvbiBvZiBOb2RlLmdldEZlYXR1cmUgb24g
RW50aXR5UmVmZXJlbmNlLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9k
ZTMtZ2V0RmVhdHVyZQotKi8KLWZ1bmN0aW9uIG5vZGVnZXRmZWF0dXJlMDQoKSB7Ci0gICB2YXIg
c3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlZ2V0ZmVh
dHVyZTA0IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgbm9kZTsK
LSAgICAgIHZhciBudWxsVmVyc2lvbiA9IG51bGw7Ci0KLSAgICAgIHZhciBmZWF0dXJlSW1wbDsK
LSAgICAgIHZhciBpc1N1cHBvcnRlZDsKLSAgICAgIHZhciBkb21JbXBsOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
ID0gbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICBkb21JbXBsID0gZG9jLmlt
cGxlbWVudGF0aW9uOwotbm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsK
LSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJDb3JlIixudWxsVmVyc2lvbik7
Ci0gICAgICBhc3NlcnRTYW1lKCJjb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJ
bXBsKTsKLWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIixudWxsVmVyc2lvbik7
Ci0gICAgICBhc3NlcnRTYW1lKCJjT3JFVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJ
bXBsKTsKLWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCIrY09yRSIsbnVsbFZlcnNpb24p
OwotICAgICAgYXNzZXJ0U2FtZSgiUGx1c0NvcmVVbnNwZWNpZmllZFZlcnNpb24iLG5vZGUsZmVh
dHVyZUltcGwpOwotZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIm9yZy53M2MuZG9tdHMu
Ym9ndXMuZmVhdHVyZSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0TnVsbCgidW5yZWNvZ25p
emVkRmVhdHVyZSIsZmVhdHVyZUltcGwpOwotICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0
dXJlKCJjT3JFIiwiMi4wIik7Ci0gICAgICBhc3NlcnRTYW1lKCJDb3JlMjAiLG5vZGUsZmVhdHVy
ZUltcGwpOwotZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoImNPckUiLCIzLjAiKTsKLSAg
ICAgIGFzc2VydFNhbWUoIkNvcmUzMCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1pc1N1cHBvcnRlZCA9
IG5vZGUuaXNTdXBwb3J0ZWQoIlhNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwg
PSBub2RlLmdldEZlYXR1cmUoIlhNTCIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNT
dXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJYTUxVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJl
SW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJTVkciLG51bGxW
ZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJTVkciLG51bGxW
ZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgi
U1ZHVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0g
bm9kZS5pc1N1cHBvcnRlZCgiSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwg
PSBub2RlLmdldEZlYXR1cmUoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlz
U3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiSFRNTFVuc3BlY2lmaWVkIixub2RlLGZlYXR1
cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkV2ZW50cyIs
bnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIkV2ZW50
cyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3Nl
cnRTYW1lKCJFdmVudHNVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNT
dXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJMUyIsbnVsbFZlcnNpb24pOwotICAgICAgZmVh
dHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIkxTIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlp
ZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIkxTVW5zcGVjaWZpZWQiLG5vZGUs
ZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiTFMt
QXN5bmMiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJl
KCJMUy1Bc3luYyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkp
IHsKLQlhc3NlcnRTYW1lKCJMU0FzeW5jVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwot
Ci0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiWFBhdGgiLG51bGxWZXJzaW9u
KTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJYUGF0aCIsbnVsbFZlcnNp
b24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJYUGF0
aFVuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5v
ZGUuaXNTdXBwb3J0ZWQoIitIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9
IG5vZGUuZ2V0RmVhdHVyZSgiSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNT
dXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnROb3ROdWxsKCJQbHVzSFRNTFVuc3BlY2lmaWVkIixmZWF0
dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCIrU1ZHIixu
dWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZHIixu
dWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydE5v
dE51bGwoIlBsdXNTVkdVbnNwZWNpZmllZCIsZmVhdHVyZUltcGwpOwotCi0JfQotCQotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWdldGZlYXR1cmUwNCgpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJl
MDQueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1
cmUwNC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODdkODVjNTNjMzgyM2Ji
ODExYjFlNzQ5MzM5YTU1NzNiMjU3MDQ2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdl
dGZlYXR1cmUwNC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sIFsKLTwhRU5USVRZIGVudDEgJ2Zvbyc+Ci08IUVOVElUWSBlbnQyICdmb288YnIvPic+
Ci08IUVMRU1FTlQgaHRtbCAoaGVhZCwgYm9keSk+Ci08IUFUVExJU1QgaHRtbCB4bWxucyBDREFU
QSAjSU1QTElFRD4KLTwhRUxFTUVOVCBoZWFkICh0aXRsZSxzY3JpcHQqKT4KLTwhRUxFTUVOVCBz
Y3JpcHQgKCNQQ0RBVEEpPgotPCFBVFRMSVNUIHNjcmlwdCAKLSAgICAgc3JjIENEQVRBICNJTVBM
SUVECi0gICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKLSAgICAgY2hhcnNldCBDREFUQSAjSU1QTElF
RD4KLTwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Ci08IUVMRU1FTlQgYm9keSAocCk+Ci08IUFU
VExJU1QgYm9keSBvbmxvYWQgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgcCAoI1BDREFUQXxi
cikqPgotPCFFTEVNRU5UIGJyIEVNUFRZPgotXT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJz4KLTxoZWFkPgotPHRpdGxlPnJlcGxhY2VXaG9sZVRleHQgc2FtcGxl
PC90aXRsZT4KLTxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J3NlbGZ4aHRtbC5q
cyc+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSdVVEYtOCcgdHlwZT0ndGV4dC9qYXZhc2NyaXB0
JyBzcmM9J25vZGVnZXRmZWF0dXJlMDQuanMnPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9q
YXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3Jp
cHQ+PC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci08cD5iYXI8L3A+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWM1YzI5Y2RkOTk3YmFlOTFiYzBjNWFiNzk0MDVi
ODAxMjY4MzNjYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTUKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlMaW5lIDEyMTogVHlwZUVycm9yCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxNDY3YTNiYzQxNjIwZDM5
MGVjN2Q0ZDVkOTIyOGI4ODQwYzkwYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMxICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9
IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5p
bmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlv
biBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlz
IHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29t
cGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQg
d2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBh
Z2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAv
LwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhj
ZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigp
OwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRy
dWUpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZl
cmVuY2VzIiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgcmV0dXJucyB0aGUgdGV4
dCBjb250ZW50IG9mIHRoaXMgbm9kZSBhbmQgaXRzIGRlc2NlbmRhbnRzLgotCQotCUludm9rZSB0
aGUgbWV0aG9kIGdldFRleHRDb250ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSB3aXRoIG5ldyBU
ZXh0LCBFbnRpdHlSZWZlcmVuY2VzICAKLQlDREFUQVNlY3Rpb24sIFBJIGFuZCBDb21tZW50IG5v
ZGVzIGFuZCBjaGVjayBpZiB0aGUgdmFsdWUgcmV0dXJuZWQgaXMgYSBzaW5nbGUgCi0JY29uY2F0
ZW5hdGVkIFN0cmluZyB3aXRoIGl0cyBjb250ZW50LiAgCi0KLSogQGF1dGhvciBJQk0KLSogQGF1
dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0
aW9uIG5vZGVnZXR0ZXh0Y29udGVudDE1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWdldHRleHRjb250ZW50MTUiKSAhPSBudWxs
KSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHR4dDsK
LSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsK
LSAgICAgIHZhciBwaTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRl
ZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy9ET00v
VGVzdCIsImRvbTM6ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0
ICIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwotICAg
ICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgcGkg
PSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAg
ICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRl
ZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVs
ZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBl
bmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQo
cGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAg
ICAgdGV4dENvbnRlbnQgPSBlbGVtLnRleHRDb250ZW50OwotCi0gICAgICBkb2Mubm9ybWFsaXpl
RG9jdW1lbnQoKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50MTUiLCJU
ZXh0IM6yQ0RhdGEiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE1KCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUueGh0
bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTUueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiZDM2Y2JhM2MzZGEwOTBj
YmFkNzc0N2QwZTg5MWM1ZjI0YjY5NDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwg
dmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAg
UFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3Ry
aWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRh
ICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0
YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24x
RmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgot
ICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRt
c3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAg
ICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAg
ICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jvbnlt
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJ
VFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1l
bnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHht
bG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHht
bG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19z
dGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJz
ZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRjb250ZW50
MTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNiNDE0NGQwNWZmMDhkNzJlOGU5ODRhYTExMzE1NDg2NGI4MTFhNGIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2Ci1TdGF0dXMJZXJy
b3IKLU1lc3NhZ2UJTGluZSAxMjM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LmpzIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDFmN2M4NDE5ZThkMTE1NjQyMDg4NDk1ODg2OGZhYWQ2
MTU1ZDlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAx
LTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZv
cm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBS
ZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3
YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdo
dC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRo
YXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9m
IHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBs
ZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBzZXRJ
bXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUpOwot
Ci0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
ICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1
aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRp
b24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVz
dHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMg
Y29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxv
d3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlU
aGUgbWV0aG9kIGdldFRleHRDb250ZW50IHJldHVybnMgdGhlIHRleHQgY29udGVudCBvZiB0aGlz
IG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJbnZva2UgdGhlIG1ldGhvZCBnZXRUZXh0
Q29udGVudCBvbiBhIG5ldyBEb2N1bWVudEZyYWdtZW50IG5vZGUgd2l0aCBuZXcgVGV4dCwgRW50
aXR5UmVmZXJlbmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29tbWVudCBub2RlcyBhbmQg
Y2hlY2sgaWYgdGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAotCWNvbmNhdGVuYXRlZCBT
dHJpbmcgd2l0aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVp
bCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwt
My1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rl
Z2V0dGV4dGNvbnRlbnQxNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlh
bGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE2IikgIT0gbnVsbCkgcmV0dXJu
OwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBlbGVtOwotICAg
ICAgdmFyIGVsZW1DaGlsZDsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgY29tbWVudDsKLSAg
ICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2
YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9
IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5T
KCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImRvbTM6ZWxlbSIpOwotICAgICAgdHh0ID0g
ZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0ICIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVD
b21tZW50KCJDb21tZW50ICIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgiYmV0YSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9u
KCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24o
IkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwot
ICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0u
YXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5k
Q2hpbGQoZWxlbSk7Ci0gICAgICBkb2Mubm9ybWFsaXplRG9jdW1lbnQoKTsKLSAgICAgIHRleHRD
b250ZW50ID0gZG9jRnJhZy50ZXh0Q29udGVudDsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2Rl
Z2V0dGV4dGNvbnRlbnQxNiIsIlRleHQgzrJDRGF0YSIsdGV4dENvbnRlbnQpOwotICAgICAgIAot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWdldHRleHRjb250ZW50MTYo
KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0dGV4dGNvbnRlbnQxNi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZGZlZmMxNWViNGVmMDFmYjNmZWQxY2JkODU4NjRlNDU1OTFkMWNmOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0
Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFk
Pjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFy
dGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFz
IDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2Eu
Y29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFb
Q0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIg
MiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdp
dGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0
YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5
ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3Rh
LmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9u
Zz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZh
bHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3
IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxz
dHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8
L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwv
cD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzZiZWIzMjdkODBkZWYyYzk3OWViNDkxMWZi
Mzc3NzEwMzMzMjJjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTcKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCW5vZGVnZXR0ZXh0Y29udGVudDE3OiBh
c3NlcnRFcXVhbHMgZmFpbGVkLCBhY3R1YWwgLCBleHBlY3RlZCDOsi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDI0YmE2MDFhOTFmZTUxNThhOGIxMzI3
YzgzMzIzOGNmYjlhNTg2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0
IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0
dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0g
Ci1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwg
Ci1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzND
w4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
Mi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBH
ZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRl
bnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAg
IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29y
ZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAw
MDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUg
dGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2Vw
dGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRl
ZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBh
bmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVu
dGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsK
LSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAg
IC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24K
LSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAg
ICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1Jl
ZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9
Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRl
ciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBv
ZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4K
LS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21w
bGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0
aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9r
ZSB0aGUgbWV0aG9kIGdldFRleHRDb250ZW50IG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2Rl
IGFuZCBjaGVjayBpZiB0aGUgCi0JdmFsdWUgcmV0dXJuZWQgaXMgdGhlIEVudGl0eVJlZmVyZW5j
ZSdzIGNvbnRlbnQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVnZXR0ZXh0Y29udGVu
dDE3KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWls
ZGVyLCAibm9kZWdldHRleHRjb250ZW50MTciKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRv
YzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0ZXh0Q29u
dGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50
OwotCi0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgdGV4
dENvbnRlbnQgPSBlbnRSZWYudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZWdldHRleHRjb250ZW50MTciLCLOsiIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWdldHRleHRjb250ZW50MTcoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNv
bnRlbnQxNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0
dGV4dGNvbnRlbnQxNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc5YzIy
YzRkMWU1ODRkYTBkYWY5ZTgzNmRjNDVjMWE2MzQzOTRlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWdldHRleHRjb250ZW50MTcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlZ2V0
dGV4dGNvbnRlbnQxNy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9u
bG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhp
cyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50Mjtd
XT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2Rl
PgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0g
IDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNv
ZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlk
PSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9
Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9i
ZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0g
IDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIx
IE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzOTdmYTgzMTBkMzdkZWUwMTBiZTVjNDkxNzkwNjY1MTdlOGIzMWUz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExCi1TdGF0dXMJ
U3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVpbnNlcnRiZWZvcmUxMS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlaW5zZXJ0YmVmb3JlMTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4YThi
OWVjMmMyMDQwZGIxODJkMTFiNmMxZGM4OWRmZDgyNDU0NDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVpbnNlcnRiZWZvcmUxMS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0NSArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMSI7Ci0gICB9Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotCi0KLQotCVVzaW5nIGluc2VydEJlZm9yZSBvbiBhIERvY3VtZW50RnJhZ21lbnQg
bm9kZSBhdHRlbXB0IHRvIGluc2VydCBhIGNoaWxkIG5vZGVzIGJlZm9yZQotCW90aGVyIHBlcm1p
c3NpYmxlIG5vZGVzIGFuZCB2ZXJpZnkgdGhlIGNvbnRlbnRzL25hbWUgb2YgZWFjaCBpbnNlcnRl
ZCBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2Nv
cmUjSUQtOTUyMjgwNzI3Ci0qLwotZnVuY3Rpb24gbm9kZWluc2VydGJlZm9yZTExKCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWlu
c2VydGJlZm9yZTExIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZG9jRnJhZzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIGNvbW1l
bnQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIGVSZWY7Ci0g
ICAgICB2YXIgaW5zZXJ0ZWQ7Ci0gICAgICB2YXIgaW5zZXJ0ZWRWYWw7Ci0gICAgICB2YXIgYXBw
ZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAg
IGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiwiYm9keSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQ
SVRhcmdldCIsIlBJRGF0YSIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJD
b21tZW50Iik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAg
IGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEEiKTsKLSAgICAgIGVSZWYgPSBk
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJh
Zy5hcHBlbmRDaGlsZChwaSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRD
aGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxk
KHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChjZGF0YSk7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAg
IGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUoY29tbWVudCxwaSk7Ci0gICAgICBpbnNl
cnRlZFZhbCA9IGluc2VydGVkLmRhdGE7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWluc2Vy
dGJlZm9yZTExX0NvbW1lbnQiLCJDb21tZW50IixpbnNlcnRlZFZhbCk7Ci0gICAgICAgaW5zZXJ0
ZWQgPSBkb2NGcmFnLmluc2VydEJlZm9yZSh0eHQsY29tbWVudCk7Ci0gICAgICBpbnNlcnRlZFZh
bCA9IGluc2VydGVkLmRhdGE7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWluc2VydGJlZm9y
ZTExX1RleHQiLCJUZXh0IixpbnNlcnRlZFZhbCk7Ci0gICAgICAgaW5zZXJ0ZWQgPSBkb2NGcmFn
Lmluc2VydEJlZm9yZShjZGF0YSx0eHQpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5k
YXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9DREFUQSIsIkNE
QVRBIixpbnNlcnRlZFZhbCk7Ci0gICAgICAgaW5zZXJ0ZWQgPSBkb2NGcmFnLmluc2VydEJlZm9y
ZShlUmVmLGNkYXRhKTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5zZXJ0ZWQubm9kZU5hbWU7Ci0K
LSAgICAgIGFzc2VydEVxdWFscygibm9kZWluc2VydGJlZm9yZTExX0VudDEiLCJhbHBoYSIsaW5z
ZXJ0ZWRWYWwpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAg
bm9kZWluc2VydGJlZm9yZTExKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMWE0YWE2ODM3Mzg1ZTAwMDMzM2Q2YmM1YzQ4MTE4Njc5NDZhZDVk
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLnhodG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNU
WUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRN
TCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkg
Z2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZ
IGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5v
dGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAg
ZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAg
ICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBD
REFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0
IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4K
LTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5v
cmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04
Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ibm9kZWluc2VydGJlZm9yZTExLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxNDJmM2U2MzU0NzUwN2VlNWRh
MmRmMzZlZWQxNWI0Y2MyZmQ1N2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRi
ZWZvcmUxNS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlaW5z
ZXJ0YmVmb3JlMTUKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LmpzIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2YzNzE2ZWExOWQ0YWY3MTdkYjY0YTFiMDYzNWU0NTk1OTA1ZTNlNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTc3ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3Js
ZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFu
ZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBU
aGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5z
ZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlm
aWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAg
ICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1
IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVs
bDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJh
bWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAg
SWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0v
LyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3Rh
dHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGlt
bWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhl
IHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0g
J3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9j
dW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVy
ID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0g
ICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBt
ZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNo
cm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBz
eW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBh
Z2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRo
ZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlm
ICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JQSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9F
UlIgaXMgcmFpc2VkIGlmIHRoZSBub2RlIGlzIHJlYWQtb25seS4KLQkKLQlVc2luZyBpbnNlcnRC
ZWZvcmUgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byBpbnNlcnQgRWxl
bWVudCwgVGV4dCwKLQlDb21tZW50LCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gYW5kIENEQVRBU2Vj
dGlvbiBub2RlcyBiZWZvcmUgYW4gZWxlbWVudCBjaGlsZAotCWFuZCB2ZXJpZnkgaWYgYSBOT19N
T0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBh
dXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1E
T00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtOTUyMjgwNzI3Ci0qLwotZnVuY3Rpb24g
bm9kZWluc2VydGJlZm9yZTE1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0
aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWluc2VydGJlZm9yZTE1IikgIT0gbnVsbCkgcmV0dXJu
OwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVsZW1DaGlsZDsK
LSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50OwotICAg
ICAgdmFyIHBpOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIGluc2VydGVkOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVudFJlZiA9
IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBlbGVtQ2hpbGQgPSBl
bnRSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9u
KCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKGNkYXRhLGVsZW1D
aGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzEiLHN1Y2Nlc3MpOwotCX0K
LXBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwot
ICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBpbnNl
cnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUocGksZWxlbUNoaWxkKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlJfMiIsc3VjY2Vzcyk7Ci0JfQotY29tbWVudCA9IGRvYy5jcmVhdGVD
b21tZW50KCJDb21tZW50Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjb21tZW50LGVs
ZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlw
ZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNz
ZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwot
CX0KLXR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgCi0JewotCQlzdWNj
ZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNl
cnRCZWZvcmUodHh0LGVsZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAg
IHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0g
Nyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJS
XzQiLHN1Y2Nlc3MpOwotCX0KLWVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIiwiYm9keSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFs
c2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUo
ZWxlbSxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNz
ID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9
Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl81IixzdWNj
ZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVpbnNl
cnRiZWZvcmUxNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZmMGQwMGI5Y2ExNjM3MWVmYzAyZjhlNDAxZWI0NWQ4NTdmNDFkYzEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS54aHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURB
VEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0
cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICIm
Izk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICIm
Izk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9u
ICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5v
dGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIg
U1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFU
QSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/
PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRo
aXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv
WE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2
PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRs
ZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2Vs
ZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Im5vZGVpbnNlcnRiZWZvcmUxNS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQg
TWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRl
eGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51
c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwot
PCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1i
ZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9u
IHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVN
UDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVw
YXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50
NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhh
cyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZp
c3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0
cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0g
IDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxp
c3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWMwZTE3NTRmN2E5MmNmZWU4OTQxOTI4YjRlZjZi
MTdiOWE3N2YxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIK
LVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRlMThhMjI3MWU4YWM5ZTg2OWJjMWY5YWY1ZDE3MTE2Mzc4OThiODUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIiOwotICAgfQotCi12YXIg
ZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0v
LyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8g
Y29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVu
dCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBp
cyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAg
ICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5j
dGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0
cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBt
YXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1
cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3Bh
Y2VBd2FyZSIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQlUaGUgbWV0aG9kIHJlbW92ZUNoaWxkIHJlbW92ZXMgdGhlIGNoaWxk
IG5vZGUgaW5kaWNhdGVkIGJ5IG9sZENoaWxkIGZyb20gdGhlIGxpc3QgCi0Jb2YgY2hpbGRyZW4s
IGFuZCByZXR1cm5zIGl0LiAKLQotCVVzaW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IERvY3VtZW50
RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZS4KLSAgICAgICAgQWxzbyBhdHRlbXB0IHRvIHJlbW92ZSB0aGUgZG9jdW1lbnQgZnJhZ21lbnQg
bm9kZSBmcm9tIHRoZSBFbnRpdHlSZWZlcmVuY2UuICBWZXJpZnkgdGhhdCBhIAotICAgICAgICBO
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgKEVudGl0eVJlZmVyZW5jZSBub2RlIGlzIHJlYWQt
b25seSkgb3IgYSBOT1RfRk9VTkRfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlv
biBub2RlcmVtb3ZlY2hpbGQxMigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5p
dGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZW1vdmVjaGlsZDEyIikgIT0gbnVsbCkgcmV0dXJu
OwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBlUmVmOwotICAg
ICAgdmFyIHJlbW92ZWRFUmVmOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIg
cmVtb3ZlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAg
ICAgZVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVSZWYpOwotICAgICAgcmVtb3ZlZENoaWxk
ID0gZG9jRnJhZy5yZW1vdmVDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92ZWRFUmVmID0gZG9jRnJh
Zy5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROdWxsKCJub2RlcmVtb3ZlY2hpbGQxMiIscmVt
b3ZlZEVSZWYpOwotICAgIAotICAgICAgdHJ5IHsKLSAgICAgIHJlbW92ZWRDaGlsZCA9IGVSZWYu
cmVtb3ZlQ2hpbGQoZG9jRnJhZyk7Ci0gICAgICAKLSAgICAgIH0gY2F0Y2ggKGV4KSB7Ci0JCSAg
aWYgKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJykgeyAgICAgIAotICAgICAgIHN3aXRj
aChleC5jb2RlKSB7Ci0gICAgICAgY2FzZSAvKiBOT1RfRk9VTkRfRVJSICovIDggOgotICAgICAg
IGJyZWFrOwotICAgICAgY2FzZSAvKiBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgKi8gNyA6
Ci0gICAgICAgYnJlYWs7Ci0gICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICB0aHJvdyBleDsK
LSAgICAgICAgICB9Ci0gICAgICAgfSBlbHNlIHsgCi0gICAgICAgdGhyb3cgZXg7Ci0gICAgICAg
IH0KLSAgICAgICAgIH0KLSAgICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICBub2RlcmVtb3ZlY2hpbGQxMigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3MzZlZDkyZjAzYmE1NGFlYzgyN2RiNzg0ZjYwNTZkOTIzNDk0
OTRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAg
IGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdl
dCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEyLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NmU1NmE2YzZhMDYzMjAwODY1MTUw
ZmRlODhjODNmOTRmNTJhNGFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxMwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdHh0Tm90TnVsbDogYXNzZXJ0Tm90TnVs
bCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVtb3ZlY2hpbGQxMy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVtb3ZlY2hpbGQxMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM4MGZm
YjRhNjUyZDkwMmRhMmQyZGZmNTE3Njg2N2ZlOTYyZjNkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAot
Ci0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0s
IAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2Vh
cmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVu
aXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNv
cnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0g
ICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAg
QHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdl
dFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9h
ZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAg
cnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1
cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRp
bmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0
byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJh
aXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNl
dFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0g
ICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJv
dyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWls
ZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBw
cmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAo
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9u
RXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUg
Y29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4g
c2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3Vt
ZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdo
aWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4K
LWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoq
Ci0qIAotCVVzaW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0
dGVtcHQgdG8gcmVtb3ZlIHRoZSBmaXJzdCBjaGlsZCAKLQlvZiB0aGlzIG5vZGUgYW5kIHZlcmlm
eSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhv
ciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RS
LzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0q
LwotZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxkMTMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBp
ZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxMyIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBlUmVm
OwotICAgICAgdmFyIHJlbW92ZWQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgZVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFs
cGhhIik7Ci0gICAgICB0eHQgPSBlUmVmLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51
bGwoInR4dE5vdE51bGwiLHR4dCk7Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIHJlbW92ZWQgPSBlUmVmLnJlbW92ZUNoaWxkKHR4dCk7Ci0gICAgICAgIH0K
LQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRl
ZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZW1vdmVjaGlsZDEzKCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxMzE3YTQ2M2UxOWU5NmQ5YzEyNTQ2
NzlmYjU3NWU3YjlmYzA1NWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDEzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlbW92ZWNoaWxkMTMuanMiLz48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2Vt
PgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50
PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMw
IE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0
aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFu
IGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+
PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1h
OwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5u
ZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVz
PC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAs
MDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
Om5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxz
dHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rvcjwv
Y29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4K
LSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8
Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8
dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBU
ZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyMzViZjRk
ZmRiMDBlMjVlMDgxOGIxNmQwZDBjYWE1ODk1Zjc5NjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDE0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVyZW1vdmVjaGlsZDE0Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlwaU5vdE51bGw6
IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAzZDVhMTkzM2VlOTc2NWEyOWM1NzViY2I1ZjBmNTlkZDFhZmVlYTEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTIyICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZl
cmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBpdHMgbGFzdCBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24gCi0JY2hpbGQgbm9kZSBhbmQgdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlvbiBub2RlcmVtb3ZlY2hpbGQxNCgp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVyZW1vdmVjaGlsZDE0IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAg
ICB2YXIgcmVtb3ZlZDsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIHBpOwotICAgICAgdmFy
IGVudE5hbWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgZVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAg
IHBpID0gZVJlZi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoInBpTm90TnVsbCIs
cGkpOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW1v
dmVkID0gZVJlZi5yZW1vdmVDaGlsZChwaSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
IG5vZGVyZW1vdmVjaGlsZDE0KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQueGh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwODRmN2Q3NDVlZmQyN2M0NmVkODU3NWY2NzdkODJmMDg3NjQzNmUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxF
IFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAx
LjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2Ft
bWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVw
c2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJ
T04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0
aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGly
IENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFU
QSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJ
ZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwh
LS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcv
MjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+
PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ibm9kZXJlbW92ZWNoaWxkMTQuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9s
ZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1
MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFs
dGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwMmUwYzJiYThiZjhlY2E2MWE4NTJmOTU2
ZjBjODFkNWJiOGM5MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbGVtTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBm
YWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxNS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxNS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTNiM2Y3Y2M4
ZTA4MTFiYjgwYjNlN2I0Y2E5OTA0OWRkMDk1YzdkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjIgKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotCVVzaW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVt
cHQgdG8gcmVtb3ZlIGFuIEVsZW1lbnQgY2hpbGQgCi0JYW5kIHZlcmlmeSBpZiBhIE5PX01PRElG
SUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24uIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00t
TGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5v
ZGVyZW1vdmVjaGlsZDE1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFs
aXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTUiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIg
ZW50TmFtZTsKLSAgICAgIHZhciByZW1vdmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCJlbnQ0Iik7Ci0gICAgICBlbGVtID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3Nl
cnROb3ROdWxsKCJlbGVtTm90TnVsbCIsZWxlbSk7Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbW92ZWQgPSBlUmVmLnJlbW92ZUNoaWxkKGVsZW0pOwot
ICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2Rl
KSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRo
cm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hpbGQxNSgpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTQ4NjI3YTVjMTFi
ZTI2N2UwZGNhMzRkMDU4Yjg0ZGI5MDUyYzUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxNS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAg
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0
cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0
YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVs
dGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9u
MUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4K
LSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpk
bXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAg
ICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255
bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5U
SVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVt
ZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4
bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4t
LT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4
bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNf
c3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFy
c2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDE1
LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFb
VGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRh
YiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxs
YXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9n
ZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0g
IDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8
L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwg
RGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0
cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8
L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMTgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDNkOWY4NDE4OGRmMWEwMWQ5NGUwM2JjNTI0NzY3NTFiMzI5MTIxNWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDE4LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQxOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEwYjY3MmJjNDhkOWE3YzU2
MDljNjZmNjhmYjljMGMxYTkyMjQ4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDE4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI0ICswLDAgQEAKLQotLyoKLUNvcHly
aWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0
aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4g
QWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2Fs
LzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAg
KiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJp
IGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0g
ICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNp
bmcgcmVwbGFjZUNoaWxkIG9uIGEgRG9jdW1lbnRGcmFnbWVudCBub2RlIGF0dGVtcHQgdG8gcmVw
bGFjZSBhIENEQVRBU2VjdGlvbiBub2RlIHdpdGggCi0JYSBFbnRpdHlSZWZlcmVuY2UgYW5kIHZp
Y2UgdmVyc2EgdmVyaWZ5IHRoZSBkYXRhIG9mIHRoZSByZXBsYWNlZCBub2Rlcy4KLQotKiBAYXV0
aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwot
Ki8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQxOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAg
IGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQxOCIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2
YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkQ0RhdGE7Ci0g
ICAgICB2YXIgcmVwbGFjZWRFcmVmOwotICAgICAgdmFyIGNkYXRhTmFtZTsKLSAgICAgIHZhciBl
cmVmTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJD
REFUQVNlY3Rpb24iKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImFscGhhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlbnRS
ZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY2RhdGEpOwot
ICAgICAgcmVwbGFjZWRDRGF0YSA9IGRvY0ZyYWcucmVwbGFjZUNoaWxkKGVudFJlZixjZGF0YSk7
Ci0gICAgICBjZGF0YU5hbWUgPSByZXBsYWNlZENEYXRhLm5vZGVWYWx1ZTsKLQotICAgICAgYXNz
ZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMThfMSIsIkNEQVRBU2VjdGlvbiIsY2RhdGFOYW1l
KTsKLSAgICAgICByZXBsYWNlZEVyZWYgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChjZGF0YSxlbnRS
ZWYpOwotICAgICAgZXJlZk5hbWUgPSByZXBsYWNlZEVyZWYubm9kZU5hbWU7Ci0KLSAgICAgIGFz
c2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE4XzIiLCJhbHBoYSIsZXJlZk5hbWUpOwotICAg
ICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGls
ZDE4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDE4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQxOC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMWQ3NjdiOWVhZjg0ZTJhY2VkMzFjYTU5Y2ZhMzkxNDM2ZDNjMmUzYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08
IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+
Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+
Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5
OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24x
IFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0g
Im5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwn
Ci0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENE
QVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFU
VExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAot
ICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAg
IDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBj
b21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hl
bWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0
YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwu
anMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
bm9kZXJlcGxhY2VjaGlsZDE4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJv
ZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48
L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1
NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFU
QVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZl
bnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBh
IHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8
L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwv
ZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50
IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUz
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29t
Ij4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9u
Zz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29k
ZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgot
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4YTJkMzYxZTkxMDZkNGQxZDgwZTUxMmJjZGVjNTgwYjNi
MGU3NDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkKLVN0
YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDE5LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQxOS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGI5YTE3ZGY5N2Y0M2QwMzUyZjNiZDhhZDFjNWM5MzQwOGYzNWIxZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE4ICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5IjsKLSAgIH0KLQotdmFy
IGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAg
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQot
Ly8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5v
IGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1l
bnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAg
aXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAg
ICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVu
Y3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAg
dHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwg
bWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmln
dXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9h
ZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAg
ICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlh
bGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVk
IG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3Rh
cnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2Fk
ZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNo
YW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4
ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgRG9jdW1lbnRGcmFnbWVudCBu
b2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhbiBFbGVtZW50IG5vZGUgd2l0aCAKLQlpdHMgRW50aXR5
UmVmZXJlbmNlIGNoaWxkIHZlcmlmeSB0aGUgbm9kZU5hbWUgb2YgdGhlIHJlcGxhY2VkIG5vZGUu
Ci0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03
ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMTkoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNo
aWxkMTkiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFn
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHJlcGxhY2Vk
OwotICAgICAgdmFyIG5vZGVOYW1lOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9
IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVs
ZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRvbTM6cCIpOwotICAgICAg
ZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlbGVtKTsKLSAgICAgIHJlcGxhY2VkID0gZG9jRnJhZy5y
ZXBsYWNlQ2hpbGQoZW50UmVmLGVsZW0pOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2Rl
TmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMTkiLCJkb20zOnAi
LG5vZGVOYW1lKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
IG5vZGVyZXBsYWNlY2hpbGQxOSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS54aHRtbCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDMyNWIyY2IzYjNiZTcwZWQ3OTRiZTFmMDIwMzBiMzZkMTkzNDcz
ZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAg
IGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdl
dCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQxOS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4
dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9z
Y3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+
TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxz
dXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBE
YWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBS
YXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVy
ZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RB
VEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAg
PGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4K
LSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAg
PGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAg
PHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0i
Xzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2
aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93
d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9j
b25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3Vw
Pjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAw
NTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVy
IFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9h
Y3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjItZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTFkYWYyZmVmMzVlZGIzNzM5
NWY0NDk3M2M4ODE1NTIyNmJiN2I3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMjItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIyCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi5qcyBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZkM2Y0MjNmNzM1ZjNmMWIyNWNhNWU0Y2IzNjA4MjU2MzAzYTc0NWEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDE0NSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29y
bGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVj
aG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBh
bmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4g
VGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vu
c2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2Fy
ZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRp
ZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAg
ICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQy
MiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51
bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZy
YW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAg
IElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwot
Ly8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0
YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBp
bW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRo
ZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9
ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRv
Y3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRl
ciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewot
ICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMg
bWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3lj
aHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkg
c3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBw
YWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0
aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBp
ZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIG5l
dyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYW4gRW50aXR5UmVmZXJl
bmNlIG5vZGUgd2l0aCAKLQlpdHMgRWxlbWVudCBwYXJlbnQsIHdpdGggaXRzZWxmIGFuZCB2aWNl
IHZlcnNhIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24u
Ci0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03
ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMjIoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNo
aWxkMjIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbnRSZWZN
YWluOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGFwcGVu
ZGVkQ2hpbGQ7Ci0gICAgICB2YXIgcmVwbGFjZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1l
bnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRvbTM6cCIpOwotICAgICAgZW50
UmVmTWFpbiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBlbnRS
ZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBhcHBlbmRlZENo
aWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNlZENoaWxkID0gZW50UmVmTWFpbi5y
ZXBsYWNlQ2hpbGQoZWxlbSxlbnRSZWYpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAg
ICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09
IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
Ul8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIHJlcGxhY2VkQ2hpbGQgPSBlbnRSZWZNYWluLnJlcGxhY2VDaGlsZChlbnRSZWYs
ZWxlbSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWRD
aGlsZCA9IGVudFJlZk1haW4ucmVwbGFjZUNoaWxkKGVudFJlZk1haW4sZW50UmVmKTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19O
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMyIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMjIoKTsKLX0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MjIueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDIyLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjMyNTRlMmNhYmEz
MmJiNDA1M2Q3NDY0OWNjOWZhODMwMWFlZDBmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMjIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0g
ICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1z
dHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJl
dGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRl
bHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZ
IGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlv
bjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+
Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6
ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAg
ICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAg
ICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9u
eW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVO
VElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxl
bWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4g
eG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEu
LS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAg
eG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhj
X3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hh
cnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxk
MjIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQyMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDIzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDE4Yjc3YjM4ZTNiYzFjMzdhYmFmNjZkY2FlYWMwZDk0YWViNDlmOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMwotU3RhdHVzCVN1Y2Nlc3MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMjMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDIzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzMxYWZjOWRjN2U1NDAz
YTg1Y2Y0NzU0ZDg2YmZjNGVkMmU2YTE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMjMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzggKzAsMCBAQAotCi0vKgotQ29w
eXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3Nh
Y2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNv
cnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkp
LiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0
aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhl
IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVn
YWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAg
ICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1
cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsK
LSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
Ci0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
ICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1
aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRp
b24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVz
dHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMg
Y29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxv
d3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlV
c2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0
byByZXBsYWNlIGFuIEVsZW1lbnQsIFRleHQsCi0JQ29tbWVudCwgUHJvY2Vzc2luZ0luc3RydWN0
aW9uIGFuZCBDREFUQVNlY3Rpb24gbm9kZXMgd2l0aCBlYWNoIG90aGVyIGFuZCBpbiBlYWNoIGNh
c2UKLQl2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1
ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIzKCkgewotICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGls
ZDIzIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmOwot
ICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAg
ICB2YXIgcGk7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCIsImRvbTM6cCIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgi
VGV4dCIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50Iik7Ci0g
ICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBU2VjdGlvbiIpOwotICAg
ICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJ0YXJnZXQiLCJkYXRhIik7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVs
ZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hp
bGQoY2RhdGEpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQoY2RhdGEsZWxlbSk7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVw
bGFjZUNoaWxkKHBpLGNkYXRhKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3Vj
Y2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsK
LQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMiIs
c3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAg
ICAgICByZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQoY29tbWVudCxwaSk7Ci0gICAgICAg
IH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1
bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2Vz
cyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFj
ZUNoaWxkKHR4dCxjb21tZW50KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3Vj
Y2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsK
LQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNCIs
c3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAg
ICAgICByZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQoZWxlbSx0eHQpOwotICAgICAgICB9
Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5k
ZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUl81IixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQyMygpOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy54
aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MjMueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1OGExZDI1MTYzZmQ1YTNm
YmFjN2QxMDE0OTNkNGE1NzFhZWIxN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQyMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQyMy5q
cyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBs
ZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFj
Y291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2Vt
PgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2Vj
dGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1Ro
aXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIg
JnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFz
LCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2Vy
Ci0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8
c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9l
bT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERp
cmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4
YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlz
dC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJv
bmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9z
dXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwg
SXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDMwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0OWY4M2U3NGI5MjY3MzMxYzE3MDNiZDI4ZDE2ZWZjMjFmNDZmYjA3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
MC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MzAuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3MzU4ZjkzNDcyNjNiODI3YThl
ODg4MTNlN2FlMzdjMGI3NjMyZGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzMC5qcworKysgL2Rldi9udWxsCkBAIC0xLDE2OCArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzMCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAw
MDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUg
dGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2Vw
dGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRl
ZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBh
bmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVu
dGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsK
LSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAg
IC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24K
LSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAg
ICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1Jl
ZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9
Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRl
ciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBv
ZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4K
LS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21w
bGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0
aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCi0KLQot
CVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhbiBFbGVtZW50IG5vZGUgYXR0ZW1wdCB0byByZXBsYWNl
IGEgbmV3IEVsZW1lbnQgY2hpbGQgbm9kZSB3aXRoIAotCW5ldyBjaGlsZCBub2RlcyBhbmQgdmlj
ZSB2ZXJzYSBhbmQgaW4gZWFjaCBjYXNlIHZlcmlmeSB0aGUgbmFtZSBvZiB0aGUgcmVwbGFjZWQg
bm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0
cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3Jl
I0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMCgpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBs
YWNlY2hpbGQzMCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHBh
cmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdFbGVtZW50OwotICAgICAg
dmFyIG5ld1RleHQ7Ci0gICAgICB2YXIgbmV3Q29tbWVudDsKLSAgICAgIHZhciBuZXdQSTsKLSAg
ICAgIHZhciBuZXdDZGF0YTsKLSAgICAgIHZhciBuZXdFUmVmOwotICAgICAgdmFyIHJlcGxhY2Vk
OwotICAgICAgdmFyIG5vZGVOYW1lOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50ID0g
ZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1s
Omh0bWwiKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1sOmhlYWQiKTsKLSAgICAgIG5ld0VsZW1lbnQgPSBk
b2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwieGh0bWw6
Ym9keSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChvbGRDaGls
ZCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG5ld0VsZW1lbnQp
OwotICAgICAgbmV3VGV4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdUZXh0KTsKLSAgICAgIG5ld0NvbW1l
bnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IHBhcmVudC5hcHBlbmRDaGlsZChuZXdDb21tZW50KTsKLSAgICAgIG5ld1BJID0gZG9jLmNyZWF0
ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdQSSk7Ci0gICAgICBuZXdDZGF0YSA9IGRvYy5j
cmVhdGVDREFUQVNlY3Rpb24oIkNkYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50
LmFwcGVuZENoaWxkKG5ld0NkYXRhKTsKLSAgICAgIG5ld0VSZWYgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRD
aGlsZChuZXdFUmVmKTsKLSAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdF
bGVtZW50LG9sZENoaWxkKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0K
LSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzEiLCJ4aHRtbDpoZWFkIixu
b2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxk
LG5ld0VsZW1lbnQpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAg
ICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfMiIsInhodG1sOmJvZHkiLG5vZGVO
YW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3VGV4dCxvbGRD
aGlsZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3Nl
cnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8zIiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwot
ICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdUZXh0KTsK
LSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZXJlcGxhY2VjaGlsZDMwXzQiLCIjdGV4dCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxh
Y2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDb21tZW50LG9sZENoaWxkKTsKLSAgICAgIG5v
ZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJl
cGxhY2VjaGlsZDMwXzUiLCJ4aHRtbDpoZWFkIixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQg
PSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5ld0NvbW1lbnQpOwotICAgICAgbm9kZU5h
bWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFj
ZWNoaWxkMzBfNiIsIiNjb21tZW50Iixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJl
bnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5ld1BJKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFj
ZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzci
LCJ0YXJnZXQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hp
bGQob2xkQ2hpbGQsbmV3Q2RhdGEpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFt
ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfOCIsIiNjZGF0YS1z
ZWN0aW9uIixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxk
KG9sZENoaWxkLG5ld0VSZWYpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsK
LQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfOSIsImRlbHRhIixub2Rl
TmFtZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rl
cmVwbGFjZWNoaWxkMzAoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjZGI1Y2JiMTMzZmFhZjJlYjRmMTA0M2QyMWZjNDM1MDhiN2RjN2UzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIg
Q0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRB
ICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElk
YXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEt
LSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48
dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzAuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9s
ZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1
MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFs
dGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMzZjkyOTMzNTgyYTcwNTQyNjE1ZDEy
NTBhNDkxMGE3NDkzZDBhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDMzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzMwotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlNzRiZTQ0ZDRiMGE3NzFjYjc5MjA0MzZjN2EzYzJkOGE2MjE2NGI2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMjAgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBkZWZhdWx0
IEF0dHIgbm9kZSB0byByZXBsYWNlIGl0cyBUZXh0IENoaWxkIHdpdGggYSAKLQluZXcgRW50aXR5
UmVmZXJlbmNlIE5vZGUgYW5kIHZlcmlmeSB0aGUgdmFsdWUgb2YgdGhlIHJlcGxhY2VkIGNoaWxk
LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQt
Nzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDMzKCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2Vj
aGlsZDMzIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgY2hpbGRM
aXN0OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENo
aWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFy
IG5vZGVWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBuZXdDaGlsZCA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7
Ci0gICAgICBjaGlsZExpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKTsKLSAgICAg
IGVsZW0gPSBjaGlsZExpc3QuaXRlbSgzKTsKLSAgICAgIHBhcmVudCA9IGVsZW0uZ2V0QXR0cmli
dXRlTm9kZSgiZGlyIik7Ci0gICAgICBvbGRDaGlsZCA9IHBhcmVudC5sYXN0Q2hpbGQ7Ci0KLSAg
ICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0g
ICAgICBub2RlVmFsdWUgPSByZXBsYWNlZC5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZXJlcGxhY2VjaGlsZDMzIiwicnRsIixub2RlVmFsdWUpOwotICAgICAgIAotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDMzKCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDMzLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzMy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDc5OTBjMTU4
MDY1NTVlZGVjZDE1ZjMyMTAxYThjZmEyNDYzYTY3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDMzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRt
bAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRt
bDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElU
WSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElU
WSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90
YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZp
bGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHht
bG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAot
ICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAg
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBz
cGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAg
ICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
Ci0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2Vj
aGlsZDMzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJs
b2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEg
Q0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFb
Q0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0
byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxz
dXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVN
UDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJz
b25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1
NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDov
L3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGlj
LiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQzNWVlNGQ1ODZjZjAwOTg2YzkwMWVlZDRmMTRjOTQ3M2JjNzNlYmMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQKLVN0YXR1cwlTdWNjZXNz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzNC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY0YTM1YTAxZWE0
ZTNlOGZiYTljMDkzMjFhMmY4MDQ4ODJlNWJlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDM0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJv
cihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21w
bGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRV
cFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQg
aGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2gg
YWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSog
Ci0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3
IEVudGl0eVJlZmVyZW5jZSBDaGlsZCB3aXRoIGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5
IHRoZSB2YWx1ZSBvZiB0aGUgbmV3IGNoaWxkLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3Ig
TmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2
ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJl
cGxhY2VjaGlsZDM0KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDM0IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAg
dmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENo
aWxkOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygi
aHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAg
IG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgbmV3Q2hp
bGQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIHJlcGxhY2VkID0gcGFyZW50
LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICBub2RlVmFsdWUgPSBwYXJl
bnQudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDM0IiwiVGV4
dCIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIG5vZGVyZXBsYWNlY2hpbGQzNCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC54aHRtbCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwNjliYjAzODBkMTVkY2UzNWFjYTg1MGE1ODM2MmI0ZDFi
NmMyYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNC5qcyIvPjxzY3JpcHQgdHlwZT0n
dGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9
PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJv
bmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0g
IDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZl
LiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRo
YSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJl
ZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4K
LSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29t
Ij4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4K
LSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4K
LSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBp
ZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcg
SXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6
Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55
IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8
c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4
PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTFjOTg4ZjY0ZmM5ODMy
MzU4NzI4YzEwMzc1YTcyOTZhMDc3NmUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1U
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDM1Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS5qcyBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDFiYWU4NjdhNWVmMmJiN2RjYTkxZWI3MjdmMmRjNTVjNjA4MTE5
YjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS5qcworKysgL2Rl
di9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQg
V29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2Yg
VGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGlj
cyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZl
ZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExp
Y2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1b
MV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0
d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRl
bnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QK
LSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzNSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAw
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkg
ewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRo
aXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBh
c3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZl
cnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRo
ZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBv
ZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAg
ICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBh
IG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcm5lY2UgQ2hpbGQgd2l0
aCBhIAotCW5ldyBBdHRyIE5vZGUgYW5kIHZlcmlmeSBpZiBhIEhJRVJBUkNIWV9SRVFVRVNUX0VS
UiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzUoKSB7
Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJu
b2RlcmVwbGFjZWNoaWxkMzUiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAg
IHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0g
ICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIg
cmVwbGFjZWQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgcGFyZW50ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9y
Zy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBh
cmVudC5hcHBlbmRDaGlsZChvbGRDaGlsZCk7Ci0gICAgICBuZXdDaGlsZCA9IGRvYy5jcmVhdGVB
dHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxh
bmciKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAg
ICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSAzKTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19ISUVSQVJDSFlfUkVRVUVTVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM1KCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1Lnho
dG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU2NzIxY2Q5NGYxNWUyNmNm
ZTVhY2Y4MzU0MjNmZmQ2ZDY5ODhhNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM1LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVy
c2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0
LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICIm
Izk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAi
JiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmls
ZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAg
PCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3Rj
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAg
ICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkg
ZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQg
ZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5z
IENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgot
PGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5z
OnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFm
Zi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM1Lmpz
Ii8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxl
dGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNj
b3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+
Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0
aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhp
cyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAm
dGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMs
ICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIK
LSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxz
dXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2Vt
PgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGly
ZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0
LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9u
Zz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1
cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MzYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDkxOTllMDE2MTE5YmNiOTA0MTI0OTNjNzJmMTBlYWYxODczYzQ3NjEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2
LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
Ni5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVhMjI1YmVlZjJmYTM4ZWVjOTVl
MDA4ZTEyYjY3OTU3NmMwYTRhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDM2LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDM2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAw
MDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxs
ZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0
ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0
aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVk
LiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFu
ZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50
ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewot
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAg
Ly8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgot
ICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAg
ICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0K
LSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVy
LCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9m
IAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgot
Ly8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBs
ZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRo
ZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcg
cmVwbGFjZUNoaWxkIG9uIGEgbmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IEVudGl0eVJl
ZmVybmVjZSBub2RlIHdpdGggYSAKLQluZXcgVGV4dCBOb2RlIGFuZCB2ZXJpZnkgaWYgYSBOT1Rf
Rk9VTkRfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVs
aW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29y
ZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hp
bGQzNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdD
aGlsZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50ID0g
ZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3Bh
Y2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCJkZWx0YSIpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQi
KTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAg
cmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA4KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19O
T1RfRk9VTkRfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhYTg4MGIwNzJhMzU3ODQwMWZiMWJlZWZkN2Ey
NGE2YWMxODgwYzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi54
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/
Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAg
IDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAg
IDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0g
ICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBw
Ci0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1Q
TElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAy
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4
bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFu
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+
PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1Q
TElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVh
ZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNi5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MzctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmMxYWE1YmY4
ODlkMjU2NmFhMzUzYjA5YzQ0MWFhNzdhMGJmNmEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDM3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19XUk9O
R19ET0NVTUVOVF9FUlI6IGFzc2VydFRydWUgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LmpzIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNGZkMDI2NDQxM2RiNzY2YmI0YWZmMjA2MzRhOTg3YzM5MjE3
NDQ4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDM3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVy
ID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rp
bmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8K
LS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9u
b3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0
aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9u
IGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkg
b2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRl
c3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBi
dWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9
IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICAgIAotICAgICAgdmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYzIpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlz
LmRvYzI7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jMlJlZiwgImRv
YzIiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMikg
ewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAg
IH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4
KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
Ci0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0v
LyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwot
Ly8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVk
LAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0v
LyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAyKSB7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBs
YWNlQ2hpbGQgb24gYSBuZXcgQXR0ciBub2RlLCByZXBsYWNlIGl0cyBuZXcgVGV4dCBub2RlIHdp
dGggYSAKLQluZXcgRW50aXR5UmVmZXJlbmNlIE5vZGUgY3JlYXRlZCBieSBhbm90aGVyIGRvY3Vt
ZW50IGFuZCB2ZXJpZnkgaWYgYSAKLQlXUk9OR19ET0NVTUVOVF9FUlIgaXMgcmFpc2VkLgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3
MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDM3KCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDM3
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jMjsKLSAgICAg
IHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0g
ICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFyIGFwcGVu
ZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgCi0gICAgICB2YXIgZG9jMlJlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jMikgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jMlJlZiA9IHRoaXMuZG9jMjsK
LSAgICAgIH0KLSAgICAgIGRvYzIgPSBsb2FkKGRvYzJSZWYsICJkb2MyIiwgImhjX3N0YWZmIik7
Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3Jn
L1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5j
cmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MyLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5k
Q2hpbGQob2xkQ2hpbGQpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7
Ci0gICAgICAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xk
Q2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVv
ZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDQpOwotCQl9Ci0JCWFzc2Vy
dFRydWUoInRocm93X1dST05HX0RPQ1VNRU5UX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzcoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM3LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWRkYmQyMzMx
OTk3ZTMzMzg1ZmFhMGZmMjczMjk0OWJlZmJhZjY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1s
Ci0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1s
MS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZ
IGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZ
IGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5U
SVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3Rh
dGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmls
ZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1s
bnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0g
ICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFj
cm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNw
YW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAg
ICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIK
LSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNo
aWxkMzcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBD
REFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtD
REFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRv
IGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7
IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1Q
MDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNv
bm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8v
d3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDEwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQ3NjA5MzRmZWM0ZDk0Nzg2YWUxYmY1OGY1ZDQ1YTU5YjFhOTJjNTYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwCi1TdGF0dXMJ
U3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVzZXR0ZXh0Y29udGVudDEwLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVzZXR0ZXh0Y29udGVudDEwLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
NTcxYWU3NzM4YTBiMjgzYmM5MmM4N2FmZDNhYzUxMzYyOWIzMTU2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMSAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwIjsKLSAgIH0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFt
ZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgi
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlUaGUgbWV0aG9kIHNldFRleHRDb250ZW50
IGhhcyBubyBlZmZlY3Qgd2hlbiB0aGUgbm9kZSBpcyBkZWZpbmVkIHRvIGJlIG51bGwuCi0JCi0J
VXNpbmcgc2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRWxlbWVudCBub2RlLCBhdHRlbXB0IHRvIHNl
dCBpdHMgY29udGVudCB0byBFTEVNRU5ULgotCVJldHJlaXZlIHRoZSB0ZXh0Q29udGVudCBhbmQg
dmVyaWZ5IGlmIGl0IGlzIHdhcyBzZXQgdG8gRUxFTUVOVC4KLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVu
Y3Rpb24gbm9kZXNldHRleHRjb250ZW50MTAoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2Rlc2V0dGV4dGNvbnRlbnQxMCIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgdHh0
OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRh
OwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVu
ZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnL0RP
TS9UZXN0IiwiZG9tMzplbGVtIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRl
eHQgIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0g
ICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBw
aSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oIlBJVCIsIlBJRGF0YSAiKTsKLSAg
ICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RhdGEiKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
ZWxlbS5hcHBlbmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFw
cGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGls
ZChwaSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjZGF0YSk7Ci0g
ICAgICBlbGVtLnRleHRDb250ZW50ID0gIkVMRU1FTlQiOwotCi0gICAgICB0ZXh0Q29udGVudCA9
IGVsZW0udGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXNldHRleHRjb250
ZW50MTAiLCJFTEVNRU5UIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dGV4dGNvbnRlbnQxMCgpOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEw
LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29u
dGVudDEwLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWRlNzYwZjBmMGEy
Yjc1OGU2ZjJlZTgwZTMwYzVjOWY0YTU3NDVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
c2V0dGV4dGNvbnRlbnQxMC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29u
dGVudDEwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJs
b2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEg
Q0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFb
Q0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0
byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxz
dXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVN
UDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJz
b25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1
NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDov
L3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGlj
LiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiYmMxNDcwODg2YmYwNGU0YjA5NTI2N2Y2NTM0NWUwNGIzZWEzMzZjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMQotU3RhdHVz
CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDQ0MzFmNzkyMzFmMDBiMjRjNTQ4MDhhOTY4YzM5MzllNjMxZTJlYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMSI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
c0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAK
LSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaElu
aXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNh
bGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2Fk
IHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMg
bG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBp
cyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBi
ZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotLyoqCi0qIAotCi0JCi0JVXNpbmcgc2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRG9j
dW1lbnRGcmFnbWVudCBub2RlIEVsZW1lbnQgY2hpbGQsIGF0dGVtcHQgdG8gc2V0IGl0cyBjb250
ZW50IHRvIAotCURPQ1VNRU5URlJBR01FTlQuICBSZXRyZWl2ZSB0aGUgdGV4dENvbnRlbnQgYW5k
IHZlcmlmeSBpZiBpdCBpcyB3YXMgc2V0IHRvIERPQ1VNRU5URlJBR01FTlQKLQotKiBAYXV0aG9y
IElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50
Ci0qLwotZnVuY3Rpb24gbm9kZXNldHRleHRjb250ZW50MTEoKSB7Ci0gICB2YXIgc3VjY2VzczsK
LSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2Rlc2V0dGV4dGNvbnRlbnQx
MSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0g
ICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0OwotICAg
ICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAg
ICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVuZGVkQ2hp
bGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0g
ZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1s
OnAiKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNv
bW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBwaSA9IGRvYy5jcmVhdGVQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24oIlBJVCIsIlBJRGF0YSAiKTsKLSAgICAgIGNkYXRhID0gZG9j
LmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVt
LmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGls
ZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJl
Zik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChwaSk7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjZGF0YSk7Ci0gICAgICBhcHBlbmRlZENo
aWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlbGVtKTsKLSAgICAgIGVsZW0udGV4dENvbnRlbnQg
PSAiRE9DVU1FTlRGUkFHTUVOVCI7Ci0KLSAgICAgIGVsZW1DaGlsZCA9IGRvY0ZyYWcubGFzdENo
aWxkOwotCi0gICAgICB0ZXh0Q29udGVudCA9IGVsZW1DaGlsZC50ZXh0Q29udGVudDsKLQotICAg
ICAgYXNzZXJ0RXF1YWxzKCJub2RlZ2V0dGV4dGNvbnRlbnQxMSIsIkRPQ1VNRU5URlJBR01FTlQi
LHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIG5vZGVzZXR0ZXh0Y29udGVudDExKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyY2JkMDRhYzkxZmQ5OGY0MDIxMzk3NDMxOTg1
ZGRlMWI4MTNmZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEx
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXNldHRleHRjb250ZW50MTEuanMiLz48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2Vt
PgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50
PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMw
IE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0
aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFu
IGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+
PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1h
OwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5u
ZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVz
PC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAs
MDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
Om5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxz
dHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rvcjwv
Y29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4K
LSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8
Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8
dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBU
ZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4
dGNvbnRlbnQxMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJh
MGZiZjQyYjJlOTY3NTA4M2YyMTdjMTVmYWQ3ODJkZDdmZGQ0NGIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVu
dDEyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29u
dGVudDEyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmMzNmZlNmIxMWVjYmU4
MWM1NjM2ZGFhZWE4MGI0NTliNzBhODdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJv
cihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21w
bGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRV
cFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQg
aGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2gg
YWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSog
Ci0KLQkKLQlVc2luZyBzZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZSwgYXR0ZW1wdCB0byBzZXQgaXRzIHZhbHVlLgotCVNpbmNlIEVudGl0eVJlZmVyZW5jZSBub2Rl
cyBhcmUgUmVhZE9ubHksIGNoZWNrIGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSICAK
LQlpcyByYWlzZWQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0ZXh0Y29udGVu
dDEyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWls
ZGVyLCAibm9kZXNldHRleHRjb250ZW50MTIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRv
YzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0ZXh0Q29u
dGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50
OwotCi0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgCi0J
ewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBlbnRSZWYudGV4dENv
bnRlbnQgPSAiTkEiOwotCi0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgibm9kZXNldHRleHRjb250ZW50MTIiLHN1Y2Nlc3MpOwotCX0KLQotfQot
Ci0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXNldHRleHRjb250ZW50MTIoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjRiZjk2ODdhMGViNGQ4NzM5NDI3MzM1NWYwNzM0M2QxZjFiYzkzNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwh
RE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VO
IgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4K
LSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4K
LSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7
Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEg
UFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAi
bm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcK
LSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0g
ICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAg
PCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNv
bW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt
YS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3Rh
ZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5q
cyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJu
b2Rlc2V0dGV4dGNvbnRlbnQxMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHVzZXJkYXRhMDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNjhkN2FmMmZmOTgzZTE3MzFlMDZkYWRiNTNmNDgwMmZkZGUy
ZjZlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgKLVN0YXR1
cwllcnJvcgotTWVzc2FnZQlMaW5lIDExMzogVHlwZUVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDguanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDguanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliNmY1ODYzYmY0Njc4YWU1MGFlOTVkODg2ZDY2ZTBjOGUz
NTRkZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJk
YXRhMDgiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0g
MDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgp
IHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2gg
YXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2
ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0
aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkg
b2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0g
ICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZva2Ugc2V0VXNlckRhdGEgb24g
YSBDREFUQVNlY3Rpb24gYW5kIEVudGl0eVJlZmVyZW5jZSBub2RlIHRvIHNldCB0aGVpciAKLQlV
c2VyRGF0YSB0byB0aGlzIERvY3VtZW50IGFuZCBEb2N1bWVudEVsZW1lbnQgbm9kZS4gIFZlcmlm
eSBpZiB0aGUgVXNlckRhdGEgCi0Jb2JqZWN0IHRoYXQgd2FzIHNldCBmb3IgYm90aCBub2RlcyBp
cyBkaWZmZXJlbnQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNOb2RlMy1zZXRVc2VyRGF0YQotKi8KLWZ1bmN0aW9uIG5vZGVzZXR1c2VyZGF0YTA4
KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVy
LCAibm9kZXNldHVzZXJkYXRhMDgiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAg
ICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjRGF0YTsKLSAg
ICAgIHZhciBlbGVtTGlzdDsKLSAgICAgIHZhciBlbGVtTmFtZTsKLSAgICAgIHZhciB1c2VyRGF0
YTsKLSAgICAgIHZhciByZXR1cm5lZDE7Ci0gICAgICB2YXIgcmV0dXJuZWQyOwotICAgICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgICB2YXIgcmV0VXNlckRhdGE7Ci0gICAgICB2YXIgbnVsbEhhbmRsZXIg
PSBudWxsOwotCi0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAgIGVudFJlZiA9
IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBjRGF0YSA9IGRvYy5j
cmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBU2VjdGlvbiIpOwotICAgICAgaWYgKG51bGwgPT0gbnVs
bEhhbmRsZXIpIHsKLSAgICAgICAgIGVudFJlZi5zZXRVc2VyRGF0YSgiS2V5MSIsIGRvYywgbnVs
bCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIGVudFJlZi5zZXRVc2VyRGF0YSgiS2V5MSIs
IGRvYywgbnVsbEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAgICBpZiAobnVsbCA9PSBu
dWxsSGFuZGxlcikgewotICAgICAgICAgY0RhdGEuc2V0VXNlckRhdGEoIktleTIiLCBkb2NFbGVt
LCBudWxsKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgY0RhdGEuc2V0VXNlckRhdGEoIktl
eTIiLCBkb2NFbGVtLCBudWxsSGFuZGxlci5oYW5kbGUpOwotICAgICAgfQotICAgICAgIHJldHVy
bmVkMSA9IGVudFJlZi5nZXRVc2VyRGF0YSgiS2V5MSIpOwotICAgICAgcmV0dXJuZWQyID0gY0Rh
dGEuZ2V0VXNlckRhdGEoIktleTIiKTsKLSAgICAgIHN1Y2Nlc3MgPSByZXR1cm5lZDEuaXNFcXVh
bE5vZGUocmV0dXJuZWQyKTsKLSAgICAgIGFzc2VydEZhbHNlKCJub2Rlc2V0dXNlcmRhdGEwOCIs
c3VjY2Vzcyk7Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR1
c2VyZGF0YTA4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHVzZXJkYXRhMDgueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRmNDY0MDY5NmU2ZjkyNDNhNjA4MWY3OTIyMTc4ZGMxZWI2YWFmY2EuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LnhodG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+
Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0
Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1
OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3
OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYj
OTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNU
RU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdy
dGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5t
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElF
RAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4K
LSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4K
LSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBp
cyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxT
Y2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhj
X3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0
bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ibm9kZXNldHVzZXJkYXRhMDguanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjVhMzgwOWQ3OTAxZmEwNDQ2Yzc3Nzdi
NGVhYWNiZDRmNGVlMTFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xl
dGV4dDA2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBs
YWNld2hvbGV0ZXh0MDYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDE4ZjI3NjEyNDM1MTRhYmExNmZiZjQzMmZjZWM4
YWZkMzdjZDAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKp
IDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIElu
c3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9y
IEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmln
aHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4g
U29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29w
eXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBV
UkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZp
ZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1
cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4
dHJlcGxhY2V3aG9sZXRleHQwNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7
Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVz
dCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlv
bnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4g
IE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQg
dGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVy
aW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAg
IHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8v
ICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAg
ICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAg
c2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAg
ICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0
cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVGhlIG1ldGhvZCByZXBsYWNlV2hvbGVUZXh0IHN1YnN0aXR1dGVzIHRoZSBhIHNwZWNp
ZmllZCB0ZXh0IGZvciB0aGUgdGV4dCBvZiAKLQl0aGUgY3VycmVudCBub2RlIGFuZCBhbGwgbG9n
aWNhbGx5LWFkamFjZW50IHRleHQgbm9kZXMuICBUaGlzIG1ldGhvZCByYWlzZXMKLQlhIE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUiBpZiBvbmUgb2YgdGhlIFRleHQgbm9kZXMgYmVpbmcgcmVw
bGFjZWQgaXMgcmVhZG9ubHkuCi0JCi0JSW52b2tlIHJlcGxhY2VXaG9sZVRleHQgb24gYW4gZXhp
c3RpbmcgdGV4dCBub2RlIHdpdGggbmV3bHkgY3JlYXRlZCB0ZXh0IGFuZCBFbnRpdHlyZWZlcmVu
Y2UKLQlub2RlcyAod2hvc2UgcmVwbGFjZW1lbnQgdGV4dCBpcyBhIGNoYXJhY3RlciBlbnRpdHkg
cmVmZXJlbmNlKSBhcHBlbmRlZCBhcyBjaGlsZHJlbiBvZiBpdHMgcGFyZW50IGVsZW1lbnQgbm9k
ZS4gIAotCVdoZXJlIHRoZSBub2RlcyB0byBiZSByZW1vdmVkIGFyZSByZWFkLW9ubHkgZGVzY2Vu
ZGFudHMgb2YgYW4gRW50aXR5UmVmZXJlbmNlLCB0aGUgRW50aXR5UmVmZXJlbmNlIAotICAgICAg
ICBtdXN0IGJlIHJlbW92ZWQgaW5zdGVhZCBvZiB0aGUgcmVhZC1vbmx5IG5vZGVzLiBPbmx5IGlm
IGFueSBFbnRpdHlSZWZlcmVuY2UgdG8gYmUgcmVtb3ZlZCBoYXMgCi0gICAgICAgIGRlc2NlbmRh
bnRzIHRoYXQgYXJlIG5vdCBFbnRpdHlSZWZlcmVuY2UsIFRleHQsIG9yIENEQVRBU2VjdGlvbiBu
b2RlcywgdGhlIHJlcGxhY2VXaG9sZVRleHQgCi0gICAgICAgIG1ldGhvZCBtdXN0IGZhaWwsIHJh
aXNpbmcgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIuIFZlcmlmeSB0aGF0IHRoZSBtZXRo
b2QgZG9lcyBub3QgcmFpc2UKLSAgICAgICAgYW4gZXhjZXB0aW9uIGFuZCB2ZXJpZnkgdGhlIGNv
bnRlbnQgb2YgdGhlIHJldHVybmVkIHRleHQgbm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0
aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9N
LUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI1RleHQzLXJlcGxhY2VXaG9sZVRleHQKLSovCi1m
dW5jdGlvbiB0ZXh0cmVwbGFjZXdob2xldGV4dDA2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAidGV4dHJlcGxhY2V3aG9sZXRleHQwNiIp
ICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGl0ZW1MaXN0OwotICAg
ICAgdmFyIGVsZW1lbnRTdHJvbmc7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgZXJl
Zk5vZGU7Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7
Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgIGl0ZW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJzdHJvbmciKTsKLSAgICAgIGVsZW1lbnRTdHJvbmcgPSBpdGVtTGlzdC5pdGVtKDApOwotICAg
ICAgdGV4dE5vZGUgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIk5ldyBUZXh0Iik7Ci0gICAgICBlcmVm
Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBlbGVtZW50U3Ryb25nLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBlbGVtZW50U3Ryb25nLmFwcGVuZENoaWxkKGVyZWZOb2RlKTsKLSAgICAgIHRl
eHROb2RlID0gZWxlbWVudFN0cm9uZy5maXJzdENoaWxkOwotCi0gICAgICByZXBsYWNlZFRleHQg
PSB0ZXh0Tm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJOZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAg
IG5vZGVWYWx1ZSA9IHRleHROb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJ0
ZXh0cmVwbGFjZXdob2xldGV4dDA2IiwiTmV3IFRleHQgYW5kIENkYXRhIixub2RlVmFsdWUpOwot
ICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgdGV4dHJlcGxhY2V3
aG9sZXRleHQwNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi54aHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzk3MGI2MGIxMDkwOGEwYzc5ZmQ1N2M4MTM5YmQ5MThjMzcxZWMy
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InRleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hv
bGV0ZXh0MDctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDc1
ZWNiZDA4ZTY4NmY2OWZhZmU0YTYzN2FjOTY1NjIwYTJmNDljLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9s
ZXRleHQwNy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFj
ZXdob2xldGV4dDA3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTY0ZDMyZGQz
MTMyOWQ2N2E5OTFhNzkxNDIxMDBmMDAxZjNlYjA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90
ZXh0cmVwbGFjZXdob2xldGV4dDA3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM5ICswLDAgQEAK
LQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVt
LCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNl
YXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBV
bml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25z
b3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQot
ICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICog
IEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJn
ZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNyI7Ci0gICB9Ci0KLXZhciBk
b2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8v
ICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBj
b25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50
IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlz
IHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAg
ICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0
aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRy
eSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1h
eSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3Vy
ZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFj
ZUF3YXJlIiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotQXBwZW5kIGFuIGVudGl0eSByZWZlcmVuY2UgYW5kIGEgdGV4dCBub2Rl
IGFmdGVyIHRvIHRoZSBjb250ZW50IG9mIHRoZQotZmlyc3Qgc3Ryb25nIGVsZW1lbnQuICBUaGVu
IGNhbGwgcmVwbGFjZVdob2xlVGV4dCBvbiBpbml0aWFsIGNvbnRlbnQKLW9mIHRoYXQgZWxlbWVu
dC4gIFNpbmNlIHRoZSBlbnRpdHkgcmVmZXJlbmNlIGRvZXMgbm90IGNvbnRhaW4gYW55IAotbG9n
aWNhbGx5LWFkamFjZW50IHRleHQgY29udGVudCwgb25seSB0aGUgaW5pdGlhbCB0ZXh0IGVsZW1l
bnQgc2hvdWxkCi1iZSByZXBsYWNlZC4gCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWls
IERlbGltYQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI1RleHQzLXJlcGxhY2VX
aG9sZVRleHQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5j
Z2k/aWQ9NDI1Ci0qLwotZnVuY3Rpb24gdGV4dHJlcGxhY2V3aG9sZXRleHQwNygpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBs
YWNld2hvbGV0ZXh0MDciKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZh
ciBpdGVtTGlzdDsKLSAgICAgIHZhciBlbGVtZW50TmFtZTsKLSAgICAgIHZhciB0ZXh0Tm9kZTsK
LSAgICAgIHZhciBlcmVmTm9kZTsKLSAgICAgIHZhciByZXBsYWNlZFRleHQ7Ci0gICAgICB2YXIg
YXBwZW5kZWRDaGlsZDsKLSAgICAgIHZhciBub2RlOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAg
ICAgIHZhciBub2RlVHlwZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3Ry
b25nIik7Ci0gICAgICBlbGVtZW50TmFtZSA9IGl0ZW1MaXN0Lml0ZW0oMCk7Ci0gICAgICBlcmVm
Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIHRleHROb2Rl
ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW1lbnROYW1lLmFwcGVuZENoaWxkKGVyZWZOb2RlKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtZW50TmFtZS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICB0ZXh0Tm9kZSA9IGVs
ZW1lbnROYW1lLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIHJlcGxhY2VkVGV4dCA9IHRleHROb2RlLnJl
cGxhY2VXaG9sZVRleHQoIk5ldyBUZXh0IGFuZCBDZGF0YSIpOwotICAgICAgdGV4dE5vZGUgPSBl
bGVtZW50TmFtZS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnRTYW1lKCJyZXR2YWxfc2FtZSIs
dGV4dE5vZGUscmVwbGFjZWRUZXh0KTsKLW5vZGVWYWx1ZSA9IHRleHROb2RlLm5vZGVWYWx1ZTsK
LQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlVmFsdWVTYW1lIiwiTmV3IFRleHQgYW5kIENkYXRh
Iixub2RlVmFsdWUpOwotICAgICAgIG5vZGUgPSB0ZXh0Tm9kZS5uZXh0U2libGluZzsKLQotICAg
ICAgYXNzZXJ0Tm90TnVsbCgic2Vjb25kQ2hpbGROb3ROdWxsIixub2RlKTsKLW5vZGVUeXBlID0g
bm9kZS5ub2RlVHlwZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJzZWNvbmRDaGlsZElzRW50UmVm
Iiw1LG5vZGVUeXBlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIHRleHRyZXBsYWNld2hvbGV0ZXh0MDcoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkMjk3N2JhMTg4YWExYjEzODg2NmVk
YWIzNTU1Yjc5N2MyNDE3ODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hv
bGV0ZXh0MDcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJz
aW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3Qu
ZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYj
OTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICIm
Izk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhh
ICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxl
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8
IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAg
ICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBl
bnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBk
YXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMg
Q0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08
aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6
eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZm
LnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0i
VVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA3
LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFb
VGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRh
YiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxs
YXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9n
ZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0g
IDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8
L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwg
RGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0
cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8
L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdo
b2xldGV4dDA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjQ1MWE0NjZiNjQzMWEyNGQ2YjdhNDkzMmE2ZGNkMzE0NDVlNjQyZS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4Ci1TdGF0
dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IGFz
c2VydFRydWUgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlMDg1NGIzMGYyZmZhNzRkNzNhNzE0YWZmN2RjN2JkMzBhMDU4OWMxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTI2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3Js
ZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFu
ZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBU
aGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5z
ZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlm
aWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAg
ICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRl
eHQwOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAw
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJiYXJmb28i
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFwcGVuZHMgYW4gZW50aXR5IHJlZmVyZW5j
ZSBjb250YWluaW5nIHRleHQgYW5kIGFuIGVsZW1lbnQgdG8gYW4gZXhpc3RpbmcKLXRleHQgbm9k
ZSwgdGhlbiBjYWxscyBUZXh0LnJlcGxhY2VXaG9sZVRleHQgb24gdGhlIGV4aXN0aW5nIHRleHQg
bm9kZS4KLUEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIHNob3VsZCBiZSB0aHJvd24uCi0K
LSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQv
UkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTQy
NQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD01
NDAKLSovCi1mdW5jdGlvbiB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCkgewotICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAidGV4dHJlcGxhY2V3aG9s
ZXRleHQwOCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGl0ZW1M
aXN0OwotICAgICAgdmFyIHA7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIG5vZGU7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJiYXJmb28iKTsKLSAgICAgIGl0ZW1M
aXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7Ci0gICAgICBwID0gaXRlbUxpc3Qu
aXRlbSgwKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDIi
KTsKLSAgICAgIG5vZGUgPSBwLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBub2RlID0gcC5m
aXJzdENoaWxkOwotCi0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIG5vZGUgPSBub2RlLnJlcGxhY2VXaG9sZVRleHQoInlvIik7Ci0gICAgICAgIH0K
LQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRl
ZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIHRleHRyZXBsYWNld2hvbGV0ZXh0MDgoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4
dDA4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNl
d2hvbGV0ZXh0MDgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmYWU5OTY5
YWY4YzZkMTAyMzRmYTAwMzYyZDc4NTNlNjk3ZDBkMWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCww
IEBACi08IURPQ1RZUEUgaHRtbCBbCi08IUVOVElUWSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50
MiAnZm9vPGJyLz4nPgotPCFFTEVNRU5UIGh0bWwgKGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0
bWwgeG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+
Ci08IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KLTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNy
YyBDREFUQSAjSU1QTElFRAotICAgICB0eXBlIENEQVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQg
Q0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJv
ZHkgKHApPgotPCFBVFRMSVNUIGJvZHkgb25sb2FkIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5U
IHAgKCNQQ0RBVEF8YnIpKj4KLTwhRUxFTUVOVCBiciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hv
bGVUZXh0IHNhbXBsZTwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3Jj
PSdzZWxmeGh0bWwuanMnPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCcgc3JjPSd0ZXh0cmVwbGFjZXdob2xldGV4dDA4LmpzJz48L3NjcmlwdD48
c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBz
dGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotPHA+YmFyPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlvbnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2Vw
dGlvbnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYWMzZDlj
YmRmNzAwZTY5NmI2YTA3NDg1MGM2MjZjNDM4NjM2Nzk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVy
ZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDIzICswLDAgQEAKLVRlc3QgdG8gbWFrZSBzdXJlIEVudGl0eVJlZmVyZW5jZSBub2RlcyBhcmUg
YWx3YXlzIHRyZWF0ZWQgcmVhZG9ubHkKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LVBBU1MgeG1sRG9jMi5hZG9wdE5vZGUoZW50aXR5UmVmZXJlbmNlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1QQVNT
IGVudGl0eVJlZmVyZW5jZS5vd25lckRvY3VtZW50IGlzIHhtbERvYwotUEFTUyBlbnRpdHlSZWZl
cmVuY2Uubm9kZVZhbHVlID0gJ2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uu
bm9kZVZhbHVlIGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLnByZWZpeCA9ICdmb28nIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogTmFtZXNwYWNlRXJyb3I6IERPTSBFeGNlcHRpb24gMTQuCi1Q
QVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2Uu
dGV4dENvbnRlbnQgPSAnZm9vJyB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vTW9kaWZpY2F0aW9u
QWxsb3dlZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1GQUlMIGVudGl0eVJlZmVyZW5jZS50ZXh0
Q29udGVudCBzaG91bGQgYmUgPi4gV2FzIC4KLUZBSUwgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBl
bmQgc2hvdWxkIGJlIDEuIFdhcyAwLgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuYXBwZW5kQ2hpbGQo
dGV4dCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGgg
aXMgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQKLUZBSUwgY2hpbGRyZW5CZWZvcmVGYWlsZWRB
cHBlbmQgc2hvdWxkIGJlIDEuIFdhcyAwLgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuaW5zZXJ0QmVm
b3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENoaWxkKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1QQVNTIGVu
dGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCBpcyBjaGlsZHJlbkJlZm9yZUZhaWxlZEFw
cGVuZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25s
eS1leGNlcHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uv
cmVhZG9ubHktZXhjZXB0aW9ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
ZmIxNjQxYmVkNDQ3MzA3MGZiYzJlOWYzNDljMTljYjgxZDNlOGYyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0
eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uvc2Ny
aXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZl
cmVuY2Uvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRiZWVkOTNhNWUwNmQ4ODQxMjhkZjNiMzRkYjU0MmQ4NTA3MWUzNWQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNy
Yz0iWU9VUl9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0
cy9yZWFkb25seS1leGNlcHRpb25zLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVm
ZXJlbmNlL3NjcmlwdC10ZXN0cy9yZWFkb25seS1leGNlcHRpb25zLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZjI0NjU3ZDgyZGIzZThhN2ZiYmU0ODc3ZDNkM2Q2M2IxMDlkNDc3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhjZXB0
aW9ucy5qcworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLWRlc2NyaXB0aW9uKCJUZXN0
IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIGFsd2F5cyB0cmVhdGVkIHJl
YWRvbmx5IikKLQotdmFyIHhtbERvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURv
Y3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZh
ciB4bWxEb2MyID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoImh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiaHRtbCIsIG51bGwpOwotdmFyIGVudGl0eVJlZmVy
ZW5jZSA9IHhtbERvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci0KLXNob3VsZFRocm93
KCJ4bWxEb2MyLmFkb3B0Tm9kZShlbnRpdHlSZWZlcmVuY2UpIik7Ci1zaG91bGRCZSgiZW50aXR5
UmVmZXJlbmNlLm93bmVyRG9jdW1lbnQiLCAieG1sRG9jIikKLQotLy8gbm9kZVZhbHVlIGlzIGRl
ZmluZWQgdG8gYmUgbnVsbCBmb3IgRW50aXR5IFJlZmVyZW5jZSBub2RlcywgYW5kIHRodXMgc2hv
dWxkIHNpbGVudGx5IGZhaWwgdG8gbW9kaWZ5Ci0vLyBTcGVjIGlzIGFtYmlnaW91cyBhcyB0byBp
ZiB3ZSBzaG91bGQgdGhyb3cgaGVyZSBvciBub3QuICBJJ3ZlIHJlcXVlc3RlZCBjbGFyaWZpY2F0
aW9uOgotLy8gaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8yMDA4
SmFuTWFyLzAwMDkuaHRtbAotc2hvdWxkVGhyb3coImVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUg
PSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUiLCAibnVsbCIp
OwotCi1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLnByZWZpeCA9ICdmb28nIik7Ci1zaG91
bGRCZSgiZW50aXR5UmVmZXJlbmNlLnByZWZpeCIsICJudWxsIik7Ci0KLXNob3VsZFRocm93KCJl
bnRpdHlSZWZlcmVuY2UudGV4dENvbnRlbnQgPSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJl
ZmVyZW5jZS50ZXh0Q29udGVudCIsICInPiciKTsKLQotdmFyIGNoaWxkcmVuQmVmb3JlRmFpbGVk
QXBwZW5kID0gZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hvdWxkQmUoImNo
aWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIiwgIjEiKTsKLXZhciB0ZXh0ID0gZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoIkZBSUwiKTsKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2UuYXBwZW5k
Q2hpbGQodGV4dCkiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5n
dGgiLCAiY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQiKTsKLQotY2hpbGRyZW5CZWZvcmVGYWls
ZWRBcHBlbmQgPSBlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGg7Ci1zaG91bGRCZSgi
Y2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQiLCAiMSIpOwotc2hvdWxkVGhyb3coImVudGl0eVJl
ZmVyZW5jZS5pbnNlcnRCZWZvcmUodGV4dCwgZW50aXR5UmVmZXJlbmNlLmZpcnN0Q2hpbGQpIik7
Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIiwgImNoaWxkcmVu
QmVmb3JlRmFpbGVkQXBwZW5kIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9O
b2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05v
ZGUvaW5pdGlhbC12YWx1ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDI2ZjBlYzJhM2RlYmZlN2E3ZWRl
YjA4ZTJkMTAxYTc0MTVkY2RmYjUuLjFjOTgxZmIzYjVkODkyN2Q1YTg0MzM4ZjM3MTI0NTNhNjBj
ZTgxZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvaW5pdGlhbC12YWx1
ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvaW5pdGlhbC12
YWx1ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMTMsMTIgKzExMyw2IEBAIFBBU1MgZWxlbWVudC5uYW1l
c3BhY2VVUkkgaXMgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCiBQQVNTIGVsZW1lbnQu
cHJlZml4IGlzICdodG1sJwogUEFTUyBlbGVtZW50Lm5vZGVWYWx1ZSBpcyBudWxsCiBQQVNTIGVs
ZW1lbnQuYXR0cmlidXRlcy50b1N0cmluZygpIGlzICdbb2JqZWN0IE5hbWVkTm9kZU1hcF0nCi1Q
QVNTIGRvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgnZ3QnKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCi1QQVNTIGVudGl0eVJl
ZmVyZW5jZS5ub2RlTmFtZSBpcyAnZ3QnCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5sb2NhbE5hbWUg
aXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2UubmFtZXNwYWNlVVJJIGlzIG51bGwKLVBBU1Mg
ZW50aXR5UmVmZXJlbmNlLnByZWZpeCBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5ub2Rl
VmFsdWUgaXMgbnVsbAogUEFTUyBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubm9kZU5hbWUgaXMgJ3ht
bC1zdHlsZXNoZWV0JwogUEFTUyBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubG9jYWxOYW1lIGlzIG51
bGwKIFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5hbWVzcGFjZVVSSSBpcyBudWxsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZh
bHVlcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwt
dmFsdWVzLmpzCmluZGV4IDczMWE4MDYzOTA4Njk4YjQ2OTViMjhjMzZiNzczYTdkZDFhMzAzNTQu
LjliMTJhOTc5MDFjMDM5NDMyMzMyZDMzZGZjYWRjOTgyN2ZiNmFhZmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwtdmFsdWVzLmpzCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwtdmFsdWVz
LmpzCkBAIC0xNTYsMTYgKzE1Niw2IEBAIHNob3VsZEJlKCJlbGVtZW50LnByZWZpeCIsICInaHRt
bCciKTsKIHNob3VsZEJlKCJlbGVtZW50Lm5vZGVWYWx1ZSIsICJudWxsIik7CiBzaG91bGRCZSgi
ZWxlbWVudC5hdHRyaWJ1dGVzLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgTmFtZWROb2RlTWFwXSci
KTsKIAotLy8gTm90IHBvc3NpYmxlIHRvIGNyZWF0ZSBFbnRpdHkgbm9kZXMgdmlhIHRoZSBET00s
IFdlYktpdCBkb2Vzbid0IGNyZWF0ZSB0aGVtIGZyb20gcGFyc2luZwotCi1zaG91bGRUaHJvdygi
ZG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCdndCcpIik7Ci12YXIgZW50aXR5UmVmZXJl
bmNlID0geG1sRG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZ3QiKTsKLXNob3VsZEJlKCJlbnRp
dHlSZWZlcmVuY2Uubm9kZU5hbWUiLCAiJ2d0JyIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5j
ZS5sb2NhbE5hbWUiLCAibnVsbCIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5uYW1lc3Bh
Y2VVUkkiLCAibnVsbCIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5wcmVmaXgiLCAibnVs
bCIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUiLCAibnVsbCIpOwotCiAv
LyBOb3QgcG9zc2libGUgdG8gY3JlYXRlIE5vdGF0aW9uIG5vZGVzIHZpYSB0aGUgRE9NLCBXZWJL
aXQgZG9lc24ndCBjcmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKIAogdmFyIHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiA9IGRvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigneG1sLXN0eWxl
c2hlZXQnLCAndHlwZT1cInRleHQveHNsXCIgaHJlZj1cIm1pc3NpbmcueHNsXCInKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGll
cy1leHBlY3RlZC50eHQKaW5kZXggNzcxM2ZjOWNmNDg3ZjY5Nzk4MTg3NDIyZTEyNzFhYTg2MmJl
NjI1Ny4uNzQ3Y2Q3ZTYyNTljZGRjYTBiZTI1Y2VlNGI1Y2MyYTAxZjcwY2YyMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGll
cy1leHBlY3RlZC50eHQKQEAgLTMzLDggKzMzLDYgQEAgUEFTUzogY2FuR2V0KCdEb2N1bWVudFR5
cGUnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhblNldCgnRG9jdW1lbnRUeXBl
Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ0VsZW1lbnQnKSBzaG91
bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhblNldCgnRWxlbWVudCcpIHNob3VsZCBiZSAn
dHJ1ZScgYW5kIGlzLgotUEFTUzogY2FuR2V0KCdFbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQgYmUg
J3RydWUnIGFuZCBpcy4KLVBBU1M6IGNhblNldCgnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJl
ICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ0V2YWxFcnJvcicpIHNob3VsZCBiZSAndHJ1
ZScgYW5kIGlzLgogUEFTUzogY2FuU2V0KCdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ3RydWUnIGFu
ZCBpcy4KIFBBU1M6IGNhbkdldCgnRXZlbnQnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRt
bAppbmRleCBmZmY1YzRhZDA4MTRhYjljMWNjMDQ2YWZlYmIxOGM5ZDc4YmM2NzQwLi40NDMxNmFj
NzhmMTM4NzgwNDkwZTRlNTYxMmFiMmFkOGZiN2UwOWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCkBAIC04NCw3ICs4NCw2
IEBAIHZhciB3aW5kb3dSZWFkV3JpdGVQcm9wZXJ0aWVzID0gWwogICAgICJEb2N1bWVudEZyYWdt
ZW50IiwgCiAgICAgIkRvY3VtZW50VHlwZSIsIAogICAgICJFbGVtZW50IiwgCi0gICAgIkVudGl0
eVJlZmVyZW5jZSIsIAogICAgICJFdmFsRXJyb3IiLCAKICAgICAiRXZlbnQiLCAKICAgICAiSFRN
TEFuY2hvckVsZW1lbnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9yZXNvdXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzCmluZGV4IGY5YzcwOTI5MjkyOThj
NzZmNzljZTVmNmE2YWU1MmZjOWNlYzBkZjUuLjlkNDMwZWNlYjJlYWM3YTU3MThiMzdmZDYzZGU3
Y2UyNGFiYTFiM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNv
dXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3Jlc291cmNlcy93aW5kb3ctcHJvcGVydGllcy5qcwpAQCAtNTYsNyArNTYsNiBAQCB2YXIg
cHJvcGVydHlJbmZvID0gWwogICAgIFsiRG9jdW1lbnRGcmFnbWVudCIsICJvYmplY3QiXSwKICAg
ICBbIkRvY3VtZW50VHlwZSIsICJvYmplY3QiXSwKICAgICBbIkVsZW1lbnQiLCAib2JqZWN0Il0s
Ci0gICAgWyJFbnRpdHlSZWZlcmVuY2UiLCAib2JqZWN0Il0sCiAgICAgWyJFdmVudCIsICJvYmpl
Y3QiXSwKICAgICBbIkV2ZW50RXhjZXB0aW9uIiwgIm9iamVjdCJdLAogICAgIFsiSFRNTEFuY2hv
ckVsZW1lbnQiLCAib2JqZWN0Il0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDY3ZDMwMmNlZWQ1MjA1NjNkZmUxZGJmN2Y3OTAwZDIwZmQ4NDg4YjAuLjExMjIxNGE3N2Jm
NTNmMGMxMmZmM2FiYTNlNzA3ZWYxMzA3ZTZhYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhw
ZWN0ZWQudHh0CkBAIC0xMTQsOCArMTE0LDYgQEAgUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09
ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0Rv
Y3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1
ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBp
cyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rv
cl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRp
dHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVu
Y2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBB
U1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQ
QVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQog
UEFTUyB3aW5bJ0V2ZW50RXhjZXB0aW9uJ10gPT0gJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25z
dHJ1Y3Rvcl0nIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dAppbmRl
eCAzMDJhMDliODZhNWJmMmU3OTlkMjRjOGU2OWUxMzA3ZTFhNGQyNmQxLi5hYmY2N2FkMmU5YWY2
MThjYWY4NTc3NzBiYTA5MTE0NGExNzI0NGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhw
ZWN0ZWQudHh0CkBAIC05Niw4ICs5Niw2IEBAIFBBU1M6IENvbW1lbnQgc3VjY2Vzc2Z1bGx5IHNo
YWRvd2VkCiBQQVNTOiBDREFUQVNlY3Rpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBE
b2N1bWVudFR5cGUgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBOb3RhdGlvbiBzdWNjZXNz
ZnVsbHkgc2hhZG93ZWQKLVBBU1M6IEVudGl0eSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKLVBBU1M6
IEVudGl0eVJlZmVyZW5jZSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IEhUTUxEb2N1bWVudCBzdWNj
ZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IEhUTUxFbGVtZW50IHN1Y2Nlc3NmdWxseSBzaGFkb3dl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
eS1zaGFkb3dpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydHktc2hhZG93aW5nLmh0bWwKaW5kZXggOWI0NmVhY2UwMTM3MGM1NTI2MmQwZWY2NGQ2ODFh
ZTU2ZWFiYzAyYy4uY2I3NGZiMDRhMDcyNTJmMTBiNWRjNjNmOWM2MDRiMTUxOTBjNWQ5YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFk
b3dpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LXNoYWRvd2luZy5odG1sCkBAIC0yMTUsMTAgKzIxNSw2IEBACiAgICAgICAgIGxvZyhEb2N1
bWVudFR5cGUgPT0gMSA/ICJQQVNTOiBEb2N1bWVudFR5cGUgc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
IiA6ICJGQUlMOiBEb2N1bWVudFR5cGUgd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAgICB2YXIg
Tm90YXRpb24gPSAxOwogICAgICAgICBsb2coTm90YXRpb24gPT0gMSA/ICJQQVNTOiBOb3RhdGlv
biBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IE5vdGF0aW9uIHdhcyBub3Qgc2hhZG93
ZWQiKTsKLSAgICAgICAgdmFyIEVudGl0eSA9IDE7Ci0gICAgICAgIGxvZyhFbnRpdHkgPT0gMSA/
ICJQQVNTOiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBFbnRpdHkgd2Fz
IG5vdCBzaGFkb3dlZCIpOwotICAgICAgICB2YXIgRW50aXR5UmVmZXJlbmNlID0gMTsKLSAgICAg
ICAgbG9nKEVudGl0eVJlZmVyZW5jZSA9PSAxID8gIlBBU1M6IEVudGl0eVJlZmVyZW5jZSBzdWNj
ZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IEVudGl0eVJlZmVyZW5jZSB3YXMgbm90IHNoYWRv
d2VkIik7CiAgICAgICAgIHZhciBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSAxOwogICAgICAgICBs
b2coUHJvY2Vzc2luZ0luc3RydWN0aW9uID09IDEgPyAiUEFTUzogUHJvY2Vzc2luZ0luc3RydWN0
aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogUHJvY2Vzc2luZ0luc3RydWN0aW9u
IHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIEhUTUxEb2N1bWVudCA9IDE7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDRhMThhZGY3YmFmNjY5Yzc2MWQ1MTk3YjEzNGRhMGJmZWU4NzJlODYuLjM3YzM1NDE5Mzhm
MTEwN2Q2NmNjOTMxNTBjMWIxNDM2NWY1ZWE5MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNiBAQCBQQVNT
IFRyeUFsbG9jYXRlKCdDaGFyYWN0ZXJEYXRhJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxs
b2NhdGUoJ0NEQVRBU2VjdGlvbicpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdE
b2N1bWVudFR5cGUnKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRWxlbWVudCcp
IGlzICdleGNlcHRpb24nCi1QQVNTIFRyeUFsbG9jYXRlKCdFbnRpdHlSZWZlcmVuY2UnKSBpcyAn
ZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRXZlbnRUYXJnZXQnKSBpcyAnZXhjZXB0aW9u
JwogUEFTUyBUcnlBbGxvY2F0ZSgnSFRNTERvY3VtZW50JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1Mg
VHJ5QWxsb2NhdGUoJ05vZGUnKSBpcyAnZXhjZXB0aW9uJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
ZG9tLWNvbnN0cnVjdG9ycy5odG1sCmluZGV4IGYyNDk5ZGMwNDY1Mzc3Mzc2ZmE4ODZiMmNiYjNi
ZDBhOWQ4NmU0MjEuLjc5NTNiNjFhMjVkMjEwNzM3YmJjZjZhNDA4MTZlMWFmYzUwY2RiZTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwKQEAgLTE4LDcgKzE4
LDYgQEAgdmFyIG9iamVjdHNfZXhjZXB0aW9uID0gWwogICAgICdDREFUQVNlY3Rpb24nLAogICAg
ICdEb2N1bWVudFR5cGUnLAogICAgICdFbGVtZW50JywKLSAgICAnRW50aXR5UmVmZXJlbmNlJywK
ICAgICAnRXZlbnRUYXJnZXQnLAogICAgICdIVE1MRG9jdW1lbnQnLAogICAgICdOb2RlJywKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDc4OGNhYmU1ZDAzYjUxZmZiYzQwZmYzNjNjYWQ2Y2EwNmFiODVkNDkuLjY5MmJhNzA1ZmVk
ODNiMjk1YTI3MDhkNWU3MzYwNmIwZTZhMDFhMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dApAQCAtNDcsOSArNDcsNiBAQCBQQVNT
IGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpLmNvbnN0cnVj
dG9yKSBpcyAnQ0RBVEFTZWN0aQogUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVh
dGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykpIGlzICdFbGVtZW50JwogUEFTUyBqc1dyYXBwZXJD
bGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykuX19wcm90b19f
KSBpcyAnRWxlbWVudFByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLmNvbnN0cnVjdG9yKSBpcyAnRWxlbWVudENv
bnN0cnVjdG9yJwotUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlS
ZWZlcmVuY2UoKSkgaXMgJ0VudGl0eVJlZmVyZW5jZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1s
RG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkuX19wcm90b19fKSBpcyAnRW50aXR5UmVm
ZXJlbmNlUHJvdG90eXBlJwotUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoKS5jb25zdHJ1Y3RvcikgaXMgJ0VudGl0eVJlZmVyZW5jZUNvbnN0cnVj
dG9yJwogUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oKSkgaXMgJ1Byb2Nlc3NpbmdJbnN0cnVjdGlvbicKIFBBU1MganNXcmFwcGVyQ2xh
c3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuX19wcm90b19fKSBp
cyAnUHJvY2Vzc2luZ0luc3RydWN0aW9uUHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJDbGFzcyh4
bWxEb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKS5jb25zdHJ1Y3RvcikgaXMg
J1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkNvbnN0cnVjdG9yJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93
cmFwcGVyLWNsYXNzZXMuaHRtbAppbmRleCA4YmU4ZmUzYmYwYzIzYzAzNGEwNzc4MjM1NTBkNjcz
ZGZlMTBlZGM3Li5mZjgxZDhmOTA1MDQ0MGRjMWUzMWQzMDgzMzU1YzY2MzEyOWM5NjMyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMuaHRtbApAQCAtOTAsNyArOTAsNiBA
QCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB0ZXN0KCJ4bWxEb2N1bWVudCIsICJEb2N1bWVudCIp
OwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpIiwgIkNEQVRBU2Vj
dGlvbiIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4Jywg
J3gnKSIsICJFbGVtZW50Iik7Ci0gICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCkiLCAiRW50aXR5UmVmZXJlbmNlIik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkiLCAiUHJvY2Vzc2luZ0luc3RydWN0aW9uIik7CiAK
ICAgICBkZWJ1ZygnJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAppbmRl
eCA2M2UyNDJhMmZiZTMyYjlkNmI4M2Q1OGNlYWQ1NjQ5YjQ5Njc0MWJiLi5kNTkzYTVlYWJhOGE4
ZTA4ZTAxYzA5YzIyNDMxOGRlOTA4NjBjZDhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1l
eHBlY3RlZC50eHQKQEAgLTE4Nyw3ICsxODcsNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcgog
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBC
bG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBh
Y2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJv
dG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIFRoaXMgdGVzdCBjaGVja3Mg
Y3Jvc3MtZnJhbWUgYWNjZXNzIHNlY3VyaXR5IChyZGFyOi8vcHJvYmxlbS81MjUxMzA5KS4KIAog
CkBAIC0yMzUsNyArMjM0LDYgQEAgUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRG9jdW1lbnRG
cmFnbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0
V2luZG93LkRvY3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNh
bkdldCgndGFyZ2V0V2luZG93LkVsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQ
QVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHknKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQg
aXMuCi1QQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQg
YmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FdmFsRXJyb3In
KSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5F
dmVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2lu
ZG93LkhUTUxBbmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
Z2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXQuaHRtbAppbmRleCAzODAwYTBiNWU4MTI0Yjk0NWQ4MTAzOTBjM2U5YjVmOTBlNTc4
MzhkLi5jY2U1ZjdhM2YyMzQxY2FiN2ZmMDljYmU3NWIzYjJlNjlkZWE2Y2Y5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXQuaHRtbApAQCAtMjAsNyArMjAsNiBAQAogICAgICAgICAgICAgIkRvY3VtZW50VHlw
ZSIsIAogICAgICAgICAgICAgIkVsZW1lbnQiLCAKICAgICAgICAgICAgICJFbnRpdHkiLCAKLSAg
ICAgICAgICAgICJFbnRpdHlSZWZlcmVuY2UiLCAKICAgICAgICAgICAgICJFdmFsRXJyb3IiLCAK
ICAgICAgICAgICAgICJFdmVudCIsIAogICAgICAgICAgICAgIkhUTUxBbmNob3JFbGVtZW50Iiwg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1l
LWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAppbmRleCBlNDU4NWFiZDUxNjA1YzFlMmQ5ZThiOWYyY2Q4
OGFiY2Q1Y2FkMmUwLi4xZWE1YmRjNmQ5NDk3NDZlMWU5YzI1MzU2NjQ2NWM0MGIzOWI4NWM5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5
RGVzY3JpcHRvci1leHBlY3RlZC50eHQKQEAgLTc4LDcgKzc4LDYgQEAgUEFTUzogY2FuR2V0RGVz
Y3JpcHRvcih0YXJnZXRXaW5kb3csICdEb2N1bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBp
cy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRG9jdW1lbnRGcmFnbWVu
dCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFy
Z2V0V2luZG93LCAnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFT
UzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbGVtZW50Jykgc2hvdWxkIGJlICdm
YWxzZScgYW5kIGlzLgotUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbnRp
dHlSZWZlcmVuY2UnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNj
cmlwdG9yKHRhcmdldFdpbmRvdywgJ0V2YWxFcnJvcicpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBp
cy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRXZlbnQnKSBzaG91bGQg
YmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywg
J0hUTUxBbmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbAppbmRl
eCBkZWEwMTdkNjc4YTE1ZmRkMTNjNzdhOTJhZTUxNWM3MDhlN2JkM2FjLi4zMDY2YjNhMmFmY2I1
ZDVkMjM5MWZjZjQ5OWQxZTM0OTQ2NTE1NDEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1l
LWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbApAQCAtMTksNyArMTksNiBAQAog
ICAgICAgICAgICAgIkRvY3VtZW50RnJhZ21lbnQiLCAKICAgICAgICAgICAgICJEb2N1bWVudFR5
cGUiLCAKICAgICAgICAgICAgICJFbGVtZW50IiwgCi0gICAgICAgICAgICAiRW50aXR5UmVmZXJl
bmNlIiwgCiAgICAgICAgICAgICAiRXZhbEVycm9yIiwgCiAgICAgICAgICAgICAiRXZlbnQiLCAK
ICAgICAgICAgICAgICJIVE1MQW5jaG9yRWxlbWVudCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1
dC1leHBlY3RlZC50eHQKaW5kZXggNDdmZDU0MzlkMzdkNzZkMTA2NTQ5YTcxOWJiNWFjOTIyOTIz
Y2JlYy4uODViMGFiYTFiMTViNDZlYWViYTA2MGZiZDU1ZTI5MjlmNDEyNTJkNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE1NDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTUyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQXR0ciBzaG91bGQgYmUgJ1tvYmplY3Qg
QXR0ckNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5DREFUQVNlY3Rp
b24gc2hvdWxkIGJlICdbb2JqZWN0IENEQVRBU2VjdGlvbkNvbnN0cnVjdG9yXScgYW5kIGlzLgog
QUxFUlQ6IFBBU1M6IHdpbmRvdy5DaGFyYWN0ZXJEYXRhIHNob3VsZCBiZSAnW29iamVjdCBDaGFy
YWN0ZXJEYXRhQ29uc3RydWN0b3JdJyBhbmQgaXMuCkBAIC0xNCw4ICsxNCw2IEBAIEFMRVJUOiBQ
QVNTOiB3aW5kb3cuRE9NRXhjZXB0aW9uIHNob3VsZCBiZSAnW29iamVjdCBET01FeGNlcHRpb25D
b25zdHJ1Y3Rvcl0nIGFuCiBBTEVSVDogUEFTUzogd2luZG93LkRPTUltcGxlbWVudGF0aW9uIHNo
b3VsZCBiZSAnW29iamVjdCBET01JbXBsZW1lbnRhdGlvbkNvbnN0cnVjdG9yXScgYW5kIGlzLgog
QUxFUlQ6IFBBU1M6IHdpbmRvdy5ET01QYXJzZXIgc2hvdWxkIGJlICdbb2JqZWN0IERPTVBhcnNl
ckNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FbGVtZW50IHNob3Vs
ZCBiZSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBhbmQgaXMuCi1BTEVSVDogUEFTUzog
d2luZG93LkVudGl0eSBzaG91bGQgYmUgJ3VuZGVmaW5lZCcgYW5kIGlzLgotQUxFUlQ6IFBBU1M6
IHdpbmRvdy5FbnRpdHlSZWZlcmVuY2Ugc2hvdWxkIGJlICdbb2JqZWN0IEVudGl0eVJlZmVyZW5j
ZUNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FdmFsRXJyb3Igc2hv
dWxkIGJlICdmdW5jdGlvbiBFdmFsRXJyb3IoKSB7ICAgIFtuYXRpdmUgY29kZV19JyBhbmQgaXMu
CiBBTEVSVDogUEFTUzogd2luZG93LkV2ZW50IHNob3VsZCBiZSAnW29iamVjdCBFdmVudENvbnN0
cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCBz
aG91bGQgYmUgJ1tvYmplY3QgSFRNTEFuY2hvckVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4K
QEAgLTI3NCwxNSArMjcyLDE1IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMjA6IEJsb2NrZWQg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmCiBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTIxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4K
IENPTlNPTEUgTUVTU0FHRTogbGluZSAxMjI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyMzogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI0OiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Np
bmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xz
LCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
MzM6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEzNTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTMyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzNjogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM3
OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJv
bSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4g
UHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FH
RTogbGluZSAxMzg6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEzOTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3Qg
bWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQwOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQg
cG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNDE6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0Mjog
QmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20g
YWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFBy
b3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTQzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNP
TEUgTUVTU0FHRTogbGluZSAxNDQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ2OiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KQEAgLTMyMSw3ICszMTksNyBAQCBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTc4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3OTogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlu
cywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTgwOiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9j
b2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxODE6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE4MjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODU6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NjogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNz
aW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29s
cywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTg3OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIg
ZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
Ii4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KQEAgLTMzNyw3ICsz
MzUsNyBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk2OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5
NzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTk4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxOTk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMDogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjAyOiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMDM6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDIwNDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjA1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KQEAgLTM3MCw3ICszNjgsNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjMxOiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDIzMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0
Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjMzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMzQ6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzNTogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3QgY2hlY2tzIGNy
b3NzLWZyYW1lIGFjY2VzcyBzZWN1cml0eSBvZiB3aW5kb3cgYXR0cmlidXRlIHNldHRlcnMgKHJk
YXI6Ly9wcm9ibGVtLzUzMjY3OTEpLgogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKaW5kZXggYWMw
MjRmODU1YWE4NjZlNjcxN2I5N2ZmYjFiNzQ5NTZiM2M1ZDczYy4uYTJiNmI4NzBhMThjNzM5MjU0
OGMxZWE5ZDg1OTIyNzgyOWNiNmUwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKQEAgLTUwLDcg
KzUwLDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJn
ZXRXaW5kb3csICJET01JbXBsZW1lbnRhdGlvbiIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5
KHRhcmdldFdpbmRvdywgIkRPTVBhcnNlciIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRh
cmdldFdpbmRvdywgIkVsZW1lbnQiKTsKLSAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRX
aW5kb3csICJFbnRpdHlSZWZlcmVuY2UiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJn
ZXRXaW5kb3csICJFdmFsRXJyb3IiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRX
aW5kb3csICJFdmVudCIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywg
IkhUTUxBbmNob3JFbGVtZW50Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1p
ZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwKaW5kZXggMzZmODI2YmQ5MDVmMDU3NzgwYjhiNjM4Njk2
Zjc5MzdlNWM0Yzg4Zi4uYjY3ZGZjMzlmYjAyM2IwYzk3N2VlYzgzYzk2NjYxYjhjMTk4ZTBkNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jv
c3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3Qu
aHRtbApAQCAtNTgsOCArNTgsNiBAQAogICAgICAgICB2YXIgRE9NSW1wbGVtZW50YXRpb25PbGQg
PSB3aW5kb3cuRE9NSW1wbGVtZW50YXRpb247CiAgICAgICAgIHZhciBET01QYXJzZXJPbGQgPSB3
aW5kb3cuRE9NUGFyc2VyOwogICAgICAgICB2YXIgRWxlbWVudE9sZCA9IHdpbmRvdy5FbGVtZW50
OwotICAgICAgICB2YXIgRW50aXR5T2xkID0gd2luZG93LkVudGl0eTsKLSAgICAgICAgdmFyIEVu
dGl0eVJlZmVyZW5jZU9sZCA9IHdpbmRvdy5FbnRpdHlSZWZlcmVuY2U7CiAgICAgICAgIHZhciBF
dmFsRXJyb3JPbGQgPSB3aW5kb3cuRXZhbEVycm9yOwogICAgICAgICB2YXIgRXZlbnRPbGQgPSB3
aW5kb3cuRXZlbnQ7CiAgICAgICAgIHZhciBIVE1MQW5jaG9yRWxlbWVudE9sZCA9IHdpbmRvdy5I
VE1MQW5jaG9yRWxlbWVudDsKQEAgLTI2MSw4ICsyNTksNiBAQAogICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5ET01JbXBsZW1lbnRhdGlvbiIsICJET01JbXBsZW1lbnRhdGlvbk9sZCIpOwog
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5ET01QYXJzZXIiLCAiRE9NUGFyc2VyT2xkIik7
CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkVsZW1lbnQiLCAiRWxlbWVudE9sZCIpOwot
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbnRpdHkiLCAiRW50aXR5T2xkIik7Ci0gICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LkVudGl0eVJlZmVyZW5jZSIsICJFbnRpdHlSZWZlcmVu
Y2VPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZhbEVycm9yIiwgIkV2YWxF
cnJvck9sZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FdmVudCIsICJFdmVudE9s
ZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCIsICJI
VE1MQW5jaG9yRWxlbWVudE9sZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4
cGVjdGVkLnR4dAppbmRleCA5YmVhMmEzZDY2NjZkMGQ5MzZjMTBjZmIxMTY5MWExOTZiNGFkYjgz
Li45YmFjODc2YjQwOWE0NzhkZGVmZWJiMDk1ZjY2NDBkNDQyZGMwM2I0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9oaXN0b3JpY2Fs
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dApAQCAtOSw3ICs5LDcgQEAgUEFTUyBI
aXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTUxvY2F0b3IKIFBBU1Mg
SGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01PYmplY3QgCiBQQVNT
IEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NVXNlckRhdGEgCiBQ
QVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRW50aXR5IAotRkFJ
TCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eVJlZmVyZW5j
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdIgorUEFT
UyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eVJlZmVyZW5j
ZSAKIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFdmVudEV4
Y2VwdGlvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0i
CiBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogTmFtZUxpc3Qg
CiBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogTm90YXRpb24g
CkBAIC0xOSw5ICsxOSw3IEBAIFBBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSBy
ZW1vdmVkOiBSYW5nZUV4Y2VwdGlvbgogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0
IGJlIHJlbW92ZWQ6IGNyZWF0ZUNEQVRBU2VjdGlvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAo
dW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biBjcmVhdGVDREFUQVNlY3Rpb24oKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIKLUZBSUwgSGlz
dG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBjcmVhdGVFbnRpdHlSZWZlcmVu
Y2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3Qg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkgewot
ICAgIFtuYXRpdmUgY29kZV0KLX0iCitQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3Qg
YmUgcmVtb3ZlZDogY3JlYXRlRW50aXR5UmVmZXJlbmNlIAogRkFJTCBIaXN0b3JpY2FsIERPTSBm
ZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IHhtbEVuY29kaW5nIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChvYmplY3QpIG51bGwKIEZBSUwgSGlz
dG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxTdGFuZGFsb25lIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChib29sZWFu
KSBmYWxzZQogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IHht
bFZlcnNpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1
dCBnb3QgKG9iamVjdCkgbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAyZDhk
YzhlMTk4NTk3NDU4YzkzMTRkZWRiZWUyN2NmMzYxZDZlMzhkLi43OTg5NTgyYWIzZWI4YWMwNTBh
M2Q4YTc1ZGFlYzQyNjhiZGVkN2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAt
MzEzLDExICszMTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVy
ZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdn
ZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5j
ZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52
YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5o
YXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBiYWFiNDk4MjBmNGRhOWYzMzkzMGIyYjc5
OTQyZTkzMzEwNWU4ZjcwLi40NTdlOTkwMTRkNDM4OTMyY2E0NjMyNzg0YzliNmNhNTc4OWQyZTI3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CkBAIC0zMTMsMTEgKzMxMyw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0
cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVy
dHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVu
dCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVu
dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CmluZGV4IGVkYjc1NTA3NjI5Yzdj
MGRjNjIwN2JmMDQ5NDYwYTRkNTc4OTRhODIuLjgyYjAyNGE4NjZhNDBkMzI5MWM2NWM3M2FmY2Y5
YmMyNDNhOTc0NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2Vk
ZW5jZS1leHBlY3RlZC50eHQKQEAgLTExNCw4ICsxMTQsNiBAQCBQQVNTIHdpblsnRG9jdW1lbnRU
eXBlJ10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNT
IHdpblsnRG9jdW1lbnRUeXBlJ10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3Jd
JyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1
Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENv
bnN0cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVyZW5jZSddID09ICdbb2Jq
ZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0
eVJlZmVyZW5jZSddID09ICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMg
dHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBp
cyB0cnVlCiBQQVNTIHdpblsnRXZlbnRFeGNlcHRpb24nXSA9PSAnW29iamVjdCBFdmVudEV4Y2Vw
dGlvbkNvbnN0cnVjdG9yXScgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0
dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGEwYzZmZjRmODc5YzU5OWM2MDA3ZTY3ZTY5NWIy
MWE1NjJlMjY5OWYuLmU2ODFhNDZhNGY4ZTZlZDVlMjRiNzdhMTc5MzBhYzUxNWU4ZTY0ZDUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAg
LTMxOCwxMSArMzE4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUK
LVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZl
cmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgn
Z2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50Jyku
dmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50Jyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBjMTVi
NjY1YTBmZmFiNjc2YzBmZThkOTc1ZjgzOGI3N2Q4OTg5YmM4Li5lMTg0Mjk1YzBlYzEzYzgwM2Qz
YmY1OTUwNDE3OGFjZjUzY2E2ZWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4
LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1l
bnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVu
dCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1
ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlS
ZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJh
YmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJy
b3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vy
cm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVy
dHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
eW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMDBmYmM0YjAyOGQ5MmU2YWRm
YTY2Mzc2ZThlZTJiZjY3ZWM0ZmNmMy4uOTRkNzgxMjYyOTBkMGIzZjAzN2E0OTY1ZmE1ZGY3ZGEz
ZGMyODc1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICszMDgsNiBAQCBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3Bl
cnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vs
ZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVy
ZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093
blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVk
LnR4dAppbmRleCA5M2RhZGMwMzFmNjJmMzY2M2E4OTY2MDNhM2RhYjE4ZWUyNjQzMmE0Li4xNjJm
NDhmYzU2Yjk4NzliM2E5YjEzNmI4YjcxYjJlZjlhODdhMmVlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5j
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CkBAIC0xMTQsOCArMTE0
LDYgQEAgUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNv
bnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0
IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9
PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVu
dCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydF
bnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0n
IGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlS
ZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2Jq
ZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29i
amVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50RXhjZXB0aW9u
J10gPT0gJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0nIGlzIHRydWUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMt
b2JqYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3Jh
cHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CmluZGV4IGMyY2ZmZTE0YmQzZTIwY2FlNTMz
ZmM5MGNkN2E3NWRkZWY1NGFiMTcuLjdjMmIxNzMxMTQ0NWYzYzdkNDM3MGU4NGMwNzY4MWZkMzky
ZjJjZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFw
cGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dApAQCAtMjEsNyAr
MjEsNiBAQCBYTUwKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudCkgaXMgJ0RPTURv
Y3VtZW50JwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2Vj
dGlvbigpKSBpcyAnRE9NQ0RBVEFTZWN0aW9uJwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERv
Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKSkgaXMgJ0RPTUVsZW1lbnQnCi1Q
QVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkp
IGlzICdET01FbnRpdHlSZWZlcmVuY2UnCiBQQVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1l
bnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpIGlzICdET01Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24nCiAKIEV2ZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbAppbmRleCAwYmJiNDQ1YWNmNzVh
ODA5OTI0YmJjMjI4OTY4MjI4NDZjM2EzYzFiLi5mMzU5ZDk0M2QwOGQwYzAwOWNjYjY3YWI3MjJl
ODY4YmQ2MWJhZTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9k
b20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbApAQCAtMTAzLDcgKzEwMyw2IEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIHRlc3QoInhtbERvY3VtZW50IiwgIkRvY3VtZW50Iik7
CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlQ0RBVEFTZWN0aW9uKCkiLCAiQ0RBVEFTZWN0
aW9uIik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAn
eCcpIiwgIkVsZW1lbnQiKTsKLSAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZl
cmVuY2UoKSIsICJFbnRpdHlSZWZlcmVuY2UiKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKSIsICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iKTsKIAog
ICAgIGRlYnVnKCcnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dAppbmRleCAwNDRmMTRmMGU1Mjk2ZTY3NWQ4YjQzYzhiNDNkODAyZDI2OTc3MTE4
Li5jMWE0MjJmMGExNTU3NzE4YzFhN2VkOWYxMDRmODhjZDk1MGE1NjE0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMw
OCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1l
bnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFs
dWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVy
YWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVy
cm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
cnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDA4M2EwNzFmNmNlNmViNWVkMjFjZDA0NjAxYTNhYmU3NjE5
MzFmYmYuLjZlYmFhYWY2Y2NjYTAxMGE5MmZmNzA3ZjE5MjQxZGM4NTU3Y2VmOGEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTIzOCwx
MSArMjM4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2Un
KS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0Jykg
aXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUg
aXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261663</attachid>
            <date>2015-09-21 10:45:15 -0700</date>
            <delta_ts>2015-09-21 11:31:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150921104459.patch</filename>
            <type>text/plain</type>
            <size>449171</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDllOThhOWFlODM1MzIw
ZDE0YzQ1MWUzMzJlOTBhOGE1NmYzYmZhNC4uY2MyMDUwY2QwMjQ4MTBkMTNjNjM1MDM1NzExMjQ3
OWUwMTI4MDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wOS0xOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKIDIwMTUtMDktMjEgIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vvay5v
aEBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIG1lZGlhIGNvbnRyb2xzIGRvZXMgbm90
IHNob3cgdXAgd2hlbiBwbGF5aW5nIHZpZGVvIGZpbmlzaGVzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJhY2Fk
ZDA4ZmJmZjQ4YmY5NTlkNDg4NTEwZGE3ZDE3ZDc4YzIyOTMuLjNkZDkwMGEwZTJkNjA2NDdkOTVh
OTE1NmQ0NzA0YWY0YWE2NTUzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0w
OS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3Vw
cG9ydCBmb3IgbGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIGhhbmRsaW5nIEVudGl0
eVJlZmVyZW5jZSBOb2Rlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL21hYy9XS0RPTUludGVybmFscy5tbToKKyAgICAgICAgKFdlYktpdDo6V0tET01Ob2RlQ2xh
c3MpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6aXNBc3Npc3RhYmxlRWxlbWVudCk6CisKIDIwMTUtMDkt
MjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAg
ICBSZW1vdmUgWEhSX1RJTUVPVVQgY29tcGlsYXRpb24gZ3VhcmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLmNwcAppbmRleCBkM2ViNTE3MzFlMDYwMDJlMTM0MzhkYWNiZjU3ZWE0N2FkZGM0MzFjLi4z
NDNhODAxMjVmNDJmOGQ5ODI4NzBjMzdiNDUyNDE0YmY4OGY1Yzg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCkBAIC0xNDksNyArMTQ5LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5j
cHAiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDU1MuY3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudC5j
cHAiCi0jaW5jbHVkZSAiSlNFbnRpdHlSZWZlcmVuY2UuY3BwIgogI2luY2x1ZGUgIkpTRXJyb3JF
dmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEV4Y2Vw
dGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCA3NzRjYTA2NDhhN2I1YjkwMGRmNGEwMGUzZjZlMzFiZjljMDcyYzA4Li4zMmZh
MTZmMDMxMDU5OWI4OGUwOTAyOWJhMzFjYmE5MGUyNGZkZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE4MzIsMjAgKzE4MzIsNiBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAi
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk4NDUs
NyArMTk4MzEsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRE9NVVJMLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNET01XaW5kb3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0
dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQo
UGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJy
b3JFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0V2ZW50RXhjZXB0aW9uLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggMjYz
MzM3N2E5N2UxZDI3MzRjMGJlNmIwYTBhOGMwMWVmNTE2ODYzZi4uYjUwNWYyNDNlN2Y5OTk1OTVk
YmY0YWQ5MTQ0ZWQ4OWM3MjI2NGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNTI1NCw5ICs1MjU0LDYg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vs
ZW1lbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5jcHAiPgotICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAiPgogICAgICAgPEZpbHRlcj5E
ZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTI2NDMsOSArMTI2
NDAsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRWxlbWVudC5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJj
ZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vycm9yRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPkRl
cml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTA1ZWEwZDExM2Q1
NWY3ZGVlMjYzNGI1ZGNmYWExMzc2YjM0NTgzYy4uMGUwMDBkNjNmYzFhMTFmNGU4YTZiY2YyMDY0
NjcyMjFiNjlmZGRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzU4OSw4ICszNTg5LDYgQEAKIAkJOTNGOUI2NTgwQkEwRjM1
RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNjU1MEJBMEYzNUUwMDg1NDA2
NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggKi87IH07CiAJCTkzRjlCNkUwMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2REUwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVu
dC5jcHAgKi87IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRGMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKLQkJOTNGOUI3NzQwQkE1RkREQzAw
ODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0
eVJlZmVyZW5jZS5jcHAgKi87IH07Ci0JCTkzRjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0Vu
dGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi87
IH07CiAJCTkzRjlCN0EwMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc5RTBCQTYw
MzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovOyB9OwogCQk5M0Y5QjdBMTBCQTYw
MzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRB
U2VjdGlvbi5oICovOyB9OwogCQk5M0ZEQUZDQTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5z
ZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwOTYwLDggKzEw
OTU4LDYgQEAKIAkJOTNGOUI2NTUwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVt
ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTENh
bnZhc0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5
QjZERTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29tbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudGl0eVJlZmVyZW5j
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjlCNzczMEJBNUZEREMwMDg1
NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0VudGl0eVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDREFUQVNlY3Rpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RjBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNl
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDREFUQVNlY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREFGQzkwQjExMzA3NDAwRTI3NDZG
IC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MDA0Nyw4ICsyMDA0Myw2IEBACiAJCQkJQkM2NDY0OTYxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9N
U3RyaW5nTWFwLmggKi8sCiAJCQkJNjVERjMxRTUwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVu
dC5jcHAgKi8sCiAJCQkJNjVERjMxRTYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5oICov
LAotCQkJCTkzRjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAg
Ki8sCi0JCQkJOTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmgg
Ki8sCiAJCQkJRkU4MERBNUYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwICov
LAogCQkJCUZFODBEQTYwMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggKi8sCiAJ
CQkJRkU4MERBNjEwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uY3BwICovLApAQCAt
MjU1NzUsNyArMjU1NjksNiBAQAogCQkJCUZENzg2OEJBMTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUZBMDlEMUND
NjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFERUM3OEY4MThF
RTUzMDgwMDEzMTVDMiAvKiBKU0VsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAotCQkJCTkz
RjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkVDRjdBREQxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEU4Mzc4RTA5Rjg1RDRGMDBCODVBRTQgLyogSlNFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTEzNyw3ICsyOTEzMCw2IEBACiAJCQkJRkQ3ODY4Qjkx
MzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk2NURGMzFGOTA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDMkVENTU1MEM2QjlCRDMwMDkyMEJGRiAvKiBKU0VsZW1lbnRDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGOUI3NzQwQkE1RkREQzAwODU0MDY0IC8qIEpT
RW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFQ0Y3QURDMTAxNjJCMzgw
MDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjNENDYxNDgx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0RTgzNzg0MDlGODVEMUMwMEI4NUFFNCAvKiBKU0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0
ZS5jcHAKaW5kZXggNTljZjY4YzEyOTBhN2FiMDI2ZTMxZTMyNjFiMDY4YTQzZDM2NjA5My4uYWNh
MWY5OGFjOTk0ODkwYzcwMjg3NmIxYThjZWI3MGI5N2JmYWJlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCkBAIC00Nyw3
ICs0Nyw2IEBACiAjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0RE9NRG9jdW1lbnRUeXBlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUVs
ZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRW50aXR5UmVmZXJlbmNlUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUV2ZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dERPTUV2ZW50VGFyZ2V0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUZpbGVQcml2YXRl
LmgiCkBAIC05Myw4ICs5Miw2IEBAIFdlYktpdERPTU5vZGUqIHdyYXAoTm9kZSogbm9kZSkKICAg
ICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwVGV4dChkb3duY2FzdDxUZXh0Pihub2Rl
KSkpOwogICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICByZXR1cm4g
V0VCS0lUX0RPTV9OT0RFKHdyYXBDREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9u
Kj4obm9kZSkpKTsKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAg
ICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRW50aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0
PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lO
U1RSVUNUSU9OX05PREU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcFByb2Nl
c3NpbmdJbnN0cnVjdGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2Rl
KSkpOwogICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5kZXggZGVlZTY3NWE5MjUxMjEwNTRmMTcyMzI3ZTUz
NmFhNGRmOGU1Zjc1OS4uNzNiMjEwYWE4ZDFlYTA1Y2YxZTE5ZjVlNGYzNTFmMWUwNWViOTkwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0zMyw3
ICszMyw2IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50VHlwZS5oIgogI2luY2x1ZGUgIkVudGl0eS5oIgotI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5j
ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MQXVkaW9FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKQEAgLTUxLDcgKzUwLDYgQEAK
ICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudEZyYWdtZW50Lmgi
CiAjaW5jbHVkZSAiSlNEb2N1bWVudFR5cGUuaCIKLSNpbmNsdWRlICJKU0VudGl0eVJlZmVyZW5j
ZS5oIgogI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1l
bnQuaCIKICNpbmNsdWRlICJKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKQEAgLTIwOSw5
ICsyMDcsNiBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGNyZWF0ZVdyYXBwZXJJbmxp
bmUoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iagogI2VuZGlmCiAgICAgICAgICAgICAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIERvY3VtZW50RnJh
Z21lbnQsIG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5U
SVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JB
UFBFUihnbG9iYWxPYmplY3QsIEVudGl0eVJlZmVyZW5jZSwgbm9kZSk7Ci0gICAgICAgICAgICBi
cmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9N
X1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBOb2RlLCBub2RlKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NLm1tCmluZGV4IDhlMWZiZTFmY2Q3YzM3YzQ2ZTkwYzMzY2MwNDQyMzRhMWFl
NDg3ODIuLmU4Mzk2NWRiYzM0ZjIxYzNjZTMxMTYwZDQ3NWE2ZDI4MmNhM2ZiZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCkBAIC0zMTEsOCArMzExLDYgQEAgQ2xhc3Mga2l0Q2xh
c3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKICAgICAgICAgICAgIHJldHVybiBbRE9NVGV4dCBjbGFz
c107CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAg
ICAgICAgICAgcmV0dXJuIFtET01DREFUQVNlY3Rpb24gY2xhc3NdOwotICAgICAgICBjYXNlIFdl
YkNvcmU6Ok5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgICAgIHJldHVybiBb
RE9NRW50aXR5UmVmZXJlbmNlIGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQ
Uk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTVByb2Nl
c3NpbmdJbnN0cnVjdGlvbiBjbGFzc107CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q09N
TUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCmluZGV4IGFjN2I2NmY5OTcwNWQ4OTllZWNlM2MyODk0
Zjg5ZTFmODA5ZDE1ZjguLjk2ZDdlZWQzYjBmZjIxNTU5YWRjMzM1ZTIwYTRjNDU5ZGYyMWJkYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQXR0ci5jcHAKQEAgLTE0OCwxMyArMTQ4LDcgQEAgUmVmPE5vZGU+IEF0dHI6OmNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlv
bikKIC8vIERPTSBTZWN0aW9uIDEuMS4xCiBib29sIEF0dHI6OmNoaWxkVHlwZUFsbG93ZWQoTm9k
ZVR5cGUgdHlwZSkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBU
RVhUX05PREU6Ci0gICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQorICAgIHJldHVybiB0eXBlID09IFRFWFRfTk9ERTsKIH0KIAogdm9pZCBBdHRy
OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0F0dHIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKaW5kZXggMTI0
YzZkN2EyYWEyODY4MzBmY2JhMjk2Mjg4ODhiNzIwMjI5OTI4Ni4uZjZmMzYyMDc3MTdhMzVjMmIy
NDNmYWFhOTY1ZGMzYWI3MmYyNmJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0
dHIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzOwogCi0vLyBBdHRyIGNhbiBoYXZlIFRleHQgYW5kIEVudGl0eVJl
ZmVyZW5jZSBjaGlsZHJlbgorLy8gQXR0ciBjYW4gaGF2ZSBUZXh0IGNoaWxkcmVuCiAvLyB0aGVy
ZWZvcmUgaXQgaGFzIHRvIGJlIGEgZnVsbGJsb3duIE5vZGUuIFRoZSBwbGFuCiAvLyBpcyB0byBk
eW5hbWljYWxseSBhbGxvY2F0ZSBhIHRleHRjaGlsZCBhbmQgc3RvcmUgdGhlCiAvLyByZXN1bHRp
bmcgbm9kZXZhbHVlIGluIHRoZSBhdHRyaWJ1dGUgdXBvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwCmluZGV4IGM5NjM0YjBjZTEwMDM0ZTkyYjVjNTE2ZTEzMmQwYzQzNDMxN2E1MGQu
LjNmNGZlMGY4MDM3NGM4MzcwMDk5MGVkNGI0NWE0YTlkMjE5NDliYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTE4MCw3ICsxODAsNiBAQCBzdGF0aWMgaW5saW5lIEV4
Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5v
ZGUmIG5ldwogewogICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUu
CiAgICAgaWYgKChuZXdDaGlsZC5pc0VsZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQuaXNUZXh0Tm9k
ZSgpKSAmJiBuZXdQYXJlbnQuaXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3
UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOwogICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0Rv
Y3VtZW50VHlwZU5vZGUoKSk7CiAgICAgICAgIEFTU0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3
UGFyZW50LCBuZXdDaGlsZCkpOwogICAgICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RF
bGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKQEAgLTE5Myw4ICsxOTIsNiBAQCBzdGF0aWMg
aW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQ
YXJlbnQsIE5vZGUmIG5ldwogICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQu
aXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAgcmV0dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUjsKICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwg
bmV3UGFyZW50KSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIApAQCAt
MjA5LDcgKzIwNiw2IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENo
aWxkKENvbnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3CiAKIHN0YXRpYyBpbmxpbmUg
Ym9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBu
ZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NF
UlQoIW5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKICAgICBBU1NFUlQoIW5ld1BhcmVudC5p
c0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQ
YXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgaWYgKG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQp
KSB7CkBAIC01MjEsMTIgKzUxNyw2IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQo
Tm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMgPSAwOwogCi0gICAg
Ly8gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgdGhpcyBub2RlIGlzIHJl
YWRvbmx5LgotICAgIGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAg
ICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9m
IHRoaXMgbm9kZS4KICAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAg
ICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDhk
OWRjZDljMjQzYTdlNjcwZjVmMjdhZGY3NTM0NzNlZjZiMjY0My4uYjkzZTA1MzU3MmNlOTEyMTc1
YzNjM2VmYjkzYjllOTM1OTNkNmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC05MDks
MTcgKzkwOSwxMCBAQCBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBEb2N1bWVudDo6Y3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKGNvbnN0IFN0cmluZwogICAgIHJldHVybiBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb246OmNyZWF0ZSgqdGhpcywgdGFyZ2V0LCBkYXRhKTsKIH0KIAotUmVmUHRy
PEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBT
dHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4g
RG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKLSAgICBpZiAoIWlzVmFsaWROYW1lKG5hbWUpKSB7Ci0gICAgICAgIGVjID0g
SU5WQUxJRF9DSEFSQUNURVJfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0g
ICAgaWYgKGlzSFRNTERvY3VtZW50KCkpIHsKLSAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VS
UjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBFbnRpdHlSZWZl
cmVuY2U6OmNyZWF0ZSgqdGhpcywgbmFtZSk7CisgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmPFRleHQ+IERvY3VtZW50OjpjcmVhdGVFZGl0
aW5nVGV4dE5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtOTQ0LDcgKzkzNyw2IEBAIFJlZlB0
cjxOb2RlPiBEb2N1bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wgZGVl
cCwgRXhjZXB0aW9uQ29kZSYKICAgICBjYXNlIEVMRU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRf
Tk9ERToKICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZF
UkVOQ0VfTk9ERToKICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBj
YXNlIENPTU1FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC05
NzQsMTEgKzk2Niw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQ
dHI8Tm9kZT4gc291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCi0gICAgaWYgKHNvdXJjZS0+aXNSZWFkT25seU5vZGUoKSkgewotICAgICAg
ICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgfQotCiAgICAgRXZlbnRRdWV1ZVNjb3BlIHNjb3BlOwogCiAgICAgc3dpdGNoIChz
b3VyY2UtPm5vZGVUeXBlKCkpIHsKQEAgLTE3MTAsNTIgKzE2OTcsNTIgQEAgUmVmPFJhbmdlPiBE
b2N1bWVudDo6Y3JlYXRlUmFuZ2UoKQogICAgIHJldHVybiBSYW5nZTo6Y3JlYXRlKCp0aGlzKTsK
IH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihO
b2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYm
IGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykK
K1JlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSog
cm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0
ZXIsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBjcmVhdGVOb2RlSXRl
cmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGVjKTsKK30KKworUmVm
UHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlw
ZUVycm9yOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIE5vZGVJ
dGVyYXRvcjo6Y3JlYXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICByZXR1cm4gTm9kZUl0ZXJhdG9yOjpjcmVhdGUocm9v
dCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJh
dG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2Rl
JiBlYykKK1JlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3Io
Tm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKLSAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6
bW92ZShmaWx0ZXIpLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Io
cm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9y
PiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1
bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewotICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0
ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIDB4RkZG
RkZGRkYsIG51bGxwdHIsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6
OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0
cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNp
Z25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290
LCAweEZGRkZGRkZGLCBudWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVl
V2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBlYyk7CiB9CiAKLVJl
ZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9v
bCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVl
V2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0
ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJl
bmNlcyk7Ci19Ci0KLVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtl
cihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVy
PiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVX
YWxrZXIocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGZhbHNlLCBlYyk7Cisg
ICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUo
ZmlsdGVyKSk7CiB9CiAKIFJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdh
bGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIG51
bGxwdHIsIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hh
dFRvU2hvdywgbnVsbHB0ciwgZWMpOwogfQogCiBSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6
OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAg
cmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZmFsc2Us
IGVjKTsKKyAgICByZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCAweEZGRkZGRkZGLCBudWxs
cHRyLCBlYyk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMo
KQpAQCAtMzM1Nyw3ICszMzQ0LDYgQEAgYm9vbCBEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChO
b2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNh
c2UgRE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX05PREU6Ci0gICAg
Y2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2Fz
ZSBYUEFUSF9OQU1FU1BBQ0VfTk9ERToKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzM4NSw3
ICszMzcxLDYgQEAgYm9vbCBEb2N1bWVudDo6Y2FuQWNjZXB0Q2hpbGQoY29uc3QgTm9kZSYgbmV3
Q2hpbGQsIGNvbnN0IE5vZGUqIHJlZkNoaWxkLCBBY2NlcHQKICAgICBjYXNlIEFUVFJJQlVURV9O
T0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfTk9E
RToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToK
ICAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDNhYzk1MTc5MzlhYjRlZDY0YWNhMTQzMTcyNTcwMzBhOTEz
NDI5ZWMuLjc4MWVmMjBiZDMzNzc5M2NjODMzYzNjMWNhYmE1MGEwYzFiODhlMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC01MzYsMTIgKzUzNiwxMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBSZWY8UmFuZ2U+IGNyZWF0ZVJhbmdlKCk7CiAKLSAgICBSZWZQdHI8Tm9kZUl0ZXJh
dG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBF
eGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJh
dG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0
ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAg
UmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9v
dCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRy
PE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAotICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wg
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxUcmVl
V2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRv
U2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9y
IE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIo
Tm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4m
JiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYp
OwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIEV4
Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDFjYzAwMDczY2MwNDk3
NWYyOTcxZmZkZDAzZjBlNjVmMGY1MDk1ZWIuLmYyNmVjZWY4NmJjMzNhNWZlNjI4MTY1YmQ0ZDQw
NDg5NzVjZjVjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMzksNyArMzksMTAgQEAK
ICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBOZXdPYmplY3QsIFJhaXNlc0V4Y2Vw
dGlvbl0gUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihb
RGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB0YXJnZXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBkYXRh
KTsKICAgICBbTmV3T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEF0dHIgY3JlYXRlQXR0cmlidXRl
KFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIFtOZXdP
YmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVy
ZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKworI2lm
IGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DIHx8
IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0VfR09CSkVDVAorICAgIFtSYWlz
ZXNFeGNlcHRpb25dIEVudGl0eVJlZmVyZW5jZSBjcmVhdGVFbnRpdHlSZWZlcmVuY2UoW0RlZmF1
bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSk7CisjZW5kaWYKIAogI2lmIGRl
ZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAg
W0ltcGxlbWVudGVkQXM9Z2V0RWxlbWVudHNCeVRhZ05hbWVGb3JPYmpDXSBOb2RlTGlzdCBnZXRF
bGVtZW50c0J5VGFnTmFtZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB0
YWduYW1lKTsKQEAgLTkyLDE0ICs5NSwyMyBAQAogCiAgICAgLy8gRE9NIExldmVsIDIgVHJhbnZl
cnNhbCBhbmQgUmFuZ2UgKERvY3VtZW50VHJhdmVyc2FsIGludGVyZmFjZSkKIAotICAgIFtPYmpD
TGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBOb2Rl
SXRlcmF0b3IgY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9vdCwKKyNpZiBkZWZpbmVkKExBTkdV
QUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQyB8fCBkZWZpbmVkKExBTkdV
QUdFX0dPQkpFQ1QpICYmIExBTkdVQUdFX0dPQkpFQ1QKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQ
YXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb25dIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRlcmF0
b3IoTm9kZSByb290LAogICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cg
PSAweEZGRkZGRkZGLAogICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIsCiAgICAg
ICAgIG9wdGlvbmFsIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7Ci0gICAgW09iakNM
ZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIFRyZWVX
YWxrZXIgY3JlYXRlVHJlZVdhbGtlcihOb2RlIHJvb3QsCisgICAgW09iakNMZWdhY3lVbm5hbWVk
UGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSBUcmVlV2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIo
Tm9kZSByb290LAogICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cgPSAw
eEZGRkZGRkZGLAogICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIsCiAgICAgICAg
IG9wdGlvbmFsIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisjZWxzZQorICAgIFtS
YWlzZXNFeGNlcHRpb24sIE5ld09iamVjdF0gTm9kZUl0ZXJhdG9yIGNyZWF0ZU5vZGVJdGVyYXRv
cihOb2RlIHJvb3QsCisgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdyA9
IDB4RkZGRkZGRkYsCisgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0ZXI/IGZpbHRlcik7CisgICAg
W1JhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBUcmVlV2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIo
Tm9kZSByb290LAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cgPSAw
eEZGRkZGRkZGLAorICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIpOworI2VuZGlm
CiAKICAgICAvLyBET00gTGV2ZWwgMiBBYnN0cmFjdCBWaWV3cyAoRG9jdW1lbnRWaWV3IGludGVy
ZmFjZSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4IGY5YjM4
YTBiZDI4ZThlM2M2MDkzNGFmZjFhNjAwNTkyNzA5MDNmZWMuLmE2NzAwMmM0YmY5ODc0NGEyOTUz
ZjQ5ZTI2ZTYxYmEwY2FkMzcxYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHAKQEAgLTYwLDcgKzYwLDYgQEAgYm9vbCBEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVB
bGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgICAgIGNhc2UgQ09NTUVOVF9OT0RFOgog
ICAgICAgICBjYXNlIFRFWFRfTk9ERToKICAgICAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6
Ci0gICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKaW5kZXggYmQzMDc0ZDFlODM3NGIwYjc3N2I2ZTcwNDNiNDc5YmI1Njg0
NmU1NC4uNThmYzgwNDY3ODI0MmY0ZGRiNjI2Y2JhYTY5ODQ4MGYxYTQ4ZmNmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcApAQCAtMTc1NSw3ICsxNzU1LDYgQEAgYm9vbCBFbGVtZW50OjpjaGlsZFR5
cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgY2FzZSBDT01NRU5UX05PREU6CiAg
ICAgY2FzZSBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgY2FzZSBDREFUQV9TRUNU
SU9OX05PREU6Ci0gICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50
aXR5UmVmZXJlbmNlLmNwcAppbmRleCA3ZTkxYTQ2MmRhODIwOWQ5MjJjNDVkYzg0YzQxYTA4NTVh
ZDZiZTFhLi5lNTgyNGYxMDhiYjZmNTQzYjVhMDc2N2FmZTFmYTg0YTJkNDgxZGMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcApAQCAtMjUsMzAgKzI1LDkgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgRW50aXR5UmVmZXJlbmNlOjpFbnRpdHlSZWZlcmVu
Y2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGVudGl0eU5hbWUpCitpbmxpbmUg
RW50aXR5UmVmZXJlbmNlOjpFbnRpdHlSZWZlcmVuY2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBTdHJpbmcmKQogICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCkKLSAgICAsIG1fZW50aXR5
TmFtZShlbnRpdHlOYW1lKQogewogfQogCi1SZWY8RW50aXR5UmVmZXJlbmNlPiBFbnRpdHlSZWZl
cmVuY2U6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZW50aXR5TmFt
ZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbnRpdHlSZWZlcmVuY2UoZG9jdW1lbnQs
IGVudGl0eU5hbWUpKTsKLX0KLQotU3RyaW5nIEVudGl0eVJlZmVyZW5jZTo6bm9kZU5hbWUoKSBj
b25zdAotewotICAgIHJldHVybiBtX2VudGl0eU5hbWU7Ci19Ci0KLU5vZGU6Ok5vZGVUeXBlIEVu
dGl0eVJlZmVyZW5jZTo6bm9kZVR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBFTlRJVFlfUkVG
RVJFTkNFX05PREU7Ci19Ci0KLVJlZjxOb2RlPiBFbnRpdHlSZWZlcmVuY2U6OmNsb25lTm9kZUlu
dGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKLXsKLSAg
ICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBtX2VudGl0eU5hbWUpOwotfQotCiB9IC8v
IG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5j
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCmluZGV4IDg2ZGZlYjM5
ODI1YjM0NTBlNzUzNTkyNTA2ODUxMTBiM2FmMGNhOGYuLjE4YzJlYzFhZmNlNTcwZTgwZTg2NWEw
ODQ1YmFiZDg4NjZmOTYxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKQEAg
LTI2LDE4ICsyNiw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRW50aXR5UmVm
ZXJlbmNlIGZpbmFsIDogcHVibGljIENvbnRhaW5lck5vZGUgewotcHVibGljOgotICAgIHN0YXRp
YyBSZWY8RW50aXR5UmVmZXJlbmNlPiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGVu
dGl0eU5hbWUpOwotCitjbGFzcyBFbnRpdHlSZWZlcmVuY2UgOiBwdWJsaWMgQ29udGFpbmVyTm9k
ZSB7CiBwcml2YXRlOgogICAgIEVudGl0eVJlZmVyZW5jZShEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYgZW50aXR5TmFtZSk7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25p
bmdPcGVyYXRpb24pIG92ZXJyaWRlOwotCi0gICAgU3RyaW5nIG1fZW50aXR5TmFtZTsKIH07CiAK
IH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZl
cmVuY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKaW5kZXgg
NmQwNTM1ZjliYzFkYWE3OTE3ODMxZWZkYmU2YWJkMDdhZTliN2RiYS4uZWZmOTVhMDNlM2E0ZTJm
ZDM2YjJlMjE4YzYwOTY0ODM4Y2M2ZTdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VudGl0eVJlZmVyZW5jZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVy
ZW5jZS5pZGwKQEAgLTE3LDggKzE3LDEyIEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KICAqLwogCisjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0Vf
T0JKRUNUSVZFX0MgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JK
RUNUCisKIFsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBKU0dlbmVyYXRlVG9KU09iamVj
dAogXSBpbnRlcmZhY2UgRW50aXR5UmVmZXJlbmNlIDogTm9kZSB7CiB9OwogCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAppbmRleCA0MzYyZDY1NmRjNDdmZDY0MzM1YjQ2ODYxNGJlNzM2NTg4MTMwMmJh
Li5kZWYyNGNlNjcwOTU1NjY0YmNiYTEzNTA0NzE2ZmM0MTdjYWY2MzM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCkBAIC0xMDMsNyArMTAzLDYgQEAgdm9pZCBOb2RlOjpkdW1wU3RhdGlzdGljcygpCiAgICAg
c2l6ZV90IHRleHROb2RlcyA9IDA7CiAgICAgc2l6ZV90IGNkYXRhTm9kZXMgPSAwOwogICAgIHNp
emVfdCBjb21tZW50Tm9kZXMgPSAwOwotICAgIHNpemVfdCBlbnRpdHlSZWZlcmVuY2VOb2RlcyA9
IDA7CiAgICAgc2l6ZV90IGVudGl0eU5vZGVzID0gMDsKICAgICBzaXplX3QgcGlOb2RlcyA9IDA7
CiAgICAgc2l6ZV90IGRvY3VtZW50Tm9kZXMgPSAwOwpAQCAtMTY4LDEwICsxNjcsNiBAQCB2b2lk
IE5vZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICAgICAgICAgICAgICArK2NvbW1lbnROb2RlczsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2Ug
RU5USVRZX1JFRkVSRU5DRV9OT0RFOiB7Ci0gICAgICAgICAgICAgICAgKytlbnRpdHlSZWZlcmVu
Y2VOb2RlczsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGNhc2UgRU5USVRZX05PREU6IHsKICAgICAgICAgICAgICAgICArK2VudGl0eU5vZGVzOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjExLDcgKzIwNiw2IEBAIHZvaWQgTm9kZTo6ZHVt
cFN0YXRpc3RpY3MoKQogICAgIHByaW50ZigiICBOdW1iZXIgb2YgVGV4dCBub2RlczogJXp1XG4i
LCB0ZXh0Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgQ0RBVEFTZWN0aW9uIG5vZGVz
OiAlenVcbiIsIGNkYXRhTm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgQ29tbWVudCBu
b2RlczogJXp1XG4iLCBjb21tZW50Tm9kZXMpOwotICAgIHByaW50ZigiICBOdW1iZXIgb2YgRW50
aXR5UmVmZXJlbmNlIG5vZGVzOiAlenVcbiIsIGVudGl0eVJlZmVyZW5jZU5vZGVzKTsKICAgICBw
cmludGYoIiAgTnVtYmVyIG9mIEVudGl0eSBub2RlczogJXp1XG4iLCBlbnRpdHlOb2Rlcyk7CiAg
ICAgcHJpbnRmKCIgIE51bWJlciBvZiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbm9kZXM6ICV6dVxu
IiwgcGlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBEb2N1bWVudCBub2RlczogJXp1
XG4iLCBkb2N1bWVudE5vZGVzKTsKQEAgLTM4NCwxNCArMzc4LDggQEAgU3RyaW5nIE5vZGU6Om5v
ZGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12b2lkIE5vZGU6OnNl
dE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmIC8qbm9kZVZhbHVlKi8sIEV4Y2VwdGlvbkNvZGUmIGVj
KQordm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiAvKm5vZGVWYWx1ZSovLCBF
eGNlcHRpb25Db2RlJikKIHsKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJh
aXNlZCB3aGVuIHRoZSBub2RlIGlzIHJlYWRvbmx5Ci0gICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkp
IHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KICAgICAvLyBCeSBkZWZhdWx0LCBzZXR0aW5nIG5vZGVWYWx1ZSBoYXMg
bm8gZWZmZWN0LgogfQogCkBAIC04OTAsMTEgKzg3OCw2IEBAIHZvaWQgTm9kZTo6Y2hlY2tTZXRQ
cmVmaXgoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAg
ICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KICAgICAvLyBGSVhNRTogUmFpc2UgTkFNRVNQQUNFX0VSUiBpZiBwcmVmaXggaXMgbWFs
Zm9ybWVkIHBlciB0aGUgTmFtZXNwYWNlcyBpbiBYTUwgc3BlY2lmaWNhdGlvbi4KIAogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgbm9kZU5hbWVzcGFjZVVSSSA9IG5hbWVzcGFjZVVSSSgpOwpAQCAt
MTQyMiw3ICsxNDA1LDYgQEAgc3RhdGljIHZvaWQgYXBwZW5kVGV4dENvbnRlbnQoY29uc3QgTm9k
ZSogbm9kZSwgYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5lcywgYm9vbCYKICAgICAgICAgfQogICAg
ICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNh
c2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
RlJBR01FTlRfTk9ERToKICAgICAgICAgaXNOdWxsU3RyaW5nID0gZmFsc2U7CiAgICAgICAgIGZv
ciAoTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0U2libGluZygpKSB7CkBAIC0xNDU4LDcgKzE0NDAsNiBAQCB2b2lkIE5vZGU6OnNldFRl
eHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgRUxFTUVOVF9OT0RFOgogICAgICAgICBjYXNlIEFU
VFJJQlVURV9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAg
ICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOiB7CiAgICAgICAgICAgICBSZWY8Q29udGFp
bmVyTm9kZT4gY29udGFpbmVyKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKSk7CiAgICAg
ICAgICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRhaW5lcik7CkBAIC0x
NDc4LDcgKzE0NTksNiBAQCB2b2lkIE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYg
dGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIEVsZW1lbnQqIE5vZGU6OmFuY2VzdG9yRWxlbWVu
dCgpIGNvbnN0CiB7Ci0gICAgLy8gSW4gdGhlb3J5LCB0aGVyZSBjYW4gYmUgRW50aXR5UmVmZXJl
bmNlIG5vZGVzIGJldHdlZW4gZWxlbWVudHMsIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBub3Qgc3Vw
cG9ydGVkLgogICAgIGZvciAoQ29udGFpbmVyTm9kZSogYW5jZXN0b3IgPSBwYXJlbnROb2RlKCk7
IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnROb2RlKCkpIHsKICAgICAgICAg
aWYgKGlzPEVsZW1lbnQ+KCphbmNlc3RvcikpCiAgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8
RWxlbWVudD4oYW5jZXN0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMDRlMzhkMjViNDNiNDBmYmQ1YjM2
NGNmNDMzZTc3YzNjMTA3MzVjNC4uYTJmYzQzODg5NDBlMjJjZjc1YmY1OTViNzQ4OWRkODM5MmQ1
MDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCkBAIC0xMjUsNyArMTI1LDYgQEAgcHVibGljOgogICAgICAgICBB
VFRSSUJVVEVfTk9ERSA9IDIsCiAgICAgICAgIFRFWFRfTk9ERSA9IDMsCiAgICAgICAgIENEQVRB
X1NFQ1RJT05fTk9ERSA9IDQsCi0gICAgICAgIEVOVElUWV9SRUZFUkVOQ0VfTk9ERSA9IDUsCiAg
ICAgICAgIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSA9IDcsCiAgICAgICAgIENPTU1FTlRf
Tk9ERSA9IDgsCiAgICAgICAgIERPQ1VNRU5UX05PREUgPSA5LApAQCAtMTM0LDYgKzEzMyw3IEBA
IHB1YmxpYzoKICAgICAgICAgWFBBVEhfTkFNRVNQQUNFX05PREUgPSAxMywKICAgICB9OwogICAg
IGVudW0gRGVwcmVjYXRlZE5vZGVUeXBlIHsKKyAgICAgICAgRU5USVRZX1JFRkVSRU5DRV9OT0RF
ID0gNSwKICAgICAgICAgRU5USVRZX05PREUgPSA2LAogICAgICAgICBOT1RBVElPTl9OT0RFID0g
MTIsCiAgICAgfTsKQEAgLTQxNyw3ICs0MTcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luU2hh
ZG93VHJlZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNJblNoYWRvd1RyZWVGbGFnKTsgfQog
ICAgIGJvb2wgaXNJblRyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoc3RhdGljX2Nh
c3Q8Tm9kZUZsYWdzPihJbkRvY3VtZW50RmxhZyB8IElzSW5TaGFkb3dUcmVlRmxhZykpOyB9CiAK
LSAgICBib29sIGlzUmVhZE9ubHlOb2RlKCkgY29uc3QgeyByZXR1cm4gbm9kZVR5cGUoKSA9PSBF
TlRJVFlfUkVGRVJFTkNFX05PREU7IH0KICAgICBib29sIGlzRG9jdW1lbnRUeXBlTm9kZSgpIGNv
bnN0IHsgcmV0dXJuIG5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RFOyB9CiAgICAgdmly
dHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdW5zaWduZWQgY291bnRDaGlsZE5vZGVzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlSXRlcmF0b3IuY3BwCmluZGV4IDQ4YTBhMTkyYTdiZWUwY2ZmMjA5ZDVlYTRkODljOWMzMWEw
NGM3MDkuLmRhOWQwMjNiMjVlOGY5ZjJiZjU3YWM4ODEwMzhkNzI1ZDVlMWM2NWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC03Niw4ICs3Niw4IEBAIGJvb2wgTm9kZUl0ZXJh
dG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRvUHJldmlvdXMoTm9kZSogcm9vdCkKICAgICByZXR1cm4g
bm9kZTsKIH0KIAotTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxOb2RlPiBy
b290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBm
aWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5vZGVJdGVyYXRvckJh
c2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlS
ZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxOb2RlPiBy
b290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBm
aWx0ZXIpCisgICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6
Om1vdmUoZmlsdGVyKSkKICAgICAsIG1fcmVmZXJlbmNlTm9kZShyb290KCksIHRydWUpCiB7CiAg
ICAgcm9vdCgpLT5kb2N1bWVudCgpLmF0dGFjaE5vZGVJdGVyYXRvcih0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlSXRlcmF0b3IuaAppbmRleCA5NzE5Mjc0YTNkYTFiOTc1NDA2YWE3MWNjNWU5ZWFlNWYz
YzdkMzM1Li40ZjE1MDdkZTAzYWMzMDNlNWYxODBiMzMxMTI2ODA3NGM2OTgwODlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5oCkBAIC0zNyw5ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIE5vZGVJdGVyYXRvciA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1
YmxpYyBSZWZDb3VudGVkPE5vZGVJdGVyYXRvcj4sIHB1YmxpYyBOb2RlSXRlcmF0b3JCYXNlIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUl0ZXJhdG9yPiBjcmVhdGUoUGFz
c1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8
Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKKyAgICAg
ICAgc3RhdGljIFJlZjxOb2RlSXRlcmF0b3I+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3RO
b2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRl
cikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUl0ZXJh
dG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUl0ZXJh
dG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkpOwogICAgICAgICB9
CiAgICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIApAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcyk7CisgICAgICAgIE5vZGVJdGVyYXRvcihQYXNzUmVmUHRyPE5vZGU+LCB1bnNp
Z25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKIAogICAgICAgICBz
dHJ1Y3QgTm9kZVBvaW50ZXIgewogICAgICAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCmluZGV4IDEyMDI1ZGU2YjhiNDk0NzNlZmQ3Zjc4NDAx
MWY0MWY3NjEzMDdiNjcuLjIzMTEyZDk5NDNmNTkzMzdhZmYxNWRhY2M3YzFlZTViN2E1Zjc5Y2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCkBAIC0yNiw3ICsyNiw5IEBACiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyB3aGF0VG9TaG93OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlRmlsdGVy
IGZpbHRlcjsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9P
QkpFQ1RJVkVfQwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4cGFuZEVudGl0eVJl
ZmVyZW5jZXM7CisjZW5kaWYKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByZWZlcmVuY2VO
b2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBvaW50ZXJCZWZvcmVSZWZlcmVu
Y2VOb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA1MmUyZjE5MzIxNjdhZmM4NWE1MTlkZTUw
OWZkNTFiYWYxNjA5NDkzLi44YzFlMmIwZDgyNDA3Y2RlMjMwNmFmZjM2YjE1YWE0OTE3NGEzNGY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTU3Miw3ICs1NzIsNiBAQCBzdGF0aWMgaW5saW5lIHVu
c2lnbmVkIGxlbmd0aE9mQ29udGVudHNJbk5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgcmV0dXJu
IGRvd25jYXN0PENoYXJhY3RlckRhdGE+KCpub2RlKS5sZW5ndGgoKTsKICAgICBjYXNlIE5vZGU6
OkVMRU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2Ug
Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9E
RToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICBjYXNlIE5vZGU6OkRP
Q1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC03MzMsNyArNzMyLDYgQEAgUmVmUHRyPE5vZGU+IFJh
bmdlOjpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwgUGFz
c1JlZlB0cjwKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CiAg
ICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZF
UkVOQ0VfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgY2FzZSBOb2Rl
OjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9O
T0RFOgpAQCAtODU2LDEzICs4NTQsNiBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2RlKFBhc3NSZWZQ
dHI8Tm9kZT4gcHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNlZCBpZiBh
biBhbmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVyIGJvdW5kYXJ5LXBvaW50IG9mCi0gICAgLy8g
dGhlIFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBpZiAoY29udGFpbmVkQnlSZWFkT25seSgpKSB7
Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCiAgICAgLy8gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBSYWlzZWQgaWYgdGhl
IGNvbnRhaW5lciBvZiB0aGUgc3RhcnQgb2YgdGhlIFJhbmdlIGlzIG9mIGEgdHlwZSB0aGF0CiAg
ICAgLy8gZG9lcyBub3QgYWxsb3cgY2hpbGRyZW4gb2YgdGhlIHR5cGUgb2YgbmV3Tm9kZSBvciBp
ZiBuZXdOb2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBjb250YWluZXIuCiAKQEAgLTEwMjIsNyAr
MTAxMyw2IEBAIE5vZGUqIFJhbmdlOjpjaGVja05vZGVXT2Zmc2V0KE5vZGUqIG4sIGludCBvZmZz
ZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5U
X0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAg
ICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JF
RkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOiB7
CiAgICAgICAgICAgICBpZiAoIW9mZnNldCkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKQEAgLTEwNTIsNyArMTA0Miw2IEBAIHZvaWQgUmFuZ2U6OmNoZWNrTm9kZUJBKE5vZGUqIG4s
IEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9E
RToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgICAgIGNhc2Ug
Tm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAg
ICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05B
TUVTUEFDRV9OT0RFOgpAQCAtMTA3Miw3ICsxMDYxLDYgQEAgdm9pZCBSYW5nZTo6Y2hlY2tOb2Rl
QkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGNhc2UgTm9kZTo6
Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAg
ICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZ
X1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJ
T05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgIGNhc2UgTm9k
ZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTQ5LDcgKzExMzcsNiBAQCB2b2lkIFJhbmdl
OjpzZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAg
ICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBO
b2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6
Ci0gICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAg
ICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAgICAgICAg
Y2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVT
UEFDRV9OT0RFOgpAQCAtMTE2NSw3ICsxMTUyLDYgQEAgdm9pZCBSYW5nZTo6c2VsZWN0Tm9kZShO
b2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2FzZSBOb2RlOjpDT01N
RU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgogICAgICAg
ICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVG
RVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9O
T0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpY
UEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyMDQsNyArMTE5MCw2IEBAIHZvaWQgUmFuZ2U6OnNl
bGVjdE5vZGVDb250ZW50cyhOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAg
ICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgICAgIGNh
c2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9O
T0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAg
ICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAg
ICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpYUEFUSF9O
QU1FU1BBQ0VfTk9ERToKQEAgLTEyNDMsMjAgKzEyMjgsMTIgQEAgdm9pZCBSYW5nZTo6c3Vycm91
bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJlbnQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKICAgICAgICAgY2Fz
ZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgot
ICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBO
b2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVY
VF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJS
OiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVyIG9mIGVpdGhlciBib3VuZGFyeS1wb2lu
dCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9ubHkuCi0gICAgaWYgKGNvbnRhaW5lZEJ5
UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIFJhaXNlIGEgSElFUkFSQ0hZX1JFUVVF
U1RfRVJSIGlmIHN0YXJ0Q29udGFpbmVyKCkgZG9lc24ndCBhY2NlcHQgY2hpbGRyZW4gbGlrZSBu
ZXdQYXJlbnQuCiAgICAgTm9kZSogcGFyZW50T2ZOZXdQYXJlbnQgPSAmc3RhcnRDb250YWluZXIo
KTsKIApAQCAtMTMzMCwzNiArMTMwNywxNiBAQCB2b2lkIFJhbmdlOjpjaGVja0RlbGV0ZUV4dHJh
Y3QoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGlmICghY29tbW9u
QW5jZXN0b3JDb250YWluZXIoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKGFjdGlvbiAh
PSBFeHRyYWN0KQorICAgICAgICByZXR1cm47CisKICAgICBOb2RlKiBwYXN0TGFzdCA9IHBhc3RM
YXN0Tm9kZSgpOwogICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Tm9kZSgpOyBuICE9IHBhc3RMYXN0
OyBuID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbikpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9u
bHlOb2RlKCkpIHsKLSAgICAgICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJS
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGFjdGlvbiA9
PSBFeHRyYWN0ICYmIG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFKSB7
CisgICAgICAgIGlmIChuLT5pc0RvY3VtZW50VHlwZU5vZGUoKSkgewogICAgICAgICAgICAgZWMg
PSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICB9Ci0KLSAgICBpZiAoY29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0gICAgICAgIGVjID0g
Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotfQot
Ci1ib29sIFJhbmdlOjpjb250YWluZWRCeVJlYWRPbmx5KCkgY29uc3QKLXsKLSAgICBmb3IgKE5v
ZGUqIG4gPSAmc3RhcnRDb250YWluZXIoKTsgbjsgbiA9IG4tPnBhcmVudE5vZGUoKSkgewotICAg
ICAgICBpZiAobi0+aXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIH0KLSAgICBmb3IgKE5vZGUqIG4gPSAmZW5kQ29udGFpbmVyKCk7IG47IG4gPSBuLT5wYXJl
bnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkpCi0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCiBOb2RlKiBSYW5n
ZTo6Zmlyc3ROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5n
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggYzhmMjk5M2FkZDBkMTU5ZmFj
NTJiZGFjN2YxY2M5MzBiZGU1ZjZlZS4uNGMxMTE2MjBhNzJkNzE3ODU4MjU1Y2Q5ZTAzNTFlMzRl
ZWJlMjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTE2MSw3ICsxNjEsNiBAQCBwcml2YXRlOgogCiAg
ICAgTm9kZSogY2hlY2tOb2RlV09mZnNldChOb2RlKiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tOb2RlQkEoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKSBj
b25zdDsKLSAgICBib29sIGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSBjb25zdDsKIAogICAgIGVudW0g
QWN0aW9uVHlwZSB7IERlbGV0ZSwgRXh0cmFjdCwgQ2xvbmUgfTsKICAgICB2b2lkIGNoZWNrRGVs
ZXRlRXh0cmFjdChBY3Rpb25UeXBlLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAKaW5kZXggMDRjZWY1Y2ExZDE0ODM3YjI3YWY3Zjc0MjlkNjdkMmZjYjcwZjM4Ni4u
NDU1NDdmZWIyNGUyYmJjNTEyYzUyNGRmM2UzNjI3ZWQyZWVmMDc0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmNwcApAQCAtMTA5LDcgKzEwOSw2IEBAIGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09NTUVOVF9OT0RFOgog
ICAgIGNhc2UgVEVYVF9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgIGNh
c2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZh
dWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCmluZGV4
IDc0YTkyOGY3Y2MwMjliNmYzM2NmZGNlNTFhMWYyYTNhMzFmZWRiNTIuLjNjNGE5NTViMTExMDZj
ZGEyMjI4NWE5ZjUyNzE3MDdiMWQ5Yzc3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCkBA
IC0zMCwxOCArMzAsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Ob2RlSXRlcmF0b3JC
YXNlOjpOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZpbHRlciwgYm9vbCBl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFz
ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJl
ZlB0cjxOb2RlRmlsdGVyPiYmIG5vZGVGaWx0ZXIpCiAgICAgOiBtX3Jvb3Qocm9vdE5vZGUpCiAg
ICAgLCBtX3doYXRUb1Nob3cod2hhdFRvU2hvdykKICAgICAsIG1fZmlsdGVyKFdURjo6bW92ZShu
b2RlRmlsdGVyKSkKLSAgICAsIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlcyhleHBhbmRFbnRpdHlS
ZWZlcmVuY2VzKQogewogfQogCiBzaG9ydCBOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2RlKE5v
ZGUqIG5vZGUpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IFRvIGhhbmRsZSBYTUwgcHJvcGVybHkg
d2Ugd291bGQgaGF2ZSB0byBjaGVjayBtX2V4cGFuZEVudGl0eVJlZmVyZW5jZXMuCi0KICAgICAv
LyBUaGUgYml0IHR3aWRkbGluZyBoZXJlIGlzIGRvbmUgdG8gbWFwIERPTSBub2RlIHR5cGVzLCB3
aGljaCBhcmUgZ2l2ZW4gYXMgaW50ZWdlcnMgZnJvbQogICAgIC8vIDEgdGhyb3VnaCAxNCwgdG8g
d2hhdFRvU2hvdyBiaXQgbWFza3MuCiAgICAgaWYgKCEoKCgxIDw8IChub2RlLT5ub2RlVHlwZSgp
IC0gMSkpICYgbV93aGF0VG9TaG93KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJhdmVyc2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgKaW5kZXggZWQ2ZThk
ZGJkMGMyNjYxNWUzMzdhMmU0MmM5YjlkOTM1OGY4ZmRkYS4uZmZiZDU0OWIxZGU4NDg2MDQzZWU0
ZDBiNDIwYTdkZGNhNzQ4ZmE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZl
cnNhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaApAQCAtMzgsMTcgKzM4
LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9kZSogcm9vdCgpIGNvbnN0IHsg
cmV0dXJuIG1fcm9vdC5nZXQoKTsgfQogICAgICAgICB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3co
KSBjb25zdCB7IHJldHVybiBtX3doYXRUb1Nob3c7IH0KICAgICAgICAgTm9kZUZpbHRlciogZmls
dGVyKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXIuZ2V0KCk7IH0KLSAgICAgICAgYm9vbCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbmRFbnRpdHlSZWZlcmVu
Y2VzOyB9CisgICAgICAgIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIE5vZGVJdGVyYXRvckJhc2Uo
UGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZp
bHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAgICAgTm9kZUl0ZXJh
dG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0
cjxOb2RlRmlsdGVyPiYmKTsKICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7
CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290OwogICAgICAgICB1
bnNpZ25lZCBsb25nIG1fd2hhdFRvU2hvdzsKICAgICAgICAgUmVmUHRyPE5vZGVGaWx0ZXI+IG1f
ZmlsdGVyOwotICAgICAgICBib29sIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKaW5kZXgg
YWQwYWNlMTk5YjdkYTY5ZWVjYjIwNDNhMjhjOWVmNDRmYzA2M2Q0Ni4uODc3NDgyYWZmNDdhM2M1
NDM0YWY3NTMyZTZkYzA1M2QxNTEzY2QxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcApA
QCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRyZWVXYWxrZXI6OlRy
ZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJl
bmNlcykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6
bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorVHJlZVdhbGtlcjo6VHJlZVdh
bGtlcihQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cs
IFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKKyAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9v
dE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpKQogICAgICwgbV9jdXJyZW50KHJv
b3QoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCmluZGV4IGJmNjliZGVjZTA5OWJjZDE0
ZGJhZmQ1OGYwMTdjZmJkODdiNTE1NjMuLjIyOGYyM2Q0NzQ2YTIxNTliYjUwYmY2YWE2Mjc4OGI3
MzM2NGZiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaApAQCAtMzcsOSArMzcsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUcmVlV2Fsa2VyIDogcHVibGljIFNjcmlwdFdy
YXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8VHJlZVdhbGtlcj4sIHB1YmxpYyBOb2RlSXRlcmF0
b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3Jl
YXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywg
UmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMp
CisgICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4g
cm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYg
ZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUcmVl
V2Fsa2VyKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50
aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHJlZVdh
bGtlcihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpKTsKICAgICAgICAg
fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICBOb2RlKiBjdXJyZW50Tm9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQpAQCAtNTQsNyArNTQsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUqIG5leHROb2RlKCk7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJl
bmNlcyk7CisgICAgICAgIFRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAgIAogICAgICAgICBO
b2RlKiBzZXRDdXJyZW50KFBhc3NSZWZQdHI8Tm9kZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtl
ci5pZGwKaW5kZXggNDgwOWVlM2Q0ZjFkMWZkNDA4NWUxYTExOTczYThkZjQwMjBlNDcxNS4uYWQ1
Y2I1ZDY0MDMxMGY4YzAzODk2MWY1MTMyZDViZGRkMjM2NmM3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmlkbApAQCAtMjYsNyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2Rl
IHJvb3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdzsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAgICAgIAorI2lmIGRl
ZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKKyNlbmRp
ZgogICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2RlIGN1cnJlbnROb2Rl
OwogCiAgICAgTm9kZSBwYXJlbnROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IDgzNDU1NzIwNDk2YTBkMTBkZDA2ZmMwZWE0ZWViZjQz
OGNiNGVjMjYuLjcxMmFiZmFmOGNlY2NjOGYyNzc2ZWE1MDU4NmRjM2EwMTBhY2Y1N2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC01NzMsNyAr
NTczLDYgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXAoU3RyaW5n
QnVpbGRlciYgcmVzdWx0LCBjb25zdCBOb2RlJiBub2QKICAgICAgICAgYXBwZW5kQ0RBVEFTZWN0
aW9uKHJlc3VsdCwgZG93bmNhc3Q8Q0RBVEFTZWN0aW9uPihub2RlKS5kYXRhKCkpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9kZTo6
RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05P
REU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hQYXRoVXRpbC5jcHAKaW5kZXggNmY2NjRkODQwMWZmNzE3MDUyNjg2MDNlMDQxZWJmNzdi
NThmM2M0NC4uYmVhZGI0ZGYyMGZlOGU0NDBhMjUzNGMyMTk0Y2M4ODdhNjQ3NjY5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoVXRpbC5jcHAKQEAgLTcxLDcgKzcxLDYgQEAgYm9vbCBpc1ZhbGlkQ29udGV4
dE5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNl
IE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1F
TlRfVFlQRV9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6
CiAgICAgICAgICAgICByZXR1cm4gIShub2RlLT5wYXJlbnROb2RlKCkgJiYgbm9kZS0+cGFyZW50
Tm9kZSgpLT5pc0F0dHJpYnV0ZU5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5h
bHMubW0KaW5kZXggZTVjNmYwMmZjOGRjODExMDg4ODNlYWI3NTAyYzUyMzg4OGZlN2VlMy4uZDU3
ZGZjZDNlYmEwZDI3NTQ2OTUxZmVmNGU0ODA0ZGJhMjI3ZTg3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxz
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTUludGVybmFscy5tbQpAQCAtNzYsNyArNzYsNiBAQCBzdGF0aWMgQ2xhc3MgV0tET01O
b2RlQ2xhc3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKICAgICAgICAgcmV0dXJuIFtXS0RPTVRleHQg
Y2xhc3NdOwogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6QVRUUklCVVRFX05PREU6CiAgICAgY2Fz
ZSBXZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgY2FzZSBXZWJDb3JlOjpO
b2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9D
RVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDT01NRU5U
X05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
aW5kZXggODcxMDVhOGI2Y2Y2ZGE5OTkwMWMxMWQ3YWJhMDRhZmVkMmVmODNkMS4uODYzYTg1NGU5
NmU0ZmIyNWM0ZjQwOGE0NTZmMjFjZmI4OTllNGIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjMyNCwxMSArMjMy
NCwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBc3Npc3RhYmxlRWxlbWVudChFbGVtZW50JiBu
b2RlKQogICAgIGlmIChpczxIVE1MU2VsZWN0RWxlbWVudD4obm9kZSkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIGlmIChpczxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKSkKLSAgICAgICAg
cmV0dXJuICFkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKS5pc1JlYWRPbmx5Tm9k
ZSgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4o
bm9kZSkpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVtZW50ID0gZG93bmNh
c3Q8SFRNTElucHV0RWxlbWVudD4obm9kZSk7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGxhdW5k
cnkgbGlzdCBvZiB0eXBlcyBpcyBub3QgYSBnb29kIHdheSB0byBmYWN0b3IgdGhpcy4gTmVlZCBh
IHN1aXRhYmxlIGZ1bmN0aW9uIG9uIEhUTUxJbnB1dEVsZW1lbnQgaXRzZWxmLgotICAgICAgICBy
ZXR1cm4gIWlucHV0RWxlbWVudC5pc1JlYWRPbmx5Tm9kZSgpICYmIChpbnB1dEVsZW1lbnQuaXNU
ZXh0RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQu
aXNEYXRlVGltZUxvY2FsRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNNb250aEZpZWxkKCkgfHwg
aW5wdXRFbGVtZW50LmlzVGltZUZpZWxkKCkpOworICAgICAgICByZXR1cm4gaW5wdXRFbGVtZW50
LmlzVGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZUZpZWxkKCkgfHwgaW5wdXRFbGVt
ZW50LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzTW9udGhGaWVsZCgp
IHx8IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpOwogICAgIH0KICAgICByZXR1cm4gbm9kZS5p
c0NvbnRlbnRFZGl0YWJsZSgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE5MzdjOGVmZTlkMjQzZTkyMTQ2NmRmMGQ5
MmIyNDY4YTgyNjM5MmYuLmY0MWQ0MDI3YWU3YjIyMTNmYzNlMmY1YzU0YzFiMjYxMjcwNWIxNmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wOS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5IEVudGl0eVJlZmVy
ZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBEcm9wIHNldmVyYWwgb3V0ZGF0ZWQgRE9NIGNvbXBsaWFuY2UgdGVzdHMuIFVw
ZGF0ZSAvIFJlYmFzZWxpbmUgb3RoZXJzLgorCiAyMDE1LTA5LTIxICBDaGFuZ1Nlb2sgT2ggIDxj
aGFuZ3Nlb2sub2hAY29sbGFib3JhLmNvbT4KIAogICAgICAgICBbR1RLXSBtZWRpYSBjb250cm9s
cyBkb2VzIG5vdCBzaG93IHVwIHdoZW4gcGxheWluZyB2aWRlbyBmaW5pc2hlcy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGEzNjI5MjdmODY3MWYzNTZhOWY4MWY5MjRmODYwMGJi
ZDJlYzY2OTAuLjJiY2ZlY2NhNTI2OWY4MTUwNGU2NDczMjhkNjRjODZmZmNmYWMzYjAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE1LTA5LTE5ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZv
ciBsZWdhY3kgRW50aXR5UmVmZXJlbmNlIERPTSBOb2RlIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTM0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgVzNDIERPTSB0ZXN0IG5v
dyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dDoKKworMjAxNS0wOS0xOSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIEdldCByaWQgb2YgY3VzdG9tIGJp
bmRpbmdzIGZvciBIVE1MTGlua0VsZW1lbnQuc2l6ZXMgc2V0dGVyCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzODIKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyYThlNDY2MTI0YjE4
ZmY0YzViNjQ3ZWFiZmE3NzAxNTQ0ZDgxZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2I1OWFjMzY2OWEwY2Q2NzZiNDZlNGQ5ZmNiNzRmYjYxNmIxODNh
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6
Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0
bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2Ny
aXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJk
b2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMiPjwvc2NyaXB0
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41
NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+
MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1U
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+
Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
Tm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+
MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
Zi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U3ZTEyNzg0MWVmOTg2ZDYxNjg2
OWEyMjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNo
ZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAlj
YXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91
cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hy
b25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0
YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVz
dCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotLyoqCi0qIAotICAgIFRoZSAiY3JlYXRlRW50aXR5UmVmZXJlbmNlKHRh
Z05hbWUpIiBtZXRob2QgcmFpc2VzIGFuCi0gICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgRE9NRXhj
ZXB0aW9uIGlmIHRoZSBzcGVjaWZpZWQKLSAgIHRhZ05hbWUgY29udGFpbnMgYW4gaW52YWxpZCBj
aGFyYWN0ZXIuIAotCi0qIEBhdXRob3IgTklTVAotKiBAYXV0aG9yIE1hcnkgQnJhZHkKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0nSU5W
QUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9S
RUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0Bu
YW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJTlZB
TElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1Ymxp
Yy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2
YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0
L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJmb28iKTsK
LSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29k
ZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0
aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsK
LQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50
aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiaW52YWxpZF5OYW1lIik7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
SU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQkJfQotCQotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9s
ZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYx
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWFlYmU0MDQ0NzhkOGIwMjViNTFjNmFlM2MzNjY1
ZDVhMzcwMzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEK
LVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1s
IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzYjZkMDljZGFiYzIwYzE3MjY1YWFmMjU5NzZlMzMyNDlmNWQxYjk0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3Jn
L1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjRkMWVjOTc1MzI5YjE3ZDcyM2NlM2MwZTk3OWU1
ZDVmOTBmNDBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0
dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1w
dHkgbmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRo
b3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYn
KS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNv
cmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUn
KS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmlu
Zy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24g
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxk
ZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3Mg
PSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBz
dWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkp
OwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsK
LQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCIiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2Yo
ZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRU
cnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0J
Ci19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTA4MmNiZWFlNGY2ZDg4ZGZkMDY0
ZWRiNGMyZDlhYWI5NjE1YzNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1
ZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0YmI3YmI4YzgxMDljZjU5M2RmZWY4NWJjOWNkMzRhZTRjYjI4OGQxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9o
dG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAx
Ly9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwh
LS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzIGIvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjYzJhZTM1ZTI3YjQ5NDQ4ZDA3ZDYxNjRiNDliMGE5
ODMwY2NmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZh
bHVlMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJY
TUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5z
IGVudGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0
cmdldHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFj
cm9ueW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0g
ICAgICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2Rl
OwotICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFs
cGhhUmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7
Ci0gICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVz
ID0gdGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5n
ZXROYW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50
VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJhbHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0J
Ci0JCWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBo
YSIpOwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICBy
ZXR2YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAg
ICAgdmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZh
bHVlMSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzcwYzdjM2RiMWRmZTc4ZDg3
YTUxYzRiYWQxMTZkMjk4MzhmMWMwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFs
dWUwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3Q6CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZh
bHVlMDMKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI4MDQ2ZjEyZmI4OGIyZWI5Y2U2NmY5NjBmMmIyYmQxOWE0NzdhOWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIg
Ci0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5o
Y19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0
bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJoY19ub2RldmFsdWUwMy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTYxNjcxYWE0YjM4YTY1YTFjZWQ0Zjk1OWE4YjE0NjM1ZjMxMjU4NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzIjsKLSAgIH0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1BbiBlbnRpdHkgcmVmZXJlbmNlIGlzIGNyZWF0ZWQsIHNldE5vZGVW
YWx1ZSBpcyBjYWxsZWQgd2l0aCBhIG5vbi1udWxsIGFyZ3VtZW50LCBidXQgZ2V0Tm9kZVZhbHVl
Ci1zaG91bGQgc3RpbGwgcmV0dXJuIG51bGwuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI0lELUY2OEQwODAKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4
L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0xMUM5ODQ5MAotKi8K
LWZ1bmN0aW9uIGhjX25vZGV2YWx1ZTAzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfbm9kZXZhbHVlMDMiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdOb2RlOwotICAgICAgdmFyIG5ld1ZhbHVl
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
IAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7
Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBuZXdOb2Rl
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURf
RVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJbmV3Tm9kZSA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIGFzc2VydE5vdE51bGwoImNyZWF0
ZWRFbnRSZWZOb3ROdWxsIixuZXdOb2RlKTsKLW5ld1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7
Ci0KLSAgICAgIGFzc2VydE51bGwoImluaXRpYWxseU51bGwiLG5ld1ZhbHVlKTsKLSAgICBuZXdO
b2RlLm5vZGVWYWx1ZSA9ICJUaGlzIHNob3VsZCBoYXZlIG5vIGVmZmVjdCI7Ci0KLSAgICAgIG5l
d1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51bGwoIm51bGxBZnRl
ckF0dGVtcHRlZENoYW5nZSIsbmV3VmFsdWUpOwotICAgIAotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19ub2RldmFsdWUwMygpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVf
Tk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZl
bDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzhjZWMwYTg5ZDRhNWZhY2U2
YjNjYjI0MDM2OTg3ZDc5OGI2Zjg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVh
dG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLVhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJS
OiBTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyBiL0xheW91dFRlc3Rz
L2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JU
RURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmUwMThjOGE2NjMwNTQ5
Njc4M2QxYjc1YWMwZTc0YmYyMjM3ZGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTE5ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLS8vIGV4cG9zZSB0ZXN0IGZ1bmN0aW9uIG5hbWVzCi1mdW5jdGlvbiBleHBvc2VU
ZXN0RnVuY3Rpb25OYW1lcygpCi17Ci1yZXR1cm4gWydYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9O
T1RfU1VQUE9SVEVEX0VSUiddOwotfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFy
IGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0
aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3Vp
dGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBh
c3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhl
cndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBl
eGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0
aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRV
cFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNy
ZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8v
Ci0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2Nz
TG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2Mi
LCAic3RhZmZOUyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBj
YXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8v
Ci0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAg
ICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAg
IFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0v
LyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAg
ICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qICAgICAgIAotICAgICAgVGVz
dCBpZiBYUGF0aEV2YWx1YXRvci5ldmFsdWF0ZSBwcm9wZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRF
RF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBlIExlIEjDqWdhcmV0Ci0qIEBhdXRob3Ig
Qm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwt
My1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV2YWx1YXRvci1ldmFsdWF0ZQotKi8KLWZ1bmN0
aW9uIFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiWFBhdGhFdmFs
dWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAg
dmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRvcjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAg
ICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwotCi0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51
bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVhdG9yID0gY3JlYXRlWFBhdGhFdmFs
dWF0b3IoZG9jKTsKLWNvbnRleHROb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50
aXR5bmFtZSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZXN1bHQgPSB4cEV2YWx1YXRvci5ldmFsdWF0ZSgiLy9mb286YmFyIixjb250ZXh0
Tm9kZSxudWxsTlNSZXNvbHZlciwwLG51bGxSZXN1bHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJS
IixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIFhQ
YXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0
aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YjhiZGMxYzZkNDA5NTk2ZTJhZTQ4NDIwZDdiZTdjZTkx
ODJlOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi08c3ZnIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6bmlzdD0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiLz4NCi08
c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9IlhQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIi8+DQotPHNjcmlwdCB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJzdmd1bml0LmpzIi8+DQotPC9zdmc+
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHBy
ZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQ
UE9SVEVEX0VSUi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEw
YTdkY2M2YTY0MGY3ZjZmMDZjY2JmNGJlMDcwNjA1MjU1OTQ3ODAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUjogU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURf
RVJSLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9u
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhY2Y2MTQ2NjEwOTNjY2ZjYzUxNzhiODY0YTZhMmMwYjI5ZGY4Njk1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcv
bGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0vLyBleHBvc2UgdGVzdCBmdW5jdGlvbiBu
YW1lcwotZnVuY3Rpb24gZXhwb3NlVGVzdEZ1bmN0aW9uTmFtZXMoKQotewotcmV0dXJuIFsnWFBh
dGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSJ107Ci19Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICAgIAotICAgICAgIGlm
IChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRp
b25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBp
biBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9j
dW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQg
d2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVk
LgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0v
KioKLSogICAgICAgCi0gICAgICBUZXN0IGlmIFhQYXRoRXhwcmVzc2lvbi5ldmFsdWF0ZSBwcm9w
ZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBl
IExlIEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5v
cmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV4cHJl
c3Npb24tZXZhbHVhdGUKLSovCi1mdW5jdGlvbiBYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxp
emF0aW9uKGJ1aWxkZXIsICJYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9F
UlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRv
cjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAgICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwot
Ci0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsK
LSAgICAgIHZhciB4cGF0aEV4cHJlc3Npb247Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwg
ImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICB4cEV2YWx1YXRvciA9IGNyZWF0ZVhQYXRoRXZhbHVh
dG9yKGRvYyk7Ci14cGF0aEV4cHJlc3Npb24gPSB4cEV2YWx1YXRvci5jcmVhdGVFeHByZXNzaW9u
KCIvL2ZvbyIsbnVsbE5TUmVzb2x2ZXIpOwotICAgICAgY29udGV4dE5vZGUgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJlbnRpdHluYW1lIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHhwYXRoRXhwcmVzc2lvbi5ldmFs
dWF0ZShjb250ZXh0Tm9kZSwwLG51bGxSZXN1bHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixz
dWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIFhQYXRo
RXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRl
X05PVF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRo
L1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmODZkNzUwYTM5ZGFhZjQ2Y2IwNGQ5ZjEzYTI3MGNmMjU1
Y2NjZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05P
VF9TVVBQT1JURURfRVJSLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOm5pc3Q9Imh0dHA6Ly93d3cu
bmlzdC5nb3YiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+DQot
PHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJYUGF0aEV4
cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMiLz4NCi08c2NyaXB0IHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9InN2Z3VuaXQuanMiLz4NCi08L3N2
Zz4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkMmQ2ZDE3NzBhMTI3ODk5YTIyYWFjZjM2ZmNmOTg2MTI2MDc3M2FmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0
dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmCi1TdGF0dXMJU3VjY2VzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlN2UxMjc4NDFlZjk4NmQ2MTY4
NjlhMjI0MTQ4MTYxYTM5MTcwMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcworKysgL2Rldi9udWxsCkBAIC0x
LDE0MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7
Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVz
dCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlv
bnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4g
IE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQg
dGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVy
aW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAg
IHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8v
ICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAg
ICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAg
Y2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAg
CWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRo
b2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9u
b3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5j
aHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ug
c3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0
ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgr
K2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJjcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
dGFnTmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFMSURfQ0hBUkFDVEVSX0VSUiBET01F
eGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFtZSBjb250YWlucyBhbiBpbnZhbGlk
IGNoYXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBhdXRob3IgTWFyeSBCcmFkeQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2NvbnN0YW50W0BuYW1lPSdJ
TlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4
L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0zOTJCNzVBRQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xl
dmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3JhaXNlcy9leGNlcHRpb25b
QG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJlZm9yZSguLCc6Jyk9J0lO
VkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVi
bGljL3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlvbiBkb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAg
IHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRl
eHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZvbyIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2Ug
ewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRF
bnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJpbnZhbGlkXk5hbWUiKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNl
cHRpb25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkODEwOTgzMzIxMDRmMTBhOWEwNzNhZDAxZTRlNGExM2I4YTFlMzhjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25j
cmVhdGVlbnRyZWYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJp
Y3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEg
IiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRh
ICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFs
cGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFG
aWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNv
bW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hl
YWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVm
ZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0
aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdh
bW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJv
bmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29k
ZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVu
dHJlZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjNiYzk5ODViNWMyYjdmNjAxYTEwZjg0
ZTM5ZTY1MzY4MTM0Njg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVu
dHJlZjEKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVm
MS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNGQxZWM5NzUzMjliMTdkNzIzY2UzYzBlOTc5ZTVkNWY5MGY0MGEyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1D
cmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4gZW1wdHkgbmFtZSBzaG91bGQgY2F1
c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9s
ZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0n
SU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5
OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9s
ZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9u
W0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJ
TlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1
YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hh
cmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAg
ICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0g
InRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZv
byIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihl
eC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRy
dWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVs
c2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBi
YWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCIiKTsKLSAgICAgICAgfQot
CQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVm
aW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19JTlZBTElE
X0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS54aHRt
bCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmODNiYWI5ODRhZTdjYTJhZmViY2EwMjRlYzNkODBiODdkNDhmZTg0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElD
ICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0
ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0
NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5
NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFB
VFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgot
ICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9j
b2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVu
Y2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24g
d2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7
Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMjA5YzNlNDM2NGVkYzQ1NWQ1NGQ0MTUyMDk0ZTJl
NjZhYWQ3NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMgotU3Rh
dHVzCWZhaWx1cmUKLU1lc3NhZ2UJYXR0clZhbHVlMTogYXNzZXJ0RXF1YWxzIGZhaWxlZCwgYWN0
dWFsIFnOsSwgZXhwZWN0ZWQgzrFZzrEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NGNjMmFlMzVlMjdiNDk0NDhkMDdkNjE2NGI0OWIwYTk4MzBjY2YxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMiI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DaGVj
a3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5zIGVudGl0eSByZWZlcmVu
Y2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0yMjE2NjI0
NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0g
ICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfYXR0cmdldHZhbHVlMiIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGFjcm9ueW1MaXN0OwotICAg
ICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0gICAgICB2YXIgdGl0bGVB
dHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIHJl
dHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAgdmFyIGFscGhhUmVmOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGFjcm9ueW1M
aXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3JvbnltIik7Ci0gICAgICB0ZXN0Tm9k
ZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRyaWJ1dGVzID0gdGVzdE5vZGUuYXR0
cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oImNs
YXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9o
dG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAg
ICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJ
YWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgZmly
c3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0gICAgICByZXR2YWwgPSB0aXRsZUF0
dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQpOwotICAgICAgdmFsdWUgPSB0aXRs
ZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiYXR0clZhbHVlMSIsIs6xWc6xIix2
YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBhMmU0MDEzOGM1NTA4NDlkNzlkMTdhODRhOWU0MjdiMjg1ZWVmYjku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RB
VEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0
bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNl
bGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iaGNfYXR0cmdldHZhbHVlMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4
YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJl
ZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29k
ZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZn
YW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4K
LSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFu
YWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFz
IDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0
cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwv
Y29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9u
eW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDdiMWEyNjJmYTg4MTZlOTcxZWMzMDc5NmQ3NjU5
OTRlZjk4ZTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMwotU3RhdHVz
CWVycm9yCi1NZXNzYWdlCUVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUv
aGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNf
bm9kZXZhbHVlMDMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MTY3MWFhNGIz
OGE2NWExY2VkNGY5NTlhOGIxNDYzNWYzMTI1ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hj
X25vZGV2YWx1ZTAzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFuIGVu
dGl0eSByZWZlcmVuY2UgaXMgY3JlYXRlZCwgc2V0Tm9kZVZhbHVlIGlzIGNhbGxlZCB3aXRoIGEg
bm9uLW51bGwgYXJndW1lbnQsIGJ1dCBnZXROb2RlVmFsdWUKLXNob3VsZCBzdGlsbCByZXR1cm4g
bnVsbC4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtRjY4RDA4
MAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgx
MDAxL2xldmVsLW9uZS1jb3JlI0lELTExQzk4NDkwCi0qLwotZnVuY3Rpb24gaGNfbm9kZXZhbHVl
MDMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJoY19ub2RldmFsdWUwMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIG5ld05vZGU7Ci0gICAgICB2YXIgbmV3VmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIu
Y29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBm
YWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIG5ld05vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJlbnQxIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
CX0KLQkKLQkJZWxzZSB7Ci0JCQluZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
ZW50MSIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgiY3JlYXRlZEVudFJlZk5vdE51bGwiLG5ld05v
ZGUpOwotbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgi
aW5pdGlhbGx5TnVsbCIsbmV3VmFsdWUpOwotICAgIG5ld05vZGUubm9kZVZhbHVlID0gIlRoaXMg
c2hvdWxkIGhhdmUgbm8gZWZmZWN0IjsKLQotICAgICAgbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVW
YWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgibnVsbEFmdGVyQXR0ZW1wdGVkQ2hhbmdlIixuZXdW
YWx1ZSk7Ci0gICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
IGhjX25vZGV2YWx1ZTAzKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEyNzY1MWVjODlmYTg4MGJiNTI0Y2EyNGJhZjllMWM1MjgxZmQyZTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NjAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08
IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+
Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+
Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5
OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24x
IFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0g
Im5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgot
XT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imhj
X25vZGV2YWx1ZTAzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9u
Zz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAg
ICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNy
b255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEg
UmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJl
ciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwv
Y29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0
PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJv
Z2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgot
ICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29u
bm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+
MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08
L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzc5M2UwNGNiNjRkOWJlOGFmNWYwNmI3ZTUzODZjZjI0
NmFiYzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYK
LVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4MDRiOTQ4MTUyOGZlMjA4MWZiM2E0ZGMzZDQ5ZDI1ZDA1NWE4ZjIzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTc1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNiI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSBhZG9wdE5vZGUgb24gYSBuZXcgZG9jdW1lbnQg
dG8gYWRvcHQgdGhlIGEgbmV3IEF0dHJpYnV0ZSBub2RlIGhhdmluZyBhIFRleHQgYW5kIGFuIEVu
dGl0eVJlZmVyZW5jZSAKLQljaGlsZC4gIENoZWNrIGlmIHRoaXMgYXR0cmlidXRlIGhhcyBiZWVu
IGFkb3B0ZWQgc3VjY2Vzc2Z1bGx5IGJ5IHZlcmlmeWluZyB0aGUgbm9kZU5hbWUsIG5hbWVzcGFj
ZVVSSSwgcHJlZml4LCAKLQlzcGVjaWZpZWQgYW5kIG93bmVyRWxlbWVudCBhdHRyaWJ1dGVzIG9m
IHRoZSBhZG9wdGVkIG5vZGUuICBBbHNvIHZlcmlmeSB0aGUgb3duZXJEb2N1bWVudCBhdHRyaWJ1
dGUKLQlvZiB0aGUgYWRvcHRlZCBub2RlIGFuZCB0aGUgYWRvcHRlZCBjaGlsZHJlbiBvZiB0aGUg
YXR0cmlidXRlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAw
NDA0MDcvY29yZSNEb2N1bWVudDMtYWRvcHROb2RlCi0qLwotZnVuY3Rpb24gZG9jdW1lbnRhZG9w
dG5vZGUwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgImRvY3VtZW50YWRvcHRub2RlMDYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIHZhciBu
ZXdBdHRyOwotICAgICAgdmFyIG5ld1RleHQ7Ci0gICAgICB2YXIgbmV3RW50UmVmOwotICAgICAg
dmFyIGFkb3B0ZWRBdHRyOwotICAgICAgdmFyIGFkb3B0VGV4dDsKLSAgICAgIHZhciBhZG9wdEVu
dFJlZjsKLSAgICAgIHZhciBub2RlTGlzdDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZh
ciBub2RlTmFtZXNwYWNlVVJJOwotICAgICAgdmFyIG5vZGVQcmVmaXg7Ci0gICAgICB2YXIgYXR0
ck93bmVyRWxlbTsKLSAgICAgIHZhciBpc1NwZWNpZmllZDsKLSAgICAgIHZhciBhZG9wdGVkVGV4
dE5vZGVWYWx1ZTsKLSAgICAgIHZhciBhZG9wdGVkRW50UmVmTm9kZVZhbHVlOwotICAgICAgdmFy
IG51bGxEb2NUeXBlID0gbnVsbDsKLQotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2
YXIgZG9jRWxlbTsKLSAgICAgIHZhciByb290TlM7Ci0gICAgICB2YXIgcm9vdE5hbWU7Ci0gICAg
ICB2YXIgeG1sTlMgPSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIjsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NF
bGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5hbWUgPSBkb2NFbGVtLnRh
Z05hbWU7Ci0KLSAgICAgIHJvb3ROUyA9IGRvY0VsZW0ubmFtZXNwYWNlVVJJOwotCi0gICAgICBk
b21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9tSW1wbC5jcmVhdGVEb2N1
bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAgbmV3QXR0ciA9IGRvYy5j
cmVhdGVBdHRyaWJ1dGVOUyh4bWxOUywieG1sOmxhbmciKTsKLSAgICAgIG5ld1RleHQgPSBkb2Mu
Y3JlYXRlVGV4dE5vZGUoIlRleHQgTm9kZSIpOwotICAgICAgbmV3RW50UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBuZXdBdHRy
LmFwcGVuZENoaWxkKG5ld1RleHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IG5ld0F0dHIuYXBw
ZW5kQ2hpbGQobmV3RW50UmVmKTsKLSAgICAgIGFkb3B0ZWRBdHRyID0gbmV3RG9jLmFkb3B0Tm9k
ZShuZXdBdHRyKTsKLSAgICAgIAotCWlmKAotCQotCShhZG9wdGVkQXR0ciAhPSBudWxsKQotCi0J
KSB7Ci0Jbm9kZU5hbWUgPSBhZG9wdGVkQXR0ci5ub2RlTmFtZTsKLQotICAgICAgbm9kZU5hbWVz
cGFjZVVSSSA9IGFkb3B0ZWRBdHRyLm5hbWVzcGFjZVVSSTsKLQotICAgICAgbm9kZVByZWZpeCA9
IGFkb3B0ZWRBdHRyLnByZWZpeDsKLQotICAgICAgYXR0ck93bmVyRWxlbSA9IGFkb3B0ZWRBdHRy
Lm93bmVyRWxlbWVudDsKLQotICAgICAgaXNTcGVjaWZpZWQgPSBhZG9wdGVkQXR0ci5zcGVjaWZp
ZWQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9ub2RlTmFtZSIs
InhtbDpsYW5nIixub2RlTmFtZSk7Ci0gICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0
bm9kZTA2X25hbWVzcGFjZVVSSSIseG1sTlMsbm9kZU5hbWVzcGFjZVVSSSk7Ci0gICAgICAgYXNz
ZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X3ByZWZpeCIsInhtbCIsbm9kZVByZWZpeCk7
Ci0gICAgICAgYXNzZXJ0TnVsbCgiZG9jdW1lbnRhZG9wdG5vZGUwNl9vd25lckRvYyIsYXR0ck93
bmVyRWxlbSk7Ci0gICAgYXNzZXJ0VHJ1ZSgiZG9jdW1lbnRhZG9wdG5vZGUwNl9zcGVjaWZpZWQi
LGlzU3BlY2lmaWVkKTsKLW5vZGVMaXN0ID0gYWRvcHRlZEF0dHIuY2hpbGROb2RlczsKLQotICAg
ICAgYWRvcHRUZXh0ID0gbm9kZUxpc3QuaXRlbSgwKTsKLSAgICAgIGFkb3B0RW50UmVmID0gbm9k
ZUxpc3QuaXRlbSgxKTsKLSAgICAgIGFkb3B0ZWRUZXh0Tm9kZVZhbHVlID0gYWRvcHRUZXh0Lm5v
ZGVWYWx1ZTsKLQotICAgICAgYWRvcHRlZEVudFJlZk5vZGVWYWx1ZSA9IGFkb3B0RW50UmVmLm5v
ZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfVGV4dE5v
ZGVWYWx1ZSIsIlRleHQgTm9kZSIsYWRvcHRlZFRleHROb2RlVmFsdWUpOwotICAgICAgIGFzc2Vy
dEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9FbnRSZWZOb2RlVmFsdWUiLCJhbHBoYSIsYWRv
cHRlZEVudFJlZk5vZGVWYWx1ZSk7Ci0gICAgICAgCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlv
biBydW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUwNigpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYueGh0
bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUw
Ni54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjkyZDg5MGRhZGI1YTg3MzU5
ZjQ5ZmVkNDE5OTQ3MzU4NGQyMTcyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRh
ZG9wdG5vZGUwNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMDYu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRu
b2RlMTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyOGFiMTg4NjFmYmU4YTUwZjU5YzgxMmFlYmQwNTMzOWVhNTdjZjVkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYKLVN0YXR1cwlTdWNjZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9w
dG5vZGUxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFk
b3B0bm9kZTE2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmQ2ZTJmZGMzNDdh
MzQxMTA1NWJkYTJlZGU5YTIyMjliZTllZmU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudGFkb3B0bm9kZTE2LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotQ3JlYXRlIGEgZG9jdW1lbnQgZnJhZ21lbnQgd2l0aCBhbiBlbnRpdHkgcmVmZXJlbmNlLCBh
ZG9wdCB0aGUgbm9kZSBhbmQgY2hlY2sKLXRoYXQgdGhlIGVudGl0eSByZWZlcmVuY2UgdmFsdWUg
Y29tZXMgZnJvbSB0aGUgYWRvcHRpbmcgZG9jdW1lbnRzIERURC4KLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0RvY3VtZW50My1hZG9wdE5vZGUKLSov
Ci1mdW5jdGlvbiBkb2N1bWVudGFkb3B0bm9kZTE2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRhZG9wdG5vZGUxNiIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWdtZW50OwotICAg
ICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgY2hpbGQ7Ci0g
ICAgICB2YXIgY2hpbGRzQXR0cjsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dE5v
ZGU7Ci0gICAgICB2YXIgYWRvcHRlZDsKLSAgICAgIHZhciBwYXJlbnRJbXA7Ci0gICAgICB2YXIg
Y2hpbGRJbXA7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAgICAgIHZhciBjaGlsZEF0dHJJbXA7
Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2
YXIgYXR0ck5vZGU7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsKLSAgICAgIHZhciBmaXJzdENoaWxk
VHlwZTsKLSAgICAgIHZhciBmaXJzdENoaWxkTmFtZTsKLSAgICAgIHZhciBmaXJzdENoaWxkVmFs
dWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZG9jRnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgcGFy
ZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoInBhcmVudCIpOwotICAgICAgY2hpbGQgPSBkb2MuY3Jl
YXRlRWxlbWVudCgiY2hpbGQiKTsKLSAgICAgIGNoaWxkc0F0dHIgPSBkb2MuY3JlYXRlQXR0cmli
dXRlKCJzdGF0ZSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
Z2FtbWEiKTsKLSAgICAgIHRleHROb2RlID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXN0Iik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gY2hpbGRzQXR0ci5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAg
ICAgYXR0ck5vZGUgPSBjaGlsZC5zZXRBdHRyaWJ1dGVOb2RlKGNoaWxkc0F0dHIpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGNoaWxkLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAgICAgYXBwZW5kZWRDaGls
ZCA9IGRvY0ZyYWdtZW50LmFwcGVuZENoaWxkKHBhcmVudCk7Ci0gICAgICBhZG9wdGVkID0gZG9j
LmFkb3B0Tm9kZShkb2NGcmFnbWVudCk7Ci0gICAgICAKLQlpZigKLQkKLQkoYWRvcHRlZCAhPSBu
dWxsKQotCi0JKSB7Ci0JcGFyZW50SW1wID0gYWRvcHRlZC5maXJzdENoaWxkOwotCi0gICAgICBj
aGlsZEltcCA9IHBhcmVudEltcC5maXJzdENoaWxkOwotCi0gICAgICBhdHRyaWJ1dGVzID0gY2hp
bGRJbXAuYXR0cmlidXRlczsKLQotICAgICAgY2hpbGRBdHRySW1wID0gYXR0cmlidXRlcy5nZXRO
YW1lZEl0ZW0oInN0YXRlIik7Ci0gICAgICBmaXJzdENoaWxkID0gY2hpbGRBdHRySW1wLmZpcnN0
Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImZpcnN0Q2hpbGROb3ROdWxsIixmaXJzdENo
aWxkKTsKLWZpcnN0Q2hpbGROYW1lID0gZmlyc3RDaGlsZC5ub2RlTmFtZTsKLQotICAgICAgZmly
c3RDaGlsZFZhbHVlID0gZmlyc3RDaGlsZC5ub2RlVmFsdWU7Ci0KLSAgICAgIGZpcnN0Q2hpbGRU
eXBlID0gZmlyc3RDaGlsZC5ub2RlVHlwZTsKLQotICAgICAgCi0JaWYoCi0JKDUgPT0gZmlyc3RD
aGlsZFR5cGUpCi0JKSB7Ci0JYXNzZXJ0RXF1YWxzKCJmaXJzdENoaWxkRW50M1JlZiIsImdhbW1h
IixmaXJzdENoaWxkTmFtZSk7Ci0gICAgICAgCi0JfQotCQotCQllbHNlIHsKLQkJCWFzc2VydEVx
dWFscygiZG9jdW1lbnRhZG9wdG5vZGUxNiIsIlRleGFzIixmaXJzdENoaWxkVmFsdWUpOwotICAg
ICAgIAotCQl9Ci0JCi0JfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAg
ZG9jdW1lbnRhZG9wdG5vZGUxNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYueGh0bWwgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiYjlkZTFmYjkzOGIwNzk3NTMwZjExMzBjODcxODZlNzYz
N2QxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2RlMTYuanMiLz48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ry
b25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgot
ICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2
ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0
aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlS
ZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50
IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNv
bSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+
Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+
Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIg
aWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3
IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRw
Oi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVu
eSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAg
PHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVN
UDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21w
dXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUy
Ny1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNzM0NDFkNDMw
MjE0OTJmOTQzN2RmYjY2MGRjMGU0ZmEzNjM4MmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19O
T1RfU1VQUE9SVEVEX0VSUl8xOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LmpzIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjczY2FjYmM2ODk2YzY2Y2EyMzMwMmY2YTIx
YWI2OWNlM2Q4NGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUy
Ny5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2Rv
Y3VtZW50cmVuYW1lbm9kZTI3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsK
LXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
YnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0
IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9u
cywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAg
T3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0
aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJp
bmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAg
c2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8g
ICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAg
ICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAg
ZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAg
ICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBl
eCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAot
Ly8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8K
LS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRl
ZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQot
Ly8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHRo
ZSByZW5hbWVOb2RlIG1ldGhvZCB0byBhdHRlbXB0IHRvIHJlbmFtZSBuZXcgVGV4dCwgQ29tbWVu
dCwgQ0RhdGFTZWN0aW9uLAotCVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgRW50aXR5UmVmZXJl
bmNlIG5vZGVzIG9mIGEgbmV3IERvY3VtZW50LgotCUNoZWNrIGlmIGEgTk9UX1NVUFBPUlRFRF9F
UlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQw
NDA3L2NvcmUjRG9jdW1lbnQzLXJlbmFtZU5vZGUKLSovCi1mdW5jdGlvbiBkb2N1bWVudHJlbmFt
ZW5vZGUyNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgImRvY3VtZW50cmVuYW1lbm9kZTI3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZh
ciBkb2M7Ci0gICAgICB2YXIgbmV3RG9jOwotICAgICAgdmFyIGRvbUltcGw7Ci0gICAgICB2YXIg
dGV4dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBp
OwotICAgICAgdmFyIGVudHJlZjsKLSAgICAgIHZhciByZW5hbWVkVHh0OwotICAgICAgdmFyIHJl
bmFtZWRDb21tZW50OwotICAgICAgdmFyIHJlbmFtZWRDZGF0YTsKLSAgICAgIHZhciByZW5hbWVk
UGk7Ci0gICAgICB2YXIgcmVuYW1lZEVudFJlZjsKLSAgICAgIHZhciBudWxsRG9jVHlwZSA9IG51
bGw7Ci0KLSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIHJvb3ROUzsKLSAgICAgIHZhciBy
b290TmFtZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgcm9vdE5TID0g
ZG9jRWxlbS5uYW1lc3BhY2VVUkk7Ci0KLSAgICAgIHJvb3ROYW1lID0gZG9jRWxlbS50YWdOYW1l
OwotCi0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9jID0gZG9tSW1w
bC5jcmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwotICAgICAgdGV4
dCA9IG5ld0RvYy5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOwotICAgICAgY29tbWVudCA9IG5ld0Rv
Yy5jcmVhdGVDb21tZW50KCJjb21tZW50Iik7Ci0gICAgICBjZGF0YSA9IG5ld0RvYy5jcmVhdGVD
REFUQVNlY3Rpb24oImNkYXRhIik7Ci0gICAgICBwaSA9IG5ld0RvYy5jcmVhdGVQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24oInBpdCIsInBpZCIpOwotICAgICAgZW50cmVmID0gbmV3RG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZFR4dCA9IG5ld0RvYy5yZW5hbWVOb2RlKHRleHQs
Imh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwidGV4dCIpOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURf
RVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVuYW1lZENvbW1lbnQgPSBuZXdEb2MucmVuYW1lTm9kZShjb21tZW50LCJo
dHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNvbW1lbnQiKTsKLSAgICAgICAgfQotCQljYXRj
aChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcg
JiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVE
X0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIHJlbmFtZWRDZGF0YSA9IG5ld0RvYy5yZW5hbWVOb2RlKGNkYXRhLCJodHRw
Oi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNkYXRhIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgp
IHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4
LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJf
MyIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZW5hbWVkUGkgPSBuZXdEb2MucmVuYW1lTm9kZShwaSwiaHR0cDovL3d3dy53My5v
cmcvRE9NL1Rlc3QiLCJwaSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNj
ZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwot
CQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSXzQiLHN1Y2Nlc3MpOwot
CX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1l
ZEVudFJlZiA9IG5ld0RvYy5yZW5hbWVOb2RlKGVudHJlZiwiaHR0cDovL3d3dy53My5vcmcvRE9N
L1Rlc3QiLCJlbnRyZWYiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2Vz
cyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJ
fQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl81IixzdWNjZXNzKTsKLQl9
Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50cmVuYW1lbm9k
ZTI3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
ZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRlNzgxMWI0MmRlMmM0NjdlNWEyYTYwZTE4MjkxZDJkMTA4ZjgzYzkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LnhodG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFU
QT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYj
OTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24g
IiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBT
WVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRB
ICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
Om5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1Q
TElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+
Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9Y
TUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
eGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iZG9jdW1lbnRyZW5hbWVub2RlMjcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0
IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBU
ZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMK
LTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVt
YmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlv
biB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNl
Y3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5F
TVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRl
cGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVu
dDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4
YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2
aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9z
dHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgot
ICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFs
aXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4K
LSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIw
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzhlNGU2NjQ2NmZiZGMxNDA3
Njc1NTM4N2E5YTM1ZjBmMWVhOTZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yMC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjIwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJv
ZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48
L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1
NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFU
QVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZl
bnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBh
IHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8
L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwv
ZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50
IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUz
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29t
Ij4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9u
Zz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29k
ZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgot
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDI0MzczOGY2MGEw
ODg0NjRkYWQ4NDgyN2VhNmMxNGViMDEzZjcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNgotU3RhdHVzCWZhaWx1cmUK
LU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggM2U4YjNmYWU4ODc5YTBhMzRkZjAxYjY0NWRjMzc2MGFiZTAyNzMxYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxk
IFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5k
IE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRo
aXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNl
IFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0
dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUt
MjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZp
ZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAg
Ki8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53
My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIGNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uIGNoZWNrIGlmIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBjb250YWlucyBh
bmQgcHJlY2VkZXMgaXQncyBmaXJzdAotCWNoaWxkRWxlbWVudCwgYW5kIHRoYXQgdGhlIGNoaWxk
RWxlbWVudCBpcyBjb250YWluZWQgYW5kIGZvbGxvd3MgdGhlIEVudGl0eVJlZmVyZW5jZSBub2Rl
LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUz
LWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0
aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNiIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxl
bTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFy
IGVudFJlZlBvc2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0aW9uOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAot
CShnZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIpID09
IGZhbHNlKQotCSkgewotCXZhckxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInZhciIp
OwotICAgICAgdmFyRWxlbSA9IHZhckxpc3QuaXRlbSgyKTsKLSAgICAgIGFzc2VydE5vdE51bGwo
InZhckVsZW1Ob3ROdWxsIix2YXJFbGVtKTsKLWVudFJlZiA9IHZhckVsZW0uZmlyc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmTm90TnVsbCIsZW50UmVmKTsKLQotCX0KLQkK
LQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7
Ci0gICAgICAKLQkJfQotCWVudFJlZkNoaWxkMSA9IGVudFJlZi5maXJzdENoaWxkOwotCi0gICAg
ICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50
UmVmUG9zaXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQx
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uSXNDb250
YWluZWRGb2xsb3dpbmcyNiIsMjAsZW50UmVmUG9zaXRpb24pOwotICAgICAgIGVudFJlZkNoaWxk
MVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZik7
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbkNvbnRhaW5z
UFJFQ0VESU5HMjYiLDEwLGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MzNlMGQwNjU4YmJmYmY0ZmE1MDgzZTBhMjM5NzMyYTQ0
YzFlOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bjI2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MjliNGNkODA1OGEzYzc1Y2E4MTJiNDI1Mjc1
YjM2ZjhlNDI5ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbnRSZWZD
aGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Lmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWUxOWI3NjcwMmIz
NGE5ODVlODI0ZjgxZWFjYWFmM2VlNGJlMGY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCww
IEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29y
dGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4g
UmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtl
aW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQot
Ci0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAg
ICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0
VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IjsKLSAg
IH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gdG8g
Y2hlY2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGNvbnRhaW5zIGFuZCBwcmVjZWRlcyBp
dCdzIGxhc3QKLQljaGlsZEVsZW1lbnQsIGFuZCB0aGF0IHRoaXMgY2hpbGRFbGVtZW50IGlzIGNv
bnRhaW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUuCi0KLSogQGF1dGhv
ciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtY29tcGFyZURvY3Vt
ZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNygp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZh
ciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZhciB2YXJFbGVtOwotICAgICAgdmFy
IGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0gICAgICB2YXIgZW50UmVmUG9zaXRp
b247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JKGdldEltcGxlbWVu
dGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIikgPT0gZmFsc2UpCi0JKSB7
Ci0JdmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidmFyIik7Ci0gICAgICB2YXJF
bGVtID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgidmFyRWxlbU5vdE51
bGwiLHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxlbS5maXJzdENoaWxkOwotCi0gICAgICBhc3Nl
cnROb3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRSZWYpOwotCi0JfQotCQotCQllbHNlIHsKLQkJ
CWVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIAotCQl9
Ci0JZW50UmVmQ2hpbGQxID0gZW50UmVmLmxhc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVs
bCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQxKTsKLWVudFJlZlBvc2l0aW9uID0g
ZW50UmVmLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZkNoaWxkMSk7Ci0gICAgICBhc3Nl
cnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbklzQ29udGFpbmVkRm9sbG93aW5n
MjciLDIwLGVudFJlZlBvc2l0aW9uKTsKLSAgICAgICBlbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVu
dFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWYpOwotICAgICAgYXNzZXJ0
RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Db250YWluc1BSRUNFRElORyIsMTAs
ZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzFhYmUwMWJmOWJkODlkMWExZWFmNmVjYmMwMWIwOTNlNmViZmIxMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcueGh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZ
TEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBn
YW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkg
ZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBk
aXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENE
QVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQg
UElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgot
PCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgi
Lz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzNkMzI0OWQ4NGJiM2MyNjE2NzVlM2U0ZThjYWQzNjI5OGEzZjg1YS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjgKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFz
c2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMmIyOGU4M2MzMDU0NGRhYWE4NDFmMTdmZDE1
ZDdiOGRiYzUyZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHly
aWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0
aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4g
QWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2Fs
LzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAg
KiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJp
IGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0g
ICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgiOwotICAgfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0g
cHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYg
KGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlv
bkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhl
IGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGlu
IHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1
bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3
aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQu
Ci1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8q
KgotKiAKLQlVc2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiBjaGVjayB0aGUgZG9jdW1lbnQg
cG9zaXRpb24gb2YgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGVudDQncwotCWZpcnN0IGNoaWxk
IGFuZCBsYXN0IGNoaWxkLiAgSW52b2tlIGNvbXBhcmVEb2N1bWVudFBvc2l0b24gb24gZmlyc3Qg
Y2hpbGQgd2l0aCBsYXN0IGNoaWxkIGFzIGEgcGFyYW1ldGVyCi0Jc2hvdWxkIHJldHVybiBGT0xM
T1dJTkcsIGFuZCBzaG91bGQgcmV0dXJuIFBSRUNFRElORyB2aWNlIHZlcnNhLgotCi0qIEBhdXRo
b3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgo
KSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIs
ICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2
YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxlbTsKLSAgICAgIHZh
ciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFyIGVudFJlZkNoaWxk
MjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGls
ZDJQb3NpdGlvbjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAKLQlpZigKLQkoZ2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVu
dGl0eVJlZmVyZW5jZXMiKSA9PSBmYWxzZSkKLQkpIHsKLQl2YXJMaXN0ID0gZG9jLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJ2YXIiKTsKLSAgICAgIHZhckVsZW0gPSB2YXJMaXN0Lml0ZW0oMik7Ci0g
ICAgICBhc3NlcnROb3ROdWxsKCJ2YXJFbGVtTm90TnVsbCIsdmFyRWxlbSk7Ci1lbnRSZWYgPSB2
YXJFbGVtLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZk5vdE51bGwi
LGVudFJlZik7Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgCi0JCX0KLQllbnRSZWZDaGlsZDEgPSBlbnRSZWYu
Zmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIs
ZW50UmVmQ2hpbGQxKTsKLWVudFJlZkNoaWxkMiA9IGVudFJlZi5sYXN0Q2hpbGQ7Ci0KLSAgICAg
IGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7Ci1lbnRS
ZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihl
bnRSZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb25Gb2xsb3dpbmcyOCIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgZW50UmVm
Q2hpbGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50
UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uUFJFQ0VESU5HMjgiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjgoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI1MDgyOWYxMmMyOTZiNjE5NTZiODFmYzY2NjU4MmUz
NjMyMjllYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRk
IiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2
OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0
ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICIm
Izk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFU
VExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1s
bnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAg
ICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0
ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRh
PC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RB
VEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRt
bCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNp
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhz
ZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRG
LTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJjYTc4MTdjODE0ODVlZWIxZmQ0YmU0Zjg1
YmQxZWUyMTdmNDk2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1U
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVudFJl
ZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjku
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkOWZkNDVmYTkx
NWM0ZjUyYTBjMDg3N2ExNmI5NWVhN2EyZDg5MTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlDcmVhdGUgdHdvIGVudGl0eSByZWZlcmVuY2Ugbm9k
ZXMuIFVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHRvIGNoZWNrIGlmIHRoZSBjaGlsZCBv
ZiB0aGUgZmlyc3QgRW50aXR5IAotCVJlZiBub2RlIHByZWNlZGVzIHRoZSBjaGlsZCBvZiB0aGUg
c2Vjb25kIEVudGl0eSBSZWYgbm9kZSwgYW5kIHRoYXQgdGhlIGNoaWxkIG9mIHRoZSBzZWNvbmQg
RW50aXR5IFJlZiBub2RlCi0JZm9sbG93cyB0aGUgY2hpbGQgb2YgdGhlIGZpcnN0IEVudGl0eSBS
ZWYgbm9kZS4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjkoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0lu
aXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOSIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0VsZW07Ci0gICAgICB2
YXIgZW50UmVmMTsKLSAgICAgIHZhciBlbnRSZWYyOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsK
LSAgICAgIHZhciBlbnRSZWZDaGlsZDI7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247
Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQyUG9zaXRpb247Ci0gICAgICB2YXIgYXBwZW5kZWRDaGls
ZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICBlbnRSZWYxID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgZW50
UmVmMiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIGRvY0VsZW0g
PSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRWxlbS5h
cHBlbmRDaGlsZChlbnRSZWYxKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NFbGVtLmFwcGVu
ZENoaWxkKGVudFJlZjIpOwotICAgICAgZW50UmVmQ2hpbGQxID0gZW50UmVmMS5maXJzdENoaWxk
OwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGls
ZDEpOwotZW50UmVmQ2hpbGQyID0gZW50UmVmMi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5v
dE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNoaWxkMik7Ci1lbnRSZWZDaGlsZDFQ
b3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWZDaGls
ZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Gb2xs
b3dpbmcyOSIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgZW50UmVmQ2hpbGQyUG9z
aXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQx
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uUFJFQ0VE
SU5HMjkiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZWEzZDJhOWI3MjExZDRkZjYzNWM0NjViYjU5NmQwNWJhOTEyYmIwYS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS5qcyIv
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291
bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgot
ICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlv
biB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMg
aXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRh
YjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAm
Z2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0g
Sm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3Vw
PjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4K
LSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVj
dG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMg
OTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5n
b3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+
Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+
Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2
aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZl
YXR1cmUwNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3YTk1
YTFmNjJjZTE0NzQ4ZjM0NjA0MjA0YzczMjhiNzY5NDRiZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZWdldGZlYXR1cmUwNAotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxpbmUgMTAxOiBU
eXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0ZmVhdHVyZTA0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXRmZWF0dXJlMDQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ZjVkMjBm
NzdiZmI5ZGNhMGExMGU4MGUxZGY1NWViZmIyM2M0ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVnZXRmZWF0dXJlMDQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDIgKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
Q2hlY2sgaW1wbGVtZW50YXRpb24gb2YgTm9kZS5nZXRGZWF0dXJlIG9uIEVudGl0eVJlZmVyZW5j
ZS4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWdldEZlYXR1cmUK
LSovCi1mdW5jdGlvbiBub2RlZ2V0ZmVhdHVyZTA0KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWdldGZlYXR1cmUwNCIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5vZGU7Ci0gICAgICB2YXIgbnVs
bFZlcnNpb24gPSBudWxsOwotCi0gICAgICB2YXIgZmVhdHVyZUltcGw7Ci0gICAgICB2YXIgaXNT
dXBwb3J0ZWQ7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgZG9tSW1wbCA9IGRvYy5pbXBsZW1lbnRhdGlvbjsK
LW5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBmZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiQ29yZSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0
U2FtZSgiY29yZVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1mZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0
U2FtZSgiY09yRVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1mZWF0dXJl
SW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiK2NPckUiLG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2Vy
dFNhbWUoIlBsdXNDb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJbXBsKTsKLWZl
YXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJvcmcudzNjLmRvbXRzLmJvZ3VzLmZlYXR1cmUi
LG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2VydE51bGwoInVucmVjb2duaXplZEZlYXR1cmUiLGZl
YXR1cmVJbXBsKTsKLSAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsIjIu
MCIpOwotICAgICAgYXNzZXJ0U2FtZSgiQ29yZTIwIixub2RlLGZlYXR1cmVJbXBsKTsKLWZlYXR1
cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIiwiMy4wIik7Ci0gICAgICBhc3NlcnRTYW1l
KCJDb3JlMzAiLG5vZGUsZmVhdHVyZUltcGwpOwotaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9y
dGVkKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0
dXJlKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7
Ci0JYXNzZXJ0U2FtZSgiWE1MVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQot
CWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiU1ZHIixudWxsVmVyc2lvbik7Ci0gICAg
ICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZHIixudWxsVmVyc2lvbik7Ci0gICAg
ICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIlNWR1Vuc3BlY2lmaWVk
Iixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0
ZWQoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0
dXJlKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkg
ewotCWFzc2VydFNhbWUoIkhUTUxVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9
Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJFdmVudHMiLG51bGxWZXJzaW9uKTsK
LSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJFdmVudHMiLG51bGxWZXJzaW9u
KTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiRXZlbnRz
VW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9k
ZS5pc1N1cHBvcnRlZCgiTFMiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9k
ZS5nZXRGZWF0dXJlKCJMUyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0
ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJMU1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsK
LQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkxTLUFzeW5jIixudWxsVmVy
c2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiTFMtQXN5bmMiLG51
bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2Ft
ZSgiTFNBc3luY1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBv
cnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIlhQYXRoIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0
dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiWFBhdGgiLG51bGxWZXJzaW9uKTsKLSAgICAgIAot
CWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiWFBhdGhVbnNwZWNpZmllZCIs
bm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVk
KCIrSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1
cmUoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7
Ci0JYXNzZXJ0Tm90TnVsbCgiUGx1c0hUTUxVbnNwZWNpZmllZCIsZmVhdHVyZUltcGwpOwotCi0J
fQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiK1NWRyIsbnVsbFZlcnNpb24pOwot
ICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIlNWRyIsbnVsbFZlcnNpb24pOwot
ICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnROb3ROdWxsKCJQbHVzU1ZH
VW5zcGVjaWZpZWQiLGZlYXR1cmVJbXBsKTsKLQotCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVnZXRmZWF0dXJlMDQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZDg1YzUzYzM4MjNiYjgxMWIxZTc0OTMzOWE1
NTczYjI1NzA0NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBbCi08IUVO
VElUWSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50MiAnZm9vPGJyLz4nPgotPCFFTEVNRU5UIGh0
bWwgKGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0bWwgeG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci08
IUVMRU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+Ci08IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRB
KT4KLTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNyYyBDREFUQSAjSU1QTElFRAotICAgICB0eXBl
IENEQVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQg
dGl0bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJvZHkgKHApPgotPCFBVFRMSVNUIGJvZHkgb25s
b2FkIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHAgKCNQQ0RBVEF8YnIpKj4KLTwhRUxFTUVO
VCBiciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hvbGVUZXh0IHNhbXBsZTwvdGl0bGU+Ci08c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdzZWxmeGh0bWwuanMnPjwvc2NyaXB0Pjxz
Y3JpcHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdub2RlZ2V0
ZmVhdHVyZTA0LmpzJz48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotPHA+YmFyPC9wPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDljNWMyOWNkZDk5N2JhZTkxYmMwYzVhYjc5NDA1YjgwMTI2ODMzY2IuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1Ci1TdGF0dXMJ
ZXJyb3IKLU1lc3NhZ2UJTGluZSAxMjE6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTQ2N2EzYmM0MTYyMGQzOTBlYzdkNGQ1ZDkyMjhi
ODg0MGM5MGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE1IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZh
ciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
dGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1
aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywg
YXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3Ro
ZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUg
ZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcg
dGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0
VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBj
cmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAv
LwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJ
bXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBz
ZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LQlUaGUgbWV0aG9kIGdldFRleHRDb250ZW50IHJldHVybnMgdGhlIHRleHQgY29udGVudCBvZiB0
aGlzIG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJbnZva2UgdGhlIG1ldGhvZCBnZXRU
ZXh0Q29udGVudCBvbiBhIG5ldyBFbGVtZW50IG5vZGUgd2l0aCBuZXcgVGV4dCwgRW50aXR5UmVm
ZXJlbmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29tbWVudCBub2RlcyBhbmQgY2hlY2sg
aWYgdGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAotCWNvbmNhdGVuYXRlZCBTdHJpbmcg
d2l0aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4
dGNvbnRlbnQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgY29t
bWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcGk7
Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0g
ZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVs
ZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNv
bW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEgPSBkb2Mu
Y3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0u
YXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxk
KGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVm
KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIHRleHRDb250ZW50
ID0gZWxlbS50ZXh0Q29udGVudDsKLQotICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVudDE1IiwiVGV4dCDOskNEYXRhIix0
ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBub2RlZ2V0dGV4dGNvbnRlbnQxNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LnhodG1sIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmQzNmNiYTNjM2RhMDkwY2JhZDc3NDdkMGU4OTFj
NWYyNGI2OTQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS54
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/
Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAg
IDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAg
IDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0g
ICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBw
Ci0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1Q
TElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAy
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4
bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFu
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+
PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1Q
TElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVh
ZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVnZXR0ZXh0Y29udGVudDE1LmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjQx
NDRkMDVmZjA4ZDcyZThlOTg0YWExMTMxNTQ4NjRiODExYTRiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNgotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUxp
bmUgMTIzOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTQxZjdjODQxOWU4ZDExNTY0MjA4ODQ5NTg4NjhmYWFkNjE1NWQ5YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNiI7
Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7
Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1l
d29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElm
IHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8g
ICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1
cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1l
ZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0
ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdy
dW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3Vt
ZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9
IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRy
aWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25B
dHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBnZXRU
ZXh0Q29udGVudCByZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhpcyBub2RlIGFuZCBpdHMg
ZGVzY2VuZGFudHMuCi0JCi0JSW52b2tlIHRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgb24gYSBu
ZXcgRG9jdW1lbnRGcmFnbWVudCBub2RlIHdpdGggbmV3IFRleHQsIEVudGl0eVJlZmVyZW5jZXMg
IAotCUNEQVRBU2VjdGlvbiwgUEkgYW5kIENvbW1lbnQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZSB2
YWx1ZSByZXR1cm5lZCBpcyBhIHNpbmdsZSAKLQljb25jYXRlbmF0ZWQgU3RyaW5nIHdpdGggaXRz
IGNvbnRlbnQuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQw
Ny9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9kZWdldHRleHRjb250ZW50
MTYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJub2RlZ2V0dGV4dGNvbnRlbnQxNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbGVtQ2hp
bGQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVm
OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50
OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwg
ImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53
My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0
Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVu
dCAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsK
LSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRh
ICIpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAg
ICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFw
cGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNk
YXRhKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVsZW0pOwot
ICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0gICAgICB0ZXh0Q29udGVudCA9IGRvY0Zy
YWcudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50
MTYiLCJUZXh0IM6yQ0RhdGEiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE2KCk7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmZWZjMTVlYjRl
ZjAxZmIzZmVkMWNiZDg1ODY0ZTQ1NTkxZDFjZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVnZXR0ZXh0Y29udGVudDE2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRt
bAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRt
bDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElU
WSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElU
WSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90
YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZp
bGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHht
bG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAot
ICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAg
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBz
cGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAg
ICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
Ci0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRj
b250ZW50MTYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9
ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMg
YSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08
IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNl
IHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAg
PHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0
cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwv
Y29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4
NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBE
YWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRw
Oi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3Jk
aWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM2YmViMzI3ZDgwZGVmMmM5NzllYjQ5MTFmYjM3NzcxMDMzMzIyY2Eu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3Ci1TdGF0
dXMJZmFpbHVyZQotTWVzc2FnZQlub2RlZ2V0dGV4dGNvbnRlbnQxNzogYXNzZXJ0RXF1YWxzIGZh
aWxlZCwgYWN0dWFsICwgZXhwZWN0ZWQgzrIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAyNGJhNjAxYTkxZmU1MTU4YThiMTMyN2M4MzMyMzhjZmI5YTU4
NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZva2UgdGhlIG1ldGhvZCBn
ZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhbmQgY2hlY2sgaWYg
dGhlIAotCXZhbHVlIHJldHVybmVkIGlzIHRoZSBFbnRpdHlSZWZlcmVuY2UncyBjb250ZW50Lgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
dGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4dGNvbnRlbnQxNygpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXR0
ZXh0Y29udGVudDE3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIHRleHRDb250ZW50ID0gZW50
UmVmLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVu
dDE3IiwizrIiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTcu
eGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3OWMyMmM0ZDFlNTg0ZGEwZGFm
OWU4MzZkYzQ1YzFhNjM0Mzk0ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVy
c2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0
LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICIm
Izk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAi
JiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmls
ZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAg
PCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3Rj
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAg
ICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkg
ZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQg
ZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5z
IENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgot
PGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5z
OnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFm
Zi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRjb250ZW50MTcu
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZv
cmUxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzk3ZmE4MzEwZDM3ZGVlMDEwYmU1YzQ5MTc5MDY2NTE3ZThiMzFlMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3Jl
MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9y
ZTExLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGE4YjllYzJjMjA0MGRiMTgy
ZDExYjZjMWRjODlkZmQ4MjQ1NDQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0
YmVmb3JlMTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotCi0vKgotQ29weXJp
Z2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1
c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRp
dW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBB
bGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUg
VzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwv
MjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAq
ICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkg
aWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAg
ICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0K
LQlVc2luZyBpbnNlcnRCZWZvcmUgb24gYSBEb2N1bWVudEZyYWdtZW50IG5vZGUgYXR0ZW1wdCB0
byBpbnNlcnQgYSBjaGlsZCBub2RlcyBiZWZvcmUKLQlvdGhlciBwZXJtaXNzaWJsZSBub2RlcyBh
bmQgdmVyaWZ5IHRoZSBjb250ZW50cy9uYW1lIG9mIGVhY2ggaW5zZXJ0ZWQgbm9kZS4KLQotKiBA
YXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5v
cmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcy
NwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUxMSgpIHsKLSAgIHZhciBzdWNjZXNzOwot
ICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxMSIp
ICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAg
ICB2YXIgZWxlbTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFy
IHR4dDsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIGluc2Vy
dGVkOwotICAgICAgdmFyIGluc2VydGVkVmFsOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9j
RnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImJvZHkiKTsKLSAg
ICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUYXJnZXQiLCJQSURh
dGEiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAg
ICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICBjZGF0YSA9IGRvYy5j
cmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVu
ZENoaWxkKGVsZW0pOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQo
cGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY29tbWVudCk7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZVJlZik7Ci0gICAgICBpbnNlcnRlZCA9IGRv
Y0ZyYWcuaW5zZXJ0QmVmb3JlKGNvbW1lbnQscGkpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNl
cnRlZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9Db21t
ZW50IiwiQ29tbWVudCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5p
bnNlcnRCZWZvcmUodHh0LGNvbW1lbnQpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5k
YXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9UZXh0IiwiVGV4
dCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUo
Y2RhdGEsdHh0KTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5zZXJ0ZWQuZGF0YTsKLQotICAgICAg
YXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfQ0RBVEEiLCJDREFUQSIsaW5zZXJ0ZWRW
YWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUoZVJlZixjZGF0YSk7
Ci0gICAgICBpbnNlcnRlZFZhbCA9IGluc2VydGVkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9FbnQxIiwiYWxwaGEiLGluc2VydGVkVmFsKTsKLSAg
ICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVpbnNlcnRiZWZv
cmUxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFhNGFhNjgzNzM4NWUwMDAzMzNkNmJjNWM0ODExODY3OTQ2YWQ1ZGQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/Pgot
PCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8v
RU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsi
PgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0Nzsi
PgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0
OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVN
ICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRs
JwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0g
ICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMg
Y29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
ZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Im5vZGVpbnNlcnRiZWZvcmUxMS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQyZjNlNjM1NDc1MDdlZTVkYTJkZjM2ZWVkMTViNGNj
MmZkNTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1Ci1T
dGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdmMzcxNmVhMTlkNGFmNzE3ZGI2NGExYjA2MzVlNDU5NTkwNWUzZTQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3NyAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNSI7Ci0gICB9Ci0KLXZh
ciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAg
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUK
LS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBu
byBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3Vt
ZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAg
IGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8g
ICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1
bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAg
IHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIs
IG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZp
Z3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotCUEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHJhaXNlZCBp
ZiB0aGUgbm9kZSBpcyByZWFkLW9ubHkuCi0JCi0JVXNpbmcgaW5zZXJ0QmVmb3JlIG9uIGEgbmV3
IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gaW5zZXJ0IEVsZW1lbnQsIFRleHQsCi0J
Q29tbWVudCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZCBDREFUQVNlY3Rpb24gbm9kZXMgYmVm
b3JlIGFuIGVsZW1lbnQgY2hpbGQKLQlhbmQgdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVs
aW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29y
ZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZv
cmUxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxNSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0
OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBwaTsKLSAg
ICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBpbnNlcnRlZDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZWxlbUNoaWxkID0gZW50UmVmLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9u
Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAg
IGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjZGF0YSxlbGVtQ2hpbGQpOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci1waSA9IGRvYy5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIAotCXsKLQkJ
c3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYu
aW5zZXJ0QmVmb3JlKHBpLGVsZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSXzIiLHN1Y2Nlc3MpOwotCX0KLWNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVu
dCIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAg
ICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoY29tbWVudCxlbGVtQ2hpbGQpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci10eHQgPSBkb2Mu
Y3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKHR4dCxl
bGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl80IixzdWNjZXNzKTsK
LQl9Ci1lbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCIsImJvZHkiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKGVsZW0sZWxlbUNoaWxk
KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVl
KCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlaW5zZXJ0YmVmb3JlMTUoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5z
ZXJ0YmVmb3JlMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWluc2VydGJlZm9yZTE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjBk
MDBiOWNhMTYzNzFlZmMwMmY4ZTQwMWViNDVkODU3ZjQxZGMxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlaW5z
ZXJ0YmVmb3JlMTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxv
YWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25n
PgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMg
aXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+
Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJl
bmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4K
LSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAg
PHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdl
cjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8
ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2Rl
PlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0i
Xzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2Fk
LiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJo
dHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVy
dCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8
c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBO
b3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFjMGUxNzU0ZjdhOTJjZmVlODk0MTkyOGI0ZWY2YjE3YjlhNzdmMWYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyCi1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1v
dmVjaGlsZDEyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1v
dmVjaGlsZDEyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTE4YTIyNzFlOGFj
OWU4NjliYzFmOWFmNWQxNzExNjM3ODk4Yjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAt
MTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5n
IHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24g
ZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBz
dGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBs
ZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdo
ZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdl
KCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8K
LSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2Vw
dGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsK
LSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVl
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJv
cihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21w
bGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRV
cFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQg
aGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2gg
YWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSog
Ci0JVGhlIG1ldGhvZCByZW1vdmVDaGlsZCByZW1vdmVzIHRoZSBjaGlsZCBub2RlIGluZGljYXRl
ZCBieSBvbGRDaGlsZCBmcm9tIHRoZSBsaXN0IAotCW9mIGNoaWxkcmVuLCBhbmQgcmV0dXJucyBp
dC4gCi0KLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBEb2N1bWVudEZyYWdtZW50IG5vZGUg
YXR0ZW1wdCB0byByZW1vdmUgYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUuCi0gICAgICAgIEFs
c28gYXR0ZW1wdCB0byByZW1vdmUgdGhlIGRvY3VtZW50IGZyYWdtZW50IG5vZGUgZnJvbSB0aGUg
RW50aXR5UmVmZXJlbmNlLiAgVmVyaWZ5IHRoYXQgYSAKLSAgICAgICAgTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSIChFbnRpdHlSZWZlcmVuY2Ugbm9kZSBpcyByZWFkLW9ubHkpIG9yIGEgTk9U
X0ZPVU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNo
aWxkMTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciByZW1vdmVk
RVJlZjsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlbW92ZWRDaGlsZDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBk
b2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVSZWYgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9j
RnJhZy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92ZWRDaGlsZCA9IGRvY0ZyYWcucmVt
b3ZlQ2hpbGQoZVJlZik7Ci0gICAgICByZW1vdmVkRVJlZiA9IGRvY0ZyYWcuZmlyc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0TnVsbCgibm9kZXJlbW92ZWNoaWxkMTIiLHJlbW92ZWRFUmVmKTsKLSAg
ICAKLSAgICAgIHRyeSB7Ci0gICAgICByZW1vdmVkQ2hpbGQgPSBlUmVmLnJlbW92ZUNoaWxkKGRv
Y0ZyYWcpOwotICAgICAgCi0gICAgICB9IGNhdGNoIChleCkgewotCQkgIGlmICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcpIHsgICAgICAKLSAgICAgICBzd2l0Y2goZXguY29kZSkgewot
ICAgICAgIGNhc2UgLyogTk9UX0ZPVU5EX0VSUiAqLyA4IDoKLSAgICAgICBicmVhazsKLSAgICAg
IGNhc2UgLyogTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSICovIDcgOgotICAgICAgIGJyZWFr
OwotICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgdGhyb3cgZXg7Ci0gICAgICAgICAgfQot
ICAgICAgIH0gZWxzZSB7IAotICAgICAgIHRocm93IGV4OwotICAgICAgICB9Ci0gICAgICAgICB9
Ci0gICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlbW92
ZWNoaWxkMTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzM2ZWQ5MmYwM2JhNTRhZWM4MjdkYjc4NGY2MDU2ZDkyMzQ5NDk0Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVtb3ZlY2hpbGQxMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTZlNTZhNmM2YTA2MzIwMDg2NTE1MGZkZTg4YzgzZjk0ZjUy
YTRhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMKLVN0YXR1
cwlmYWlsdXJlCi1NZXNzYWdlCXR4dE5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxk
MTMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxk
MTMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjODBmZmI0YTY1MmQ5MDJkYTJk
MmRmZjUxNzY4NjdmZTk2MmYzZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAg
ICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQot
ICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIs
IGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2Yg
Ci0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0v
LwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxl
dGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhl
Ci0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBy
ZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92
ZSB0aGUgZmlyc3QgY2hpbGQgCi0Jb2YgdGhpcyBub2RlIGFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00t
TGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5v
ZGVyZW1vdmVjaGlsZDEzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFs
aXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTMiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBy
ZW1vdmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAg
dHh0ID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJ0eHROb3ROdWxs
Iix0eHQpOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBy
ZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZCh0eHQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICBub2RlcmVtb3ZlY2hpbGQxMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3MTMxN2E0NjNlMTllOTZkOWMxMjU0Njc5ZmI1NzVlN2I5ZmMw
NTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAg
IGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdl
dCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjM1YmY0ZGZkYjAwZTI1ZTA4MThi
MTZkMGQwY2FhNTg5NWY3OTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcGlOb3ROdWxsOiBhc3NlcnROb3ROdWxs
IGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZW1vdmVjaGlsZDE0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2Q1YTE5
MzNlZTk3NjVhMjljNTc1YmNiNWYwZjU5ZGQxYWZlZWExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAg
IC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBA
cmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0
VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0
ZW1wdCB0byByZW1vdmUgaXRzIGxhc3QgUHJvY2Vzc2luZ0luc3RydWN0aW9uIAotCWNoaWxkIG5v
ZGUgYW5kIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24u
Ci0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0x
NzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxkMTQoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hp
bGQxNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHJlbW92ZWQ7
Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBlbnROYW1lOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYg
PSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICBwaSA9IGVSZWYubGFz
dENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJwaU5vdE51bGwiLHBpKTsKLQotCXsKLQkJ
c3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVtb3ZlZCA9IGVSZWYucmVt
b3ZlQ2hpbGQocGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7
Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hp
bGQxNCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDE0LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDg0ZjdkNzQ1ZWZkMjdjNDZlZDg1NzVmNjc3ZDgyZjA4NzY0MzZlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcz
ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFE
T0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4i
Ci0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgot
ICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgot
ICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsi
PgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQ
VUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJu
b3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwot
ICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8
IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29t
bWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1h
LWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFm
ZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpz
Ii8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5v
ZGVyZW1vdmVjaGlsZDE0LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4MDJlMGMyYmE4YmY4ZWNhNjFhODUyZjk1NmYwYzgxZDViYjhjOTIw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNQotU3RhdHVzCWZh
aWx1cmUKLU1lc3NhZ2UJZWxlbU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzYjNmN2NjOGUwODExYmI4MGIzZTdi
NGNhOTkwNDlkZDA5NWM3ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDD
gsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRz
IEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAot
Zm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAot
UmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OC
wq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIv
Y29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0
cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50
aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICBy
ZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBk
b2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAg
IH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4
KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
Ci0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0v
LyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwot
Ly8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVk
LAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0v
LyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZW1v
dmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBh
biBFbGVtZW50IGNoaWxkIAotCWFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlIgaXMgdGhyb3duLiAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1h
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0y
MDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlvbiBub2RlcmVtb3ZlY2hpbGQx
NSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRl
ciwgIm5vZGVyZW1vdmVjaGlsZDE1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0g
ICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudE5hbWU7Ci0gICAg
ICB2YXIgcmVtb3ZlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwot
ICAgICAgZWxlbSA9IGVSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZWxl
bU5vdE51bGwiLGVsZW0pOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZChlbGVtKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTUoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE0ODYyN2E1YzExYmUyNjdlMGRjYTM0ZDA1
OGI4NGRiOTA1MmM1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxNS5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MTgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDlmODQxODhk
ZjFhMDFkOTRlMDNiYzUyNDc2NzUxYjMyOTEyMTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDE4Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTguanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMGI2NzJiYzQ4ZDlhN2M1NjA5YzY2ZjY4ZmI5YzBj
MWE5MjI0OGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAx
LTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZv
cm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBS
ZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3
YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdo
dC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRo
YXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9m
IHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQxOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGls
ZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYSBDREFUQVNl
Y3Rpb24gbm9kZSB3aXRoIAotCWEgRW50aXR5UmVmZXJlbmNlIGFuZCB2aWNlIHZlcnNhIHZlcmlm
eSB0aGUgZGF0YSBvZiB0aGUgcmVwbGFjZWQgbm9kZXMuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1
dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBu
b2RlcmVwbGFjZWNoaWxkMTgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRp
YWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMTgiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVudFJlZjsKLSAg
ICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciByZXBsYWNlZENEYXRhOwotICAgICAgdmFyIHJlcGxh
Y2VkRXJlZjsKLSAgICAgIHZhciBjZGF0YU5hbWU7Ci0gICAgICB2YXIgZXJlZk5hbWU7Ci0gICAg
ICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7
Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAg
ICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIHJlcGxhY2Vk
Q0RhdGEgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChlbnRSZWYsY2RhdGEpOwotICAgICAgY2RhdGFO
YW1lID0gcmVwbGFjZWRDRGF0YS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZXJlcGxhY2VjaGlsZDE4XzEiLCJDREFUQVNlY3Rpb24iLGNkYXRhTmFtZSk7Ci0gICAgICAgcmVw
bGFjZWRFcmVmID0gZG9jRnJhZy5yZXBsYWNlQ2hpbGQoY2RhdGEsZW50UmVmKTsKLSAgICAgIGVy
ZWZOYW1lID0gcmVwbGFjZWRFcmVmLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5v
ZGVyZXBsYWNlY2hpbGQxOF8yIiwiYWxwaGEiLGVyZWZOYW1lKTsKLSAgICAgICAKLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQxOCgpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQxOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMTgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkNzY3YjllYWY4
NGUyYWNlZDMxY2E1OWNmYTM5MTQzNmQzYzJlM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hp
bGQxOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDE5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhOGEyZDM2MWU5MTA2ZDRkMWQ4MGU1MTJiY2RlYzU4MGIzYjBlNzQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5Ci1TdGF0dXMJU3VjY2Vzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQxOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMTkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiOWExN2RmOTdmNDNk
MDM1MmYzYmQ4YWQxYzVjOTM0MDhmMzViMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQxOS5qcworKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
CVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRv
IHJlcGxhY2UgYW4gRWxlbWVudCBub2RlIHdpdGggCi0JaXRzIEVudGl0eVJlZmVyZW5jZSBjaGls
ZCB2ZXJpZnkgdGhlIG5vZGVOYW1lIG9mIHRoZSByZXBsYWNlZCBub2RlLgotCi0qIEBhdXRob3Ig
SUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwot
ZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDE5KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDE5IikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBl
bnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBu
b2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBw
ZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICByZXBsYWNlZCA9IGRvY0ZyYWcucmVwbGFjZUNoaWxkKGVu
dFJlZixlbGVtKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAg
IGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE5IiwiZG9tMzpwIixub2RlTmFtZSk7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNo
aWxkMTkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzMjViMmNiM2IzYmU3MGVkNzk0YmUxZjAyMDMwYjM2ZDE5MzQ3M2U3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVwbGFjZWNoaWxkMTkuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxZGFmMmZlZjM1ZWRiMzczOTVmNDQ5NzNjODgxNTUy
MjZiYjdiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMgot
U3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmZDNmNDIzZjczNWYzZjFiMjVjYTVlNGNiMzYwODI1NjMwM2E3NDVhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJl
bmNlIG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGFuIEVudGl0eVJlZmVyZW5jZSBub2RlIHdpdGgg
Ci0JaXRzIEVsZW1lbnQgcGFyZW50LCB3aXRoIGl0c2VsZiBhbmQgdmljZSB2ZXJzYSB2ZXJpZnkg
aWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3Ig
SUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8y
MDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwot
ZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYo
Y2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDIyIikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmTWFpbjsKLSAgICAgIHZh
ciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgdmFyIHJlcGxhY2VkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZk1haW4gPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgcmVwbGFjZWRDaGlsZCA9IGVudFJlZk1haW4ucmVwbGFjZUNoaWxkKGVs
ZW0sZW50UmVmKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0
eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlh
c3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMSIsc3VjY2Vzcyk7
Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBs
YWNlZENoaWxkID0gZW50UmVmTWFpbi5yZXBsYWNlQ2hpbGQoZW50UmVmLGVsZW0pOwotICAgICAg
ICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAn
dW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nl
c3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkQ2hpbGQgPSBlbnRSZWZN
YWluLnJlcGxhY2VDaGlsZChlbnRSZWZNYWluLGVudFJlZik7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDIyKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YzMjU0ZTJjYWJhMzJiYjQwNTNkNzQ2NDlj
YzlmYTgzMDFhZWQwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIy
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDIyLmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQyMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxOGI3N2Iz
OGUzYmMxYzM3YWJhZjY2ZGNhZWFjMGQ5NGFlYjQ5ZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICsw
LDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMjMKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLmpzIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMzMWFmYzlkYzdlNTQwM2E4NWNmNDc1NGQ4NmJm
YzRlZDJlNmExOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkg
dGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIg
b2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4g
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNo
aWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhbiBF
bGVtZW50LCBUZXh0LAotCUNvbW1lbnQsIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgQ0RBVEFT
ZWN0aW9uIG5vZGVzIHdpdGggZWFjaCBvdGhlciBhbmQgaW4gZWFjaCBjYXNlCi0JdmVyaWZ5IGlm
IGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElC
TQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1
bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQyMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQyMyIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0eHQ7
Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIHBpOwotICAg
ICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFyIGFwcGVuZGVkQ2hp
bGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImRlbHRhIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAg
IGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAgY2RhdGEgPSBk
b2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIHBpID0gZG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBl
bmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxk
KHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAg
ICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFj
ZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGNkYXRhLGVsZW0pOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElP
Tl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChwaSxj
ZGF0YSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQg
PSBlbnRSZWYucmVwbGFjZUNoaWxkKGNvbW1lbnQscGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJ
dHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZCh0eHQsY29t
bWVudCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzQiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQg
PSBlbnRSZWYucmVwbGFjZUNoaWxkKGVsZW0sdHh0KTsKLSAgICAgICAgfQotCQljYXRjaChleCkg
ewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXgu
Y29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMjMoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNThhMWQyNTE2M2ZkNWEzZmJhYzdkMTAxNDkzZDRh
NTcxYWViMTdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMjMuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMw
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDlmODNlNzRiOTI2
NzMzMWMxNzAzYmQyOGQxNmVmYzIxZjQ2ZmIwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBA
QAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNzM1OGY5MzQ3MjYzYjgyN2E4ZTg4ODEzZTdhZTM3YzBi
NzYzMmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0y
MDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl
IG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3Jt
YXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVz
ZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2Fy
ZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAK
LQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQt
c29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0
IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0
ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzAiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCi0KLQlVc2luZyByZXBsYWNl
Q2hpbGQgb24gYW4gRWxlbWVudCBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhIG5ldyBFbGVtZW50
IGNoaWxkIG5vZGUgd2l0aCAKLQluZXcgY2hpbGQgbm9kZXMgYW5kIHZpY2UgdmVyc2EgYW5kIGlu
IGVhY2ggY2FzZSB2ZXJpZnkgdGhlIG5hbWUgb2YgdGhlIHJlcGxhY2VkIG5vZGUuCi0KLSogQGF1
dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcK
LSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzAoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzAiKSAh
PSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2
YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3RWxlbWVudDsKLSAgICAgIHZhciBuZXdUZXh0Owot
ICAgICAgdmFyIG5ld0NvbW1lbnQ7Ci0gICAgICB2YXIgbmV3UEk7Ci0gICAgICB2YXIgbmV3Q2Rh
dGE7Ci0gICAgICB2YXIgbmV3RVJlZjsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBu
b2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpodG1sIik7Ci0gICAg
ICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiLCJ4aHRtbDpoZWFkIik7Ci0gICAgICBuZXdFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1l
bnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1sOmJvZHkiKTsKLSAgICAg
IGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdFbGVtZW50KTsKLSAgICAgIG5ld1Rl
eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBw
YXJlbnQuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBuZXdDb21tZW50ID0gZG9jLmNyZWF0
ZUNvbW1lbnQoIkNvbW1lbnQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5k
Q2hpbGQobmV3Q29tbWVudCk7Ci0gICAgICBuZXdQSSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQu
YXBwZW5kQ2hpbGQobmV3UEkpOwotICAgICAgbmV3Q2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0
aW9uKCJDZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChu
ZXdDZGF0YSk7Ci0gICAgICBuZXdFUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVs
dGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3RVJlZik7
Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3RWxlbWVudCxvbGRDaGls
ZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8xIiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAg
ICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdFbGVtZW50KTsK
LSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZXJlcGxhY2VjaGlsZDMwXzIiLCJ4aHRtbDpib2R5Iixub2RlTmFtZSk7Ci0gICAgICAg
cmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld1RleHQsb2xkQ2hpbGQpOwotICAgICAg
bm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2Rl
cmVwbGFjZWNoaWxkMzBfMyIsInhodG1sOmhlYWQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNl
ZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3VGV4dCk7Ci0gICAgICBub2RlTmFt
ZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNl
Y2hpbGQzMF80IiwiI3RleHQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5y
ZXBsYWNlQ2hpbGQobmV3Q29tbWVudCxvbGRDaGlsZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxh
Y2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF81
IiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxh
Y2VDaGlsZChvbGRDaGlsZCxuZXdDb21tZW50KTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQu
bm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzYiLCIj
Y29tbWVudCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGls
ZChvbGRDaGlsZCxuZXdQSSk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwot
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF83IiwidGFyZ2V0Iixub2Rl
TmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5l
d0NkYXRhKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFz
c2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzgiLCIjY2RhdGEtc2VjdGlvbiIsbm9kZU5h
bWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdF
UmVmKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2Vy
dEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzkiLCJkZWx0YSIsbm9kZU5hbWUpOwotICAgICAg
IAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDMw
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDMwLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2RiNWNiYjEzM2ZhYWYyZWI0ZjEwNDNkMjFmYzQzNTA4YjdkYzdlMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0g
ICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJ
U1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAg
ICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBM
SUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwh
QVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21t
ZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEt
aW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9k
ZXJlcGxhY2VjaGlsZDMwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDIzM2Y5MjkzMzU4MmE3MDU0MjYxNWQxMjUwYTQ5MTBhNzQ5M2Qw
YTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMKLVN0YXR1
cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDMzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc0
YmU0NGQ0YjBhNzcxY2I3OTIwNDM2YzdhM2MyZDhhNjIxNjRiNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzIjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgZGVmYXVsdCBBdHRyIG5vZGUgdG8g
cmVwbGFjZSBpdHMgVGV4dCBDaGlsZCB3aXRoIGEgCi0JbmV3IEVudGl0eVJlZmVyZW5jZSBOb2Rl
IGFuZCB2ZXJpZnkgdGhlIHZhbHVlIG9mIHRoZSByZXBsYWNlZCBjaGlsZC4KLQotKiBAYXV0aG9y
IElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8K
LWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzMyIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZh
ciBlbGVtOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZh
ciBuZXdDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgbmV3
Q2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY2hpbGRM
aXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7Ci0gICAgICBlbGVtID0gY2hpbGRM
aXN0Lml0ZW0oMyk7Ci0gICAgICBwYXJlbnQgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoImRpciIp
OwotICAgICAgb2xkQ2hpbGQgPSBwYXJlbnQubGFzdENoaWxkOwotCi0gICAgICByZXBsYWNlZCA9
IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVl
ID0gcmVwbGFjZWQubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNl
Y2hpbGQzMyIsInJ0bCIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3OTkwYzE1ODA2NTU1ZWRlY2QxNWYz
MjEwMWE4Y2ZhMjQ2M2E2N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249
IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAi
LS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQi
IFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7
Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4
OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRU
TElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAg
ICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQg
IjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8
L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFU
QSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1s
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNk
Ij48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzMy5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzVl
ZTRkNTg2Y2YwMDk4NmM5MDFlZWQ0ZjE0Yzk0NzNiYzczZWJjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNGEzNWEwMWVhNGUzZThmYmE5YzA5MzIx
YTJmODA0ODgyZTViZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxh
Y2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcmVu
Y2UgQ2hpbGQgd2l0aCBhIAotCW5ldyBUZXh0IE5vZGUgYW5kIHZlcmlmeSB0aGUgdmFsdWUgb2Yg
dGhlIG5ldyBjaGlsZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNCgp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVyZXBsYWNlY2hpbGQzNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsK
LSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIHZh
ciByZXBsYWNlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMu
b3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
cGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0
ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQo
bmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVlID0gcGFyZW50LnZhbHVlOwotCi0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzNCIsIlRleHQiLG5vZGVWYWx1ZSk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFj
ZWNoaWxkMzQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzMDY5YmIwMzgwZDE1ZGNlMzVhY2E4NTBhNTgzNjJiNGQxYjZjMmI5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJub2RlcmVwbGFjZWNoaWxkMzQuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUxYzk4OGY2NGZjOTgzMjM1ODcyOGMxMDM3NWE3
Mjk2YTA3NzZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxYmFlODY3YTVlZjJiYjdkY2E5MWViNzI3ZjJkYzU1YzYwODExOWIzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgQXR0ciBub2Rl
LCByZXBsYWNlIGl0cyBuZXcgRW50aXR5UmVmZXJuZWNlIENoaWxkIHdpdGggYSAKLQluZXcgQXR0
ciBOb2RlIGFuZCB2ZXJpZnkgaWYgYSBISUVSQVJDSFlfUkVRVUVTVF9FUlIgaXMgdGhyb3duLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1
ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDM1KCkgewotICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGls
ZDM1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgcGFyZW50Owot
ICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVW
YWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVu
dCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFt
ZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hp
bGQob2xkQ2hpbGQpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0
dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICAK
LQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0g
cGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0
Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQn
ICYmIGV4LmNvZGUgPT0gMyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfSElFUkFSQ0hZX1JF
UVVFU1RfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNjcyMWNkOTRmMTVlMjZjZmU1YWNmODM1NDIzZmZk
NmQ2OTg4YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS54aHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/
VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9E
VEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwh
RU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwh
RU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8
IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0g
ICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxu
czp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9Q
SXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElF
RD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNS5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTk5ZTAxNjExOWJj
YjkwNDEyNDkzYzcyZjEwZWFmMTg3M2M0NzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlYTIyNWJlZWYyZmEzOGVlYzk1ZTAwOGUxMmI2Nzk1NzZj
MGE0YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBv
biBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcm5lY2Ugbm9kZSB3
aXRoIGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5IGlmIGEgTk9UX0ZPVU5EX0VSUiBpcyB0
aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29y
ZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzYoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVw
bGFjZWNoaWxkMzYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBw
YXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0gICAgICB2
YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRy
aWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmci
KTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsK
LSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICAKLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gcGFy
ZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gOCk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX0ZPVU5EX0VSUiIs
c3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rl
cmVwbGFjZWNoaWxkMzYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjYWE4ODBiMDcyYTM1Nzg0MDFmYjFiZWVmZDdhMjRhNmFjMTg4MGM0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIg
Q0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRB
ICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElk
YXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEt
LSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48
dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9s
ZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1
MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFs
dGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjMWFhNWJmODg5ZDI1NjZhYTM1M2Iw
OWM0NDFhYTc3YTBiZjZhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhyb3dfV1JPTkdfRE9DVU1FTlRfRVJS
OiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRmZDAyNjQ0MTNkYjc2NmJiNGFmZjIwNjM0YTk4N2MzOTIxNzQ0ODkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNyI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgIHZhciBkb2MyUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2My
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2MyUmVmID0gdGhpcy5kb2MyOwotICAgICAg
fQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvYzJSZWYsICJkb2MyIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDIpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMikgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEg
bmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IFRleHQgbm9kZSB3aXRoIGEgCi0JbmV3IEVu
dGl0eVJlZmVyZW5jZSBOb2RlIGNyZWF0ZWQgYnkgYW5vdGhlciBkb2N1bWVudCBhbmQgdmVyaWZ5
IGlmIGEgCi0JV1JPTkdfRE9DVU1FTlRfRVJSIGlzIHJhaXNlZC4KLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0
aW9uIG5vZGVyZXBsYWNlY2hpbGQzNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzNyIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvYzI7Ci0gICAgICB2YXIgcGFyZW50Owot
ICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVW
YWx1ZTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotICAg
ICAgdmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYzIpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlzLmRvYzI7Ci0gICAgICB9Ci0gICAg
ICBkb2MyID0gbG9hZChkb2MyUmVmLCAiZG9jMiIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50
ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1l
c3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlVGV4dE5vZGUo
IlRleHQiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jMi5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRl
bHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxk
KTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAg
cmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA0KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19X
Uk9OR19ET0NVTUVOVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LnhodG1sIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy54aHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlkZGJkMjMzMTk5N2UzMzM4NWZhYTBm
ZjI3MzI5NDliZWZiYWY2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM3LmpzIi8+PHNj
cmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3Rh
cnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdp
dGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBh
biBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11d
Pjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1t
YTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
bmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25l
czwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAw
LDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1
NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcg
VGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRl
eHRjb250ZW50MTAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
NzYwOTM0ZmVjNGQ5NDc4NmFlMWJmNThmNWQ0NWE1OWIxYTkyYzU2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRl
bnQxMC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU3MWFlNzczOGEwYjI4
M2JjOTJjODdhZmQzYWM1MTM2MjliMzE1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNl
dHRleHRjb250ZW50MTAuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwg
dHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJl
ZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBzZXRUZXh0Q29udGVudCBoYXMgbm8gZWZmZWN0
IHdoZW4gdGhlIG5vZGUgaXMgZGVmaW5lZCB0byBiZSBudWxsLgotCQotCVVzaW5nIHNldFRleHRD
b250ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSwgYXR0ZW1wdCB0byBzZXQgaXRzIGNvbnRlbnQg
dG8gRUxFTUVOVC4KLQlSZXRyZWl2ZSB0aGUgdGV4dENvbnRlbnQgYW5kIHZlcmlmeSBpZiBpdCBp
cyB3YXMgc2V0IHRvIEVMRU1FTlQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0
ZXh0Y29udGVudDEwKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTAiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBj
b21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBw
aTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0g
PSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImRvbTM6
ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0ICIpOwotICAgICAg
Y29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwotICAgICAgZW50UmVmID0g
ZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRl
UHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRv
Yy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hp
bGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRS
ZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgZWxlbS50ZXh0
Q29udGVudCA9ICJFTEVNRU5UIjsKLQotICAgICAgdGV4dENvbnRlbnQgPSBlbGVtLnRleHRDb250
ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVzZXR0ZXh0Y29udGVudDEwIiwiRUxFTUVO
VCIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgbm9kZXNldHRleHRjb250ZW50MTAoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkZTc2MGYwZjBhMmI3NThlNmYyZWU4MGUz
MGM1YzlmNGE1NzQ1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50
MTAueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBb
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+
Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsi
PgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1
MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJ
U1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAg
ICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8
c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9z
cGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEg
I0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmJjMTQ3MDg4NmJmMDRlNGIwOTUyNjdmNjUzNDVlMDRiM2VhMzM2Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250
ZW50MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRj
b250ZW50MTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NDMxZjc5MjMxZjAw
YjI0YzU0ODA4YTk2OGMzOTM5ZTYzMWUyZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDExLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEiOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IERvY3VtZW50RnJhZ21lbnQg
bm9kZSBFbGVtZW50IGNoaWxkLCBhdHRlbXB0IHRvIHNldCBpdHMgY29udGVudCB0byAKLQlET0NV
TUVOVEZSQUdNRU5ULiAgUmV0cmVpdmUgdGhlIHRleHRDb250ZW50IGFuZCB2ZXJpZnkgaWYgaXQg
aXMgd2FzIHNldCB0byBET0NVTUVOVEZSQUdNRU5UCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhv
ciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1M
ZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9u
IG5vZGVzZXR0ZXh0Y29udGVudDExKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTEiKSAhPSBudWxsKSBy
ZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVsZW07
Ci0gICAgICB2YXIgZWxlbUNoaWxkOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjb21tZW50
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBwaTsKLSAg
ICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBk
b2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpwIik7Ci0gICAgICB0
eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNy
ZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNl
Y3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0
eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcu
YXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBlbGVtLnRleHRDb250ZW50ID0gIkRPQ1VNRU5URlJB
R01FTlQiOwotCi0gICAgICBlbGVtQ2hpbGQgPSBkb2NGcmFnLmxhc3RDaGlsZDsKLQotICAgICAg
dGV4dENvbnRlbnQgPSBlbGVtQ2hpbGQudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZWdldHRleHRjb250ZW50MTEiLCJET0NVTUVOVEZSQUdNRU5UIix0ZXh0Q29udGVudCk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dGV4
dGNvbnRlbnQxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0MmNiZDA0YWM5MWZkOThmNDAyMTM5NzQzMTk4NWRkZTFiODEzZmZkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS54aHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlM
RSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFs
cGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdh
bW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBl
cHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRp
ciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBM
SUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQ
SWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIv
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29udGVudDExLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTBmYmY0MmIyZTk2NzUw
ODNmMjE3YzE1ZmFkNzgyZGQ3ZmRkNDRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZjMzZmZTZiMTFlY2JlODFjNTYzNmRhYWVhODBi
NDU5YjcwYTg3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkg
MjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5z
dGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3Ig
SW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdo
dHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBT
b2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5
cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVS
SSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmll
ciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVy
biAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
c2V0dGV4dGNvbnRlbnQxMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCi0JCi0JVXNpbmcg
c2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUsIGF0dGVtcHQgdG8g
c2V0IGl0cyB2YWx1ZS4KLQlTaW5jZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIFJlYWRPbmx5
LCBjaGVjayBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiAgCi0JaXMgcmFpc2VkLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
dGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rlc2V0dGV4dGNvbnRlbnQxMigpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR0
ZXh0Y29udGVudDEyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9
IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgZW50UmVmLnRleHRDb250ZW50ID0gIk5BIjsK
LQotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUo
Im5vZGVzZXR0ZXh0Y29udGVudDEyIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR0ZXh0Y29udGVudDEyKCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250
ZW50MTIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0YmY5Njg3YTBlYjRk
ODczOTQyNzMzNTVmMDczNDNkMWYxYmM5MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDEyLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAot
ICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEt
c3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBi
ZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBk
ZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRp
b24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUi
PgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5z
OmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAg
ICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jv
bnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFF
TlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVs
ZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFu
IHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAx
Li0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAg
IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0g
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBo
Y19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNo
YXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXNldHRleHRjb250
ZW50MTIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBD
REFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtD
REFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRv
IGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7
IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1Q
MDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNv
bm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8v
d3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1
c2VyZGF0YTA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY4ZDdhZjJmZjk4M2UxNzMxZTA2ZGFkYjUzZjQ4MDJmZGRlMmY2ZWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4Ci1TdGF0dXMJZXJyb3IKLU1lc3Nh
Z2UJTGluZSAxMTM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5YjZmNTg2M2JmNDY3OGFlNTBhZTk1ZDg4NmQ2NmUwYzhlMzU0ZGQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4IjsKLSAgIH0K
LQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8K
LS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJl
Zm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUg
YXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAg
ZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAg
ICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5
Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0v
LwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcn
OwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVp
bGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRl
Q29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAg
IAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNo
SW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxv
YWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91
cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVz
IGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRv
IGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHNldFVzZXJEYXRhIG9uIGEgQ0RBVEFTZWN0aW9u
IGFuZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZSB0byBzZXQgdGhlaXIgCi0JVXNlckRhdGEgdG8gdGhp
cyBEb2N1bWVudCBhbmQgRG9jdW1lbnRFbGVtZW50IG5vZGUuICBWZXJpZnkgaWYgdGhlIFVzZXJE
YXRhIAotCW9iamVjdCB0aGF0IHdhcyBzZXQgZm9yIGJvdGggbm9kZXMgaXMgZGlmZmVyZW50Lgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMt
c2V0VXNlckRhdGEKLSovCi1mdW5jdGlvbiBub2Rlc2V0dXNlcmRhdGEwOCgpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR1c2Vy
ZGF0YTA4IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRWxl
bTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY0RhdGE7Ci0gICAgICB2YXIgZWxlbUxp
c3Q7Ci0gICAgICB2YXIgZWxlbU5hbWU7Ci0gICAgICB2YXIgdXNlckRhdGE7Ci0gICAgICB2YXIg
cmV0dXJuZWQxOwotICAgICAgdmFyIHJldHVybmVkMjsKLSAgICAgIHZhciBzdWNjZXNzOwotICAg
ICAgdmFyIHJldFVzZXJEYXRhOwotICAgICAgdmFyIG51bGxIYW5kbGVyID0gbnVsbDsKLQotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0Vs
ZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY0RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0
aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIGlmIChudWxsID09IG51bGxIYW5kbGVyKSB7Ci0g
ICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51bGwpOwotICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBkb2MsIG51bGxIYW5k
bGVyLmhhbmRsZSk7Ci0gICAgICB9Ci0gICAgICAgaWYgKG51bGwgPT0gbnVsbEhhbmRsZXIpIHsK
LSAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxlbSwgbnVsbCk7Ci0gICAg
ICB9IGVsc2UgewotICAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwgZG9jRWxlbSwg
bnVsbEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAgICByZXR1cm5lZDEgPSBlbnRSZWYu
Z2V0VXNlckRhdGEoIktleTEiKTsKLSAgICAgIHJldHVybmVkMiA9IGNEYXRhLmdldFVzZXJEYXRh
KCJLZXkyIik7Ci0gICAgICBzdWNjZXNzID0gcmV0dXJuZWQxLmlzRXF1YWxOb2RlKHJldHVybmVk
Mik7Ci0gICAgICBhc3NlcnRGYWxzZSgibm9kZXNldHVzZXJkYXRhMDgiLHN1Y2Nlc3MpOwotCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dXNlcmRhdGEwOCgpOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1
c2VyZGF0YTA4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR1c2VyZGF0YTA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjQ2NDA2
OTZlNmY5MjQzYTYwODFmNzkyMjE3OGRjMWViNmFhZmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dXNlcmRhdGEwOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR1c2Vy
ZGF0YTA4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJs
b2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEg
Q0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFb
Q0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0
byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxz
dXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVN
UDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJz
b25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1
NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDov
L3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGlj
LiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTI1YTM4MDlkNzkwMWZhMDQ0NmM3Nzc3YjRlYWFjYmQ0ZjRlZTEx
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2
Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGQxOGYyNzYxMjQzNTE0YWJhMTZmYmY0MzJmY2VjOGFmZDM3Y2QwMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29y
bGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVj
aG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBh
bmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4g
VGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vu
c2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2Fy
ZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRp
ZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAg
ICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0
ZXh0MDYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0
aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUpOwotICAgICAgIHNldEltcGxlbWVu
dGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIiwgdHJ1ZSk7Ci0KLSAgICAg
IGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwg
ImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0g
ICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwg
ZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAK
LS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8v
Ci0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0
ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUK
LS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRo
b2QgcmVwbGFjZVdob2xlVGV4dCBzdWJzdGl0dXRlcyB0aGUgYSBzcGVjaWZpZWQgdGV4dCBmb3Ig
dGhlIHRleHQgb2YgCi0JdGhlIGN1cnJlbnQgbm9kZSBhbmQgYWxsIGxvZ2ljYWxseS1hZGphY2Vu
dCB0ZXh0IG5vZGVzLiAgVGhpcyBtZXRob2QgcmFpc2VzCi0JYSBOT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlIgaWYgb25lIG9mIHRoZSBUZXh0IG5vZGVzIGJlaW5nIHJlcGxhY2VkIGlzIHJlYWRv
bmx5LgotCQotCUludm9rZSByZXBsYWNlV2hvbGVUZXh0IG9uIGFuIGV4aXN0aW5nIHRleHQgbm9k
ZSB3aXRoIG5ld2x5IGNyZWF0ZWQgdGV4dCBhbmQgRW50aXR5cmVmZXJlbmNlCi0Jbm9kZXMgKHdo
b3NlIHJlcGxhY2VtZW50IHRleHQgaXMgYSBjaGFyYWN0ZXIgZW50aXR5IHJlZmVyZW5jZSkgYXBw
ZW5kZWQgYXMgY2hpbGRyZW4gb2YgaXRzIHBhcmVudCBlbGVtZW50IG5vZGUuICAKLQlXaGVyZSB0
aGUgbm9kZXMgdG8gYmUgcmVtb3ZlZCBhcmUgcmVhZC1vbmx5IGRlc2NlbmRhbnRzIG9mIGFuIEVu
dGl0eVJlZmVyZW5jZSwgdGhlIEVudGl0eVJlZmVyZW5jZSAKLSAgICAgICAgbXVzdCBiZSByZW1v
dmVkIGluc3RlYWQgb2YgdGhlIHJlYWQtb25seSBub2Rlcy4gT25seSBpZiBhbnkgRW50aXR5UmVm
ZXJlbmNlIHRvIGJlIHJlbW92ZWQgaGFzIAotICAgICAgICBkZXNjZW5kYW50cyB0aGF0IGFyZSBu
b3QgRW50aXR5UmVmZXJlbmNlLCBUZXh0LCBvciBDREFUQVNlY3Rpb24gbm9kZXMsIHRoZSByZXBs
YWNlV2hvbGVUZXh0IAotICAgICAgICBtZXRob2QgbXVzdCBmYWlsLCByYWlzaW5nIGEgTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSLiBWZXJpZnkgdGhhdCB0aGUgbWV0aG9kIGRvZXMgbm90IHJh
aXNlCi0gICAgICAgIGFuIGV4Y2VwdGlvbiBhbmQgdmVyaWZ5IHRoZSBjb250ZW50IG9mIHRoZSBy
ZXR1cm5lZCB0ZXh0IG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGlt
YQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUt
MjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qLwotZnVuY3Rpb24gdGV4dHJl
cGxhY2V3aG9sZXRleHQwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlh
bGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDYiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAgICAgIHZhciBlbGVtZW50
U3Ryb25nOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIGVyZWZOb2RlOwotICAgICAg
dmFyIHJlcGxhY2VkVGV4dDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIG5v
ZGVWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3Ryb25nIik7Ci0g
ICAgICBlbGVtZW50U3Ryb25nID0gaXRlbUxpc3QuaXRlbSgwKTsKLSAgICAgIHRleHROb2RlID0g
ZG9jLmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAgICAgZXJlZk5vZGUgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVu
dFN0cm9uZy5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bWVudFN0cm9uZy5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICB0ZXh0Tm9kZSA9IGVsZW1l
bnRTdHJvbmcuZmlyc3RDaGlsZDsKLQotICAgICAgcmVwbGFjZWRUZXh0ID0gdGV4dE5vZGUucmVw
bGFjZVdob2xlVGV4dCgiTmV3IFRleHQgYW5kIENkYXRhIik7Ci0gICAgICBub2RlVmFsdWUgPSB0
ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygidGV4dHJlcGxhY2V3aG9s
ZXRleHQwNiIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQot
Ci0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIHRleHRyZXBsYWNld2hvbGV0ZXh0MDYoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDc5NzBiNjBiMTA5MDhhMGM3OWZkNTdjODEzOWJkOTE4YzM3MWVjMmIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRz
Ci08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51
bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rp
b24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZl
bnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRh
dmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwv
c3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4K
LSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lh
bGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA3NWVjYmQwOGU2ODZmNjlm
YWZlNGE2MzdhYzk2NTYyMGEyZjQ5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxh
Y2V3aG9sZXRleHQwNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90
ZXh0cmVwbGFjZXdob2xldGV4dDA3Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcuanMgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU2NGQzMmRkMzEzMjlkNjdhOTkxYTc5
MTQyMTAwZjAwMWYzZWIwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9s
ZXRleHQwNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
ICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LUFwcGVuZCBhbiBlbnRpdHkgcmVmZXJlbmNlIGFuZCBhIHRleHQgbm9kZSBhZnRlciB0byB0aGUg
Y29udGVudCBvZiB0aGUKLWZpcnN0IHN0cm9uZyBlbGVtZW50LiAgVGhlbiBjYWxsIHJlcGxhY2VX
aG9sZVRleHQgb24gaW5pdGlhbCBjb250ZW50Ci1vZiB0aGF0IGVsZW1lbnQuICBTaW5jZSB0aGUg
ZW50aXR5IHJlZmVyZW5jZSBkb2VzIG5vdCBjb250YWluIGFueSAKLWxvZ2ljYWxseS1hZGphY2Vu
dCB0ZXh0IGNvbnRlbnQsIG9ubHkgdGhlIGluaXRpYWwgdGV4dCBlbGVtZW50IHNob3VsZAotYmUg
cmVwbGFjZWQuIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQGF1
dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0Ci0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTQyNQotKi8K
LWZ1bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0ZXh0cmVwbGFjZXdob2xldGV4dDA3
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgaXRlbUxpc3Q7Ci0g
ICAgICB2YXIgZWxlbWVudE5hbWU7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgZXJl
Zk5vZGU7Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7
Ci0gICAgICB2YXIgbm9kZTsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgbm9kZVR5
cGU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgaXRlbUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0cm9uZyIpOwotICAgICAg
ZWxlbWVudE5hbWUgPSBpdGVtTGlzdC5pdGVtKDApOwotICAgICAgZXJlZk5vZGUgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICB0ZXh0Tm9kZSA9IGRvYy5jcmVhdGVU
ZXh0Tm9kZSgiTmV3IFRleHQiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtZW50TmFtZS5h
cHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVudE5hbWUu
YXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgdGV4dE5vZGUgPSBlbGVtZW50TmFtZS5maXJz
dENoaWxkOwotCi0gICAgICByZXBsYWNlZFRleHQgPSB0ZXh0Tm9kZS5yZXBsYWNlV2hvbGVUZXh0
KCJOZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAgIHRleHROb2RlID0gZWxlbWVudE5hbWUuZmly
c3RDaGlsZDsKLQotICAgICAgYXNzZXJ0U2FtZSgicmV0dmFsX3NhbWUiLHRleHROb2RlLHJlcGxh
Y2VkVGV4dCk7Ci1ub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2Vy
dEVxdWFscygibm9kZVZhbHVlU2FtZSIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZhbHVlKTsK
LSAgICAgICBub2RlID0gdGV4dE5vZGUubmV4dFNpYmxpbmc7Ci0KLSAgICAgIGFzc2VydE5vdE51
bGwoInNlY29uZENoaWxkTm90TnVsbCIsbm9kZSk7Ci1ub2RlVHlwZSA9IG5vZGUubm9kZVR5cGU7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygic2Vjb25kQ2hpbGRJc0VudFJlZiIsNSxub2RlVHlwZSk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICB0ZXh0cmVwbGFj
ZXdob2xldGV4dDA3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZDI5NzdiYTE4OGFhMWIxMzg4NjZlZGFiMzU1NWI3OTdjMjQx
NzgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9U
RVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFF
TlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwh
RU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAg
ICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5z
OnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJ
dGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVE
PgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3
dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2Nh
dGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0idGV4dHJlcGxhY2V3aG9sZXRleHQwNy5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3
aG9sZXRleHQwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0
NTFhNDY2YjY0MzFhMjRkNmI3YTQ5MzJhNmRjZDMxNDQ1ZTY0MmUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOAotU3RhdHVzCWZhaWx1cmUKLU1l
c3NhZ2UJdGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBhc3NlcnRUcnVlIGZhaWxl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBs
YWNld2hvbGV0ZXh0MDguanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4
dHJlcGxhY2V3aG9sZXRleHQwOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA4
NTRiMzBmMmZmYTc0ZDczYTcxNGFmZjdkYzdiZDMwYTA1ODljMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNiAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1BcHBlbmRzIGFuIGVudGl0eSByZWZlcmVuY2UgY29udGFpbmluZyB0
ZXh0IGFuZCBhbiBlbGVtZW50IHRvIGFuIGV4aXN0aW5nCi10ZXh0IG5vZGUsIHRoZW4gY2FsbHMg
VGV4dC5yZXBsYWNlV2hvbGVUZXh0IG9uIHRoZSBleGlzdGluZyB0ZXh0IG5vZGUuCi1BIE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUiBzaG91bGQgYmUgdGhyb3duLgotCi0qIEBhdXRob3IgQ3Vy
dCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwt
My1Db3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdob2xlVGV4dAotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD00MjUKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTQwCi0qLwotZnVuY3Rp
b24gdGV4dHJlcGxhY2V3aG9sZXRleHQwOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0ZXh0MDgiKSAhPSBu
dWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlzdDsKLSAgICAgIHZh
ciBwOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBub2RlOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0g
bG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRF
bGVtZW50c0J5VGFnTmFtZSgicCIpOwotICAgICAgcCA9IGl0ZW1MaXN0Lml0ZW0oMCk7Ci0gICAg
ICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQyIik7Ci0gICAgICBub2Rl
ID0gcC5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgbm9kZSA9IHAuZmlyc3RDaGlsZDsKLQot
ICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBub2Rl
ID0gbm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJ5byIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4Lnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmFlOTk2OWFmOGM2ZDEwMjM0ZmEw
MDM2MmQ3ODUzZTY5N2QwZDFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdo
b2xldGV4dDA4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWwgWwotPCFFTlRJVFkgZW50MSAnZm9vJz4KLTwhRU5USVRZIGVudDIgJ2Zvbzxici8+Jz4K
LTwhRUxFTUVOVCBodG1sIChoZWFkLCBib2R5KT4KLTwhQVRUTElTVCBodG1sIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotPCFFTEVNRU5UIGhlYWQgKHRpdGxlLHNjcmlwdCopPgotPCFFTEVNRU5UIHNj
cmlwdCAoI1BDREFUQSk+Ci08IUFUVExJU1Qgc2NyaXB0IAotICAgICBzcmMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgdHlwZSBDREFUQSAjSU1QTElFRAotICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVE
PgotPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KLTwhRUxFTUVOVCBib2R5IChwKT4KLTwhQVRU
TElTVCBib2R5IG9ubG9hZCBDREFUQSAjSU1QTElFRD4KLTwhRUxFTUVOVCBwICgjUENEQVRBfGJy
KSo+Ci08IUVMRU1FTlQgYnIgRU1QVFk+Ci1dPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPgotPGhlYWQ+Ci08dGl0bGU+cmVwbGFjZVdob2xlVGV4dCBzYW1wbGU8
L3RpdGxlPgotPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nc2VsZnhodG1sLmpz
Jz48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9J1VURi04JyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
IHNyYz0ndGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyc+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08
L3NjcmlwdD48L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLTxwPmJhcjwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vu
dGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFjM2Q5Y2JkZjcwMGU2OTZiNmEw
NzQ4NTBjNjI2YzQzODYzNjc5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHkt
ZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1U
ZXN0IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIGFsd2F5cyB0cmVhdGVk
IHJlYWRvbmx5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHhtbERvYzIu
YWRvcHROb2RlKGVudGl0eVJlZmVyZW5jZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVu
Y2Uub3duZXJEb2N1bWVudCBpcyB4bWxEb2MKLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1
ZSA9ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSBpcyBu
dWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5hbWVzcGFjZUVycm9yOiBET00gRXhjZXB0aW9uIDE0LgotUEFTUyBlbnRpdHlSZWZl
cmVuY2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLnRleHRDb250ZW50ID0g
J2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA3LgotRkFJTCBlbnRpdHlSZWZlcmVuY2UudGV4dENvbnRlbnQgc2hvdWxk
IGJlID4uIFdhcyAuCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBiZSAx
LiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24g
Ny4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIGlzIGNoaWxkcmVuQmVm
b3JlRmFpbGVkQXBwZW5kCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIHNob3VsZCBi
ZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmluc2VydEJlZm9yZSh0ZXh0LCBlbnRp
dHlSZWZlcmVuY2UuZmlyc3RDaGlsZCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uu
Y2hpbGROb2Rlcy5sZW5ndGggaXMgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2Vw
dGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZiMTY0MWJlZDQ0NzMw
NzBmYmMyZTlmMzQ5YzE5Y2I4MWQzZThmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVh
ZG9ubHktZXhjZXB0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlYWRvbmx5
LWV4Y2VwdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1Q
TEFURS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10
ZXN0cy9URU1QTEFURS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmVlZDkz
YTVlMDZkODg0MTI4ZGYzYjM0ZGI1NDJkODUwNzFlMzVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVy
ZW5jZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICsw
LDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9IllPVVJfSlNfRklM
RV9IRVJFIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhj
ZXB0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQt
dGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWYyNDY1N2Q4MmRiM2U4YTdmYmJlNDg3N2QzZDNkNjNiMTA5ZDQ3Ny4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9F
bnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdCB0byBtYWtlIHN1cmUg
RW50aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBhbHdheXMgdHJlYXRlZCByZWFkb25seSIpCi0KLXZh
ciB4bWxEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7Ci12YXIgeG1sRG9jMiA9IGRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZhciBlbnRpdHlSZWZlcmVuY2UgPSB4bWxEb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotCi1zaG91bGRUaHJvdygieG1sRG9jMi5hZG9w
dE5vZGUoZW50aXR5UmVmZXJlbmNlKSIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5vd25l
ckRvY3VtZW50IiwgInhtbERvYyIpCi0KLS8vIG5vZGVWYWx1ZSBpcyBkZWZpbmVkIHRvIGJlIG51
bGwgZm9yIEVudGl0eSBSZWZlcmVuY2Ugbm9kZXMsIGFuZCB0aHVzIHNob3VsZCBzaWxlbnRseSBm
YWlsIHRvIG1vZGlmeQotLy8gU3BlYyBpcyBhbWJpZ2lvdXMgYXMgdG8gaWYgd2Ugc2hvdWxkIHRo
cm93IGhlcmUgb3Igbm90LiAgSSd2ZSByZXF1ZXN0ZWQgY2xhcmlmaWNhdGlvbjoKLS8vIGh0dHA6
Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAwOEphbk1hci8wMDA5Lmh0
bWwKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlID0gJ2ZvbyciKTsKLXNo
b3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQotc2hvdWxkVGhy
b3coImVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJl
ZmVyZW5jZS5wcmVmaXgiLCAibnVsbCIpOwotCi1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNl
LnRleHRDb250ZW50ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UudGV4dENv
bnRlbnQiLCAiJz4nIik7Ci0KLXZhciBjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCA9IGVudGl0
eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3VsZEJlKCJjaGlsZHJlbkJlZm9yZUZh
aWxlZEFwcGVuZCIsICIxIik7Ci12YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJG
QUlMIik7Ci1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLmFwcGVuZENoaWxkKHRleHQpIik7
Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIiwgImNoaWxkcmVu
QmVmb3JlRmFpbGVkQXBwZW5kIik7Ci0KLWNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kID0gZW50
aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hvdWxkQmUoImNoaWxkcmVuQmVmb3Jl
RmFpbGVkQXBwZW5kIiwgIjEiKTsKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2UuaW5zZXJ0
QmVmb3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENoaWxkKSIpOwotc2hvdWxkQmUoImVu
dGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCIsICJjaGlsZHJlbkJlZm9yZUZhaWxlZEFw
cGVuZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFsLXZh
bHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFs
dWVzLWV4cGVjdGVkLnR4dAppbmRleCAyNmYwZWMyYTNkZWJmZTdhN2VkZWIwOGUyZDEwMWE3NDE1
ZGNkZmI1Li4xYzk4MWZiM2I1ZDg5MjdkNWE4NDMzOGYzNzEyNDUzYTYwY2U4MWYxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVk
LnR4dApAQCAtMTEzLDEyICsxMTMsNiBAQCBQQVNTIGVsZW1lbnQubmFtZXNwYWNlVVJJIGlzICdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwogUEFTUyBlbGVtZW50LnByZWZpeCBpcyAnaHRt
bCcKIFBBU1MgZWxlbWVudC5ub2RlVmFsdWUgaXMgbnVsbAogUEFTUyBlbGVtZW50LmF0dHJpYnV0
ZXMudG9TdHJpbmcoKSBpcyAnW29iamVjdCBOYW1lZE5vZGVNYXBdJwotUEFTUyBkb2N1bWVudC5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoJ2d0JykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBw
b3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZU5h
bWUgaXMgJ2d0JwotUEFTUyBlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIGlzIG51bGwKLVBBU1Mg
ZW50aXR5UmVmZXJlbmNlLm5hbWVzcGFjZVVSSSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5j
ZS5wcmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIGlzIG51bGwK
IFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5vZGVOYW1lIGlzICd4bWwtc3R5bGVzaGVldCcK
IFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLmxvY2FsTmFtZSBpcyBudWxsCiBQQVNTIHByb2Nl
c3NpbmdJbnN0cnVjdGlvbi5uYW1lc3BhY2VVUkkgaXMgbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1ZXMuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwppbmRl
eCA3MzFhODA2MzkwODY5OGI0Njk1YjI4YzM2Yjc3M2E3ZGQxYTMwMzU0Li45YjEyYTk3OTAxYzAz
OTQzMjMzMmQzM2RmY2FkYzk4MjdmYjZhYWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVlcy5qcwpAQCAtMTU2LDE2
ICsxNTYsNiBAQCBzaG91bGRCZSgiZWxlbWVudC5wcmVmaXgiLCAiJ2h0bWwnIik7CiBzaG91bGRC
ZSgiZWxlbWVudC5ub2RlVmFsdWUiLCAibnVsbCIpOwogc2hvdWxkQmUoImVsZW1lbnQuYXR0cmli
dXRlcy50b1N0cmluZygpIiwgIidbb2JqZWN0IE5hbWVkTm9kZU1hcF0nIik7CiAKLS8vIE5vdCBw
b3NzaWJsZSB0byBjcmVhdGUgRW50aXR5IG5vZGVzIHZpYSB0aGUgRE9NLCBXZWJLaXQgZG9lc24n
dCBjcmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKLQotc2hvdWxkVGhyb3coImRvY3VtZW50LmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgnZ3QnKSIpOwotdmFyIGVudGl0eVJlZmVyZW5jZSA9IHhtbERvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5v
ZGVOYW1lIiwgIidndCciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubG9jYWxOYW1lIiwg
Im51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UubmFtZXNwYWNlVVJJIiwgIm51bGwi
KTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UucHJlZml4IiwgIm51bGwiKTsKLXNob3VsZEJl
KCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwiKTsKLQogLy8gTm90IHBvc3NpYmxl
IHRvIGNyZWF0ZSBOb3RhdGlvbiBub2RlcyB2aWEgdGhlIERPTSwgV2ViS2l0IGRvZXNuJ3QgY3Jl
YXRlIHRoZW0gZnJvbSBwYXJzaW5nCiAKIHZhciBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSBkb2N1
bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3htbC1zdHlsZXNoZWV0JywgJ3R5cGU9
XCJ0ZXh0L3hzbFwiIGhyZWY9XCJtaXNzaW5nLnhzbFwiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
CmluZGV4IDc3MTNmYzljZjQ4N2Y2OTc5ODE4NzQyMmUxMjcxYWE4NjJiZTYyNTcuLjc0N2NkN2U2
MjU5Y2RkY2EwYmUyNWNlZTRiNWNjMmEwMWY3MGNmMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
CkBAIC0zMyw4ICszMyw2IEBAIFBBU1M6IGNhbkdldCgnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJl
ICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0RvY3VtZW50VHlwZScpIHNob3VsZCBiZSAn
dHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFbGVtZW50Jykgc2hvdWxkIGJlICd0cnVlJyBh
bmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0VsZW1lbnQnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4K
LVBBU1M6IGNhbkdldCgnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMu
Ci1QQVNTOiBjYW5TZXQoJ0VudGl0eVJlZmVyZW5jZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlz
LgogUEFTUzogY2FuR2V0KCdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBB
U1M6IGNhblNldCgnRXZhbEVycm9yJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBj
YW5HZXQoJ0V2ZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggZmZmNWM0
YWQwODE0YWI5YzFjYzA0NmFmZWJiMThjOWQ3OGJjNjc0MC4uNDQzMTZhYzc4ZjEzODc4MDQ5MGU0
ZTU2MTJhYjJhZDhmYjdlMDllYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbApAQCAtODQsNyArODQsNiBAQCB2YXIgd2luZG93
UmVhZFdyaXRlUHJvcGVydGllcyA9IFsKICAgICAiRG9jdW1lbnRGcmFnbWVudCIsIAogICAgICJE
b2N1bWVudFR5cGUiLCAKICAgICAiRWxlbWVudCIsIAotICAgICJFbnRpdHlSZWZlcmVuY2UiLCAK
ICAgICAiRXZhbEVycm9yIiwgCiAgICAgIkV2ZW50IiwgCiAgICAgIkhUTUxBbmNob3JFbGVtZW50
IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dp
bmRvdy1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNl
cy93aW5kb3ctcHJvcGVydGllcy5qcwppbmRleCBmOWM3MDkyOTI5Mjk4Yzc2Zjc5Y2U1ZjZhNmFl
NTJmYzljZWMwZGY1Li45ZDQzMGVjZWIyZWFjN2E1NzE4YjM3ZmQ2M2RlN2NlMjRhYmExYjNlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1w
cm9wZXJ0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMv
d2luZG93LXByb3BlcnRpZXMuanMKQEAgLTU2LDcgKzU2LDYgQEAgdmFyIHByb3BlcnR5SW5mbyA9
IFsKICAgICBbIkRvY3VtZW50RnJhZ21lbnQiLCAib2JqZWN0Il0sCiAgICAgWyJEb2N1bWVudFR5
cGUiLCAib2JqZWN0Il0sCiAgICAgWyJFbGVtZW50IiwgIm9iamVjdCJdLAotICAgIFsiRW50aXR5
UmVmZXJlbmNlIiwgIm9iamVjdCJdLAogICAgIFsiRXZlbnQiLCAib2JqZWN0Il0sCiAgICAgWyJF
dmVudEV4Y2VwdGlvbiIsICJvYmplY3QiXSwKICAgICBbIkhUTUxBbmNob3JFbGVtZW50IiwgIm9i
amVjdCJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1s
b29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCA2N2QzMDJjZWVk
NTIwNTYzZGZlMWRiZjdmNzkwMGQyMGZkODQ4OGIwLi4xMTIyMTRhNzdiZjUzZjBjMTJmZjNhYmEz
ZTcwN2VmMTMwN2U2YWI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAt
MTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1
bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9
PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydF
bGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3
aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1Q
QVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29u
c3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmpl
Y3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQn
XSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50
J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVu
dEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0
cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKaW5kZXggMzAyYTA5Yjg2YTVi
ZjJlNzk5ZDI0YzhlNjllMTMwN2UxYTRkMjZkMS4uYWJmNjdhZDJlOWFmNjE4Y2FmODU3NzcwYmEw
OTExNDRhMTcyNDRhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dApAQCAt
OTYsOCArOTYsNiBAQCBQQVNTOiBDb21tZW50IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzog
Q0RBVEFTZWN0aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogRG9jdW1lbnRUeXBlIHN1
Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
Ci1QQVNTOiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1QQVNTOiBFbnRpdHlSZWZlcmVu
Y2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gc3Vj
Y2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRG9jdW1lbnQgc3VjY2Vzc2Z1bGx5IHNoYWRv
d2VkCiBQQVNTOiBIVE1MRWxlbWVudCBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2lu
Zy5odG1sCmluZGV4IDliNDZlYWNlMDEzNzBjNTUyNjJkMGVmNjRkNjgxYWU1NmVhYmMwMmMuLmNi
NzRmYjA0YTA3MjUyZjEwYjVkYzYzZjljNjA0YjE1MTkwYzVkOWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcu
aHRtbApAQCAtMjE1LDEwICsyMTUsNiBAQAogICAgICAgICBsb2coRG9jdW1lbnRUeXBlID09IDEg
PyAiUEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRG9j
dW1lbnRUeXBlIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIE5vdGF0aW9uID0gMTsK
ICAgICAgICAgbG9nKE5vdGF0aW9uID09IDEgPyAiUEFTUzogTm90YXRpb24gc3VjY2Vzc2Z1bGx5
IHNoYWRvd2VkIiA6ICJGQUlMOiBOb3RhdGlvbiB3YXMgbm90IHNoYWRvd2VkIik7Ci0gICAgICAg
IHZhciBFbnRpdHkgPSAxOwotICAgICAgICBsb2coRW50aXR5ID09IDEgPyAiUEFTUzogRW50aXR5
IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRW50aXR5IHdhcyBub3Qgc2hhZG93ZWQi
KTsKLSAgICAgICAgdmFyIEVudGl0eVJlZmVyZW5jZSA9IDE7Ci0gICAgICAgIGxvZyhFbnRpdHlS
ZWZlcmVuY2UgPT0gMSA/ICJQQVNTOiBFbnRpdHlSZWZlcmVuY2Ugc3VjY2Vzc2Z1bGx5IHNoYWRv
d2VkIiA6ICJGQUlMOiBFbnRpdHlSZWZlcmVuY2Ugd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAg
ICB2YXIgUHJvY2Vzc2luZ0luc3RydWN0aW9uID0gMTsKICAgICAgICAgbG9nKFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiA9PSAxID8gIlBBU1M6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBzdWNjZXNzZnVs
bHkgc2hhZG93ZWQiIDogIkZBSUw6IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiB3YXMgbm90IHNoYWRv
d2VkIik7CiAgICAgICAgIHZhciBIVE1MRG9jdW1lbnQgPSAxOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRleCA0YTE4YWRmN2Jh
ZjY2OWM3NjFkNTE5N2IxMzRkYTBiZmVlODcyZTg2Li4zN2MzNTQxOTM4ZjExMDdkNjZjYzkzMTUw
YzFiMTQzNjVmNWVhOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29u
c3RydWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29u
c3RydWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDYgQEAgUEFTUyBUcnlBbGxvY2F0ZSgn
Q2hhcmFjdGVyRGF0YScpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdDREFUQVNl
Y3Rpb24nKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRG9jdW1lbnRUeXBlJykg
aXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0VsZW1lbnQnKSBpcyAnZXhjZXB0aW9u
JwotUEFTUyBUcnlBbGxvY2F0ZSgnRW50aXR5UmVmZXJlbmNlJykgaXMgJ2V4Y2VwdGlvbicKIFBB
U1MgVHJ5QWxsb2NhdGUoJ0V2ZW50VGFyZ2V0JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxs
b2NhdGUoJ0hUTUxEb2N1bWVudCcpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdO
b2RlJykgaXMgJ2V4Y2VwdGlvbicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Rv
bS1jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3Rv
cnMuaHRtbAppbmRleCBmMjQ5OWRjMDQ2NTM3NzM3NmZhODg2YjJjYmIzYmQwYTlkODZlNDIxLi43
OTUzYjYxYTI1ZDIxMDczN2JiY2Y2YTQwODE2ZTFhZmM1MGNkYmUwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCkBAIC0xOCw3ICsxOCw2IEBAIHZhciBvYmpl
Y3RzX2V4Y2VwdGlvbiA9IFsKICAgICAnQ0RBVEFTZWN0aW9uJywKICAgICAnRG9jdW1lbnRUeXBl
JywKICAgICAnRWxlbWVudCcsCi0gICAgJ0VudGl0eVJlZmVyZW5jZScsCiAgICAgJ0V2ZW50VGFy
Z2V0JywKICAgICAnSFRNTERvY3VtZW50JywKICAgICAnTm9kZScsCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAppbmRleCA3ODhjYWJlNWQw
M2I1MWZmYmM0MGZmMzYzY2FkNmNhMDZhYjg1ZDQ5Li42OTJiYTcwNWZlZDgzYjI5NWEyNzA4ZDVl
NzM2MDZiMGU2YTAxYTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVy
LWNsYXNzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXIt
Y2xhc3Nlcy1leHBlY3RlZC50eHQKQEAgLTQ3LDkgKzQ3LDYgQEAgUEFTUyBqc1dyYXBwZXJDbGFz
cyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKS5jb25zdHJ1Y3RvcikgaXMgJ0NEQVRB
U2VjdGkKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4
JywgJ3gnLCAneCcpKSBpcyAnRWxlbWVudCcKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLl9fcHJvdG9fXykgaXMgJ0VsZW1lbnRQ
cm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnRO
UygneCcsICd4JywgJ3gnKS5jb25zdHJ1Y3RvcikgaXMgJ0VsZW1lbnRDb25zdHJ1Y3RvcicKLVBB
U1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkpIGlz
ICdFbnRpdHlSZWZlcmVuY2UnCi1QQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgpLl9fcHJvdG9fXykgaXMgJ0VudGl0eVJlZmVyZW5jZVByb3RvdHlw
ZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCkuY29uc3RydWN0b3IpIGlzICdFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3RvcicKIFBBU1MganNX
cmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpIGlz
ICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50
LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLl9fcHJvdG9fXykgaXMgJ1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvblByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuY29uc3RydWN0b3IpIGlzICdQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb25Db25zdHJ1Y3RvcicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2Vz
Lmh0bWwKaW5kZXggOGJlOGZlM2JmMGMyM2MwMzRhMDc3ODIzNTUwZDY3M2RmZTEwZWRjNy4uZmY4
MWQ4ZjkwNTA0NDBkYzFlMzFkMzA4MzM1NWM2NjMxMjljOTYzMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKQEAgLTkwLDcgKzkwLDYgQEAgZnVuY3Rpb24gcnVu
VGVzdCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9jdW1lbnQiKTsKICAgICB0ZXN0KCJ4
bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJDREFUQVNlY3Rpb24iKTsKICAgICB0
ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykiLCAiRWxlbWVu
dCIpOwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpIiwgIkVu
dGl0eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpOwogCiAgICAgZGVidWcoJycp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKaW5kZXggNjNlMjQyYTJmYmUz
MmI5ZDZiODNkNThjZWFkNTY0OWI0OTY3NDFiYi4uZDU5M2E1ZWFiYThhOGUwOGUwMWMwOWMyMjQz
MThkZTkwODYwY2Q4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CkBA
IC0xODcsNyArMTg3LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnIKIENPTlNPTEUgTUVTU0FH
RTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlu
cywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3QgY2hlY2tzIGNyb3NzLWZyYW1lIGFj
Y2VzcyBzZWN1cml0eSAocmRhcjovL3Byb2JsZW0vNTI1MTMwOSkuCiAKIApAQCAtMjM1LDcgKzIz
NCw2IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkRvY3VtZW50RnJhZ21lbnQnKSBzaG91
bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5Eb2N1bWVu
dFR5cGUnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdp
bmRvdy5FbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0
YXJnZXRXaW5kb3cuRW50aXR5Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgotUEFTUzogY2Fu
R2V0KCd0YXJnZXRXaW5kb3cuRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICdmYWxzZScgYW5k
IGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRXZhbEVycm9yJykgc2hvdWxkIGJlICdm
YWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRXZlbnQnKSBzaG91bGQg
YmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5IVE1MQW5jaG9y
RWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwK
aW5kZXggMzgwMGEwYjVlODEyNGI5NDVkODEwMzkwYzNlOWI1ZjkwZTU3ODM4ZC4uY2NlNWY3YTNm
MjM0MWNhYjdmZjA5Y2JlNzViM2IyZTY5ZGVhNmNmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwK
QEAgLTIwLDcgKzIwLDYgQEAKICAgICAgICAgICAgICJEb2N1bWVudFR5cGUiLCAKICAgICAgICAg
ICAgICJFbGVtZW50IiwgCiAgICAgICAgICAgICAiRW50aXR5IiwgCi0gICAgICAgICAgICAiRW50
aXR5UmVmZXJlbmNlIiwgCiAgICAgICAgICAgICAiRXZhbEVycm9yIiwgCiAgICAgICAgICAgICAi
RXZlbnQiLCAKICAgICAgICAgICAgICJIVE1MQW5jaG9yRWxlbWVudCIsIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBl
Y3RlZC50eHQKaW5kZXggZTQ1ODVhYmQ1MTYwNWMxZTJkOWU4YjlmMmNkODhhYmNkNWNhZDJlMC4u
MWVhNWJkYzZkOTQ5NzQ2ZTFlOWMyNTM1NjY0NjVjNDBiMzliODVjOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhw
ZWN0ZWQudHh0CkBAIC03OCw3ICs3OCw2IEBAIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0
V2luZG93LCAnRG9jdW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5H
ZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0RvY3VtZW50RnJhZ21lbnQnKSBzaG91bGQgYmUg
J2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0Rv
Y3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2Ny
aXB0b3IodGFyZ2V0V2luZG93LCAnRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4K
LVBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRW50aXR5UmVmZXJlbmNlJykg
c2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRX
aW5kb3csICdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5H
ZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0V2ZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5k
IGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdIVE1MQW5jaG9yRWxl
bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVz
Y3JpcHRvci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKaW5kZXggZGVhMDE3ZDY3OGEx
NWZkZDEzYzc3YTkyYWU1MTVjNzA4ZTdiZDNhYy4uMzA2NmIzYTJhZmNiNWQ1ZDIzOTFmY2Y0OTlk
MWUzNDk0NjUxNTQxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKQEAgLTE5LDcgKzE5LDYgQEAKICAgICAgICAgICAgICJE
b2N1bWVudEZyYWdtZW50IiwgCiAgICAgICAgICAgICAiRG9jdW1lbnRUeXBlIiwgCiAgICAgICAg
ICAgICAiRWxlbWVudCIsIAotICAgICAgICAgICAgIkVudGl0eVJlZmVyZW5jZSIsIAogICAgICAg
ICAgICAgIkV2YWxFcnJvciIsIAogICAgICAgICAgICAgIkV2ZW50IiwgCiAgICAgICAgICAgICAi
SFRNTEFuY2hvckVsZW1lbnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0
CmluZGV4IDQ3ZmQ1NDM5ZDM3ZDc2ZDEwNjU0OWE3MTliYjVhYzkyMjkyM2NiZWMuLjg1YjBhYmEx
YjE1YjQ2ZWFlYmEwNjBmYmQ1NWUyOTI5ZjQxMjUyZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
cHV0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
NTQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE1MjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBB
TEVSVDogUEFTUzogd2luZG93LkF0dHIgc2hvdWxkIGJlICdbb2JqZWN0IEF0dHJDb25zdHJ1Y3Rv
cl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQ0RBVEFTZWN0aW9uIHNob3VsZCBiZSAn
W29iamVjdCBDREFUQVNlY3Rpb25Db25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3
aW5kb3cuQ2hhcmFjdGVyRGF0YSBzaG91bGQgYmUgJ1tvYmplY3QgQ2hhcmFjdGVyRGF0YUNvbnN0
cnVjdG9yXScgYW5kIGlzLgpAQCAtMTQsOCArMTQsNiBAQCBBTEVSVDogUEFTUzogd2luZG93LkRP
TUV4Y2VwdGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdJyBh
bgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5ET01JbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgJ1tvYmpl
Y3QgRE9NSW1wbGVtZW50YXRpb25Db25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3
aW5kb3cuRE9NUGFyc2VyIHNob3VsZCBiZSAnW29iamVjdCBET01QYXJzZXJDb25zdHJ1Y3Rvcl0n
IGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRWxlbWVudCBzaG91bGQgYmUgJ1tvYmplY3Qg
RWxlbWVudENvbnN0cnVjdG9yXScgYW5kIGlzLgotQUxFUlQ6IFBBU1M6IHdpbmRvdy5FbnRpdHkg
c2hvdWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KLUFMRVJUOiBQQVNTOiB3aW5kb3cuRW50aXR5
UmVmZXJlbmNlIHNob3VsZCBiZSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0n
IGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRXZhbEVycm9yIHNob3VsZCBiZSAnZnVuY3Rp
b24gRXZhbEVycm9yKCkgeyAgICBbbmF0aXZlIGNvZGVdfScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6
IHdpbmRvdy5FdmVudCBzaG91bGQgYmUgJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGFuZCBp
cy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQgc2hvdWxkIGJlICdbb2Jq
ZWN0IEhUTUxBbmNob3JFbGVtZW50Q29uc3RydWN0b3JdJyBhbmQgaXMuCkBAIC0yNzQsMTUgKzI3
MiwxNSBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIwOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEy
MTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTIyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxMjM6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyNDogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTMzOiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzU6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDEzMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTM0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzY6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzNzogQmxvY2tlZCBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9t
YWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM4OiBC
bG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBh
Y2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJv
dG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTog
bGluZSAxMzk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE0MDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0
Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNDI6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0MzogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTQ0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxNDU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0NjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCkBAIC0zMjEsNyArMzE5LDcgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3
ODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYK
IENPTlNPTEUgTUVTU0FHRTogbGluZSAxNzk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4MDogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTgxOiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Np
bmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xz
LCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
ODI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE4NDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTg1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODY6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NzogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0zMzcsNyArMzM1LDcgQEAgQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE5NjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOTc6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5ODog
QmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20g
YWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFBy
b3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTk5OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAyMDA6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjAzOiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMDQ6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90
b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDIwNTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0zNzAs
NyArMzY4LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzMTogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSAyMzI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDIzMzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjM0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMzU6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogVGhpcyB0ZXN0IGNoZWNrcyBjcm9zcy1mcmFtZSBhY2Nl
c3Mgc2VjdXJpdHkgb2Ygd2luZG93IGF0dHJpYnV0ZSBzZXR0ZXJzIChyZGFyOi8vcHJvYmxlbS81
MzI2NzkxKS4KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCmluZGV4IGFjMDI0Zjg1NWFhODY2ZTY3
MTdiOTdmZmIxYjc0OTU2YjNjNWQ3M2MuLmEyYjZiODcwYTE4YzczOTI1NDhjMWVhOWQ4NTkyMjc4
MjljYjZlMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCkBAIC01MCw3ICs1MCw2IEBAIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRE9N
SW1wbGVtZW50YXRpb24iKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3cs
ICJET01QYXJzZXIiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJF
bGVtZW50Iik7Ci0gICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRW50aXR5
UmVmZXJlbmNlIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRXZh
bEVycm9yIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiRXZlbnQi
KTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRXaW5kb3csICJIVE1MQW5jaG9yRWxl
bWVudCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNv
dXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQt
dGVzdC5odG1sCmluZGV4IDM2ZjgyNmJkOTA1ZjA1Nzc4MGI4YjYzODY5NmY3OTM3ZTVjNGM4OGYu
LmI2N2RmYzM5ZmIwMjNiMGM5NzdlZWM4M2M5NjY2MWI4YzE5OGUwZDUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFt
ZS1mb3ItcHV0LXRlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwKQEAgLTU4LDgg
KzU4LDYgQEAKICAgICAgICAgdmFyIERPTUltcGxlbWVudGF0aW9uT2xkID0gd2luZG93LkRPTUlt
cGxlbWVudGF0aW9uOwogICAgICAgICB2YXIgRE9NUGFyc2VyT2xkID0gd2luZG93LkRPTVBhcnNl
cjsKICAgICAgICAgdmFyIEVsZW1lbnRPbGQgPSB3aW5kb3cuRWxlbWVudDsKLSAgICAgICAgdmFy
IEVudGl0eU9sZCA9IHdpbmRvdy5FbnRpdHk7Ci0gICAgICAgIHZhciBFbnRpdHlSZWZlcmVuY2VP
bGQgPSB3aW5kb3cuRW50aXR5UmVmZXJlbmNlOwogICAgICAgICB2YXIgRXZhbEVycm9yT2xkID0g
d2luZG93LkV2YWxFcnJvcjsKICAgICAgICAgdmFyIEV2ZW50T2xkID0gd2luZG93LkV2ZW50Owog
ICAgICAgICB2YXIgSFRNTEFuY2hvckVsZW1lbnRPbGQgPSB3aW5kb3cuSFRNTEFuY2hvckVsZW1l
bnQ7CkBAIC0yNjEsOCArMjU5LDYgQEAKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRE9N
SW1wbGVtZW50YXRpb24iLCAiRE9NSW1wbGVtZW50YXRpb25PbGQiKTsKICAgICAgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuRE9NUGFyc2VyIiwgIkRPTVBhcnNlck9sZCIpOwogICAgICAgICAgICAg
c2hvdWxkQmUoIndpbmRvdy5FbGVtZW50IiwgIkVsZW1lbnRPbGQiKTsKLSAgICAgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuRW50aXR5IiwgIkVudGl0eU9sZCIpOwotICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5FbnRpdHlSZWZlcmVuY2UiLCAiRW50aXR5UmVmZXJlbmNlT2xkIik7CiAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LkV2YWxFcnJvciIsICJFdmFsRXJyb3JPbGQiKTsKICAg
ICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZlbnQiLCAiRXZlbnRPbGQiKTsKICAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQiLCAiSFRNTEFuY2hvckVsZW1l
bnRPbGQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKaW5k
ZXggOWJlYTJhM2Q2NjY2ZDBkOTM2YzEwY2ZiMTE2OTFhMTk2YjRhZGI4My4uOWJhYzg3NmI0MDlh
NDc4ZGRlZmViYjA5NWY2NjQwZDQ0MmRjMDNiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlz
dG9yaWNhbC1leHBlY3RlZC50eHQKQEAgLTksNyArOSw3IEBAIFBBU1MgSGlzdG9yaWNhbCBET00g
ZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01Mb2NhdG9yCiBQQVNTIEhpc3RvcmljYWwgRE9N
IGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NT2JqZWN0IAogUEFTUyBIaXN0b3JpY2FsIERP
TSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTVVzZXJEYXRhIAogUEFTUyBIaXN0b3JpY2Fs
IERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eSAKLUZBSUwgSGlzdG9yaWNhbCBE
T00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlSZWZlcmVuY2UgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXSIKK1BBU1MgSGlzdG9yaWNhbCBE
T00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlSZWZlcmVuY2UgCiBGQUlMIEhpc3Rv
cmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRXZlbnRFeGNlcHRpb24gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdIgogUEFTUyBIaXN0b3Jp
Y2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5hbWVMaXN0IAogUEFTUyBIaXN0b3Jp
Y2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5vdGF0aW9uIApAQCAtMTksOSArMTks
NyBAQCBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogUmFuZ2VF
eGNlcHRpb24KIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBj
cmVhdGVDREFUQVNlY3Rpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5k
ZWZpbmVkIGJ1dCBnb3QgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gY3JlYXRlQ0RBVEFT
ZWN0aW9uKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iCi1GQUlMIEhpc3RvcmljYWwgRE9NIGZl
YXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogY3JlYXRlRW50aXR5UmVmZXJlbmNlIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIGNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpIHsKLSAgICBbbmF0aXZlIGNv
ZGVdCi19IgorUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IGNy
ZWF0ZUVudGl0eVJlZmVyZW5jZSAKIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBi
ZSByZW1vdmVkOiB4bWxFbmNvZGluZyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVk
KSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBudWxsCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZl
YXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogeG1sU3RhbmRhbG9uZSBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoYm9vbGVhbikgZmFsc2UKIEZBSUwg
SGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxWZXJzaW9uIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChvYmplY3Qp
IG51bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMmQ4ZGM4ZTE5ODU5NzQ1OGM5
MzE0ZGVkYmVlMjdjZjM2MWQ2ZTM4ZC4uNzk4OTU4MmFiM2ViOGFjMDUwYTNkOGE3NWRhZWM0MjY4
YmRlZDdmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMxMywxMSArMzEzLDYg
QEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQn
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcp
LmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBp
cyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
LVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZl
cmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxl
IGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JF
dmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9y
RXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKaW5kZXggYmFhYjQ5ODIwZjRkYTlmMzM5MzBiMmI3OTk0MmU5MzMxMDVlOGY3
MC4uNDU3ZTk5MDE0ZDQzODkzMmNhNDYzMjc4NGM5YjZjYTU3ODlkMmUyNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzEzLDExICsz
MTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxl
bWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZh
bHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBm
YWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1l
cmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBF
cnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1w
cmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCBlZGI3NTUwNzYyOWM3YzBkYzYyMDdiZjA0OTQ2
MGE0ZDU3ODk0YTgyLi44MmIwMjRhODY2YTQwZDMyOTFjNjVjNzNhZmNmOWJjMjQzYTk3NDVmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0CkBAIC0xMTQsOCArMTE0LDYgQEAgUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2Jq
ZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0RvY3VtZW50
VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFT
UyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVl
CiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZl
cmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9
PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2lu
WydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdp
blsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3
aW5bJ0V2ZW50RXhjZXB0aW9uJ10gPT0gJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rv
cl0nIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dAppbmRleCBhMGM2ZmY0Zjg3OWM1OTljNjAwN2U2N2U2OTViMjFhNTYyZTI2OTlmLi5l
NjgxYTQ2YTRmOGU2ZWQ1ZTI0Yjc3YTE3OTMwYWM1MTVlOGU2NGQ1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRl
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMTgsMTEgKzMxOCw2
IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50
JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQn
KS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUg
aXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJs
ZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9y
RXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJv
ckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1h
dmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYzE1YjY2NWEwZmZhYjY3NmMw
ZmU4ZDk3NWY4MzhiNzdkODk4OWJjOC4uZTE4NDI5NWMwZWMxM2M4MDNkM2JmNTk1MDQxNzhhY2Y1
M2NhNmVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMwOCw2IEBAIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxl
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVm
ZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50
aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFz
T3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVy
ZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFz
T3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAwZmJjNGIwMjhkOTJlNmFkZmE2NjM3NmU4ZWUyYmY2
N2VjNGZjZjMuLjk0ZDc4MTI2MjkwZDBiM2YwMzdhNDk2NWZhNWRmN2RhM2RjMjg3NWMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50Jyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmln
dXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJh
YmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAt
cHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKaW5kZXggOTNk
YWRjMDMxZjYyZjM2NjNhODk2NjAzYTNkYWIxOGVlMjY0MzJhNC4uMTYyZjQ4ZmM1NmI5ODc5YjNh
OWIxMzZiOGI3MWIyZWY5YTg3YTJlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxv
b2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0LDggKzExNCw2IEBAIFBBU1Mgd2lu
WydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVD
b25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxl
bWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVj
dCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNl
J10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNT
IHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3Ry
dWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0
cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25z
dHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudEV4Y2VwdGlvbiddID09ICdbb2JqZWN0
IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1v
YmpjLWV4cGVjdGVkLnR4dAppbmRleCBjMmNmZmUxNGJkM2UyMGNhZTUzM2ZjOTBjZDdhNzVkZGVm
NTRhYjE3Li43YzJiMTczMTE0NDVmM2M3ZDQzNzBlODRjMDc2ODFmZDM5MmYyY2YyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9i
amMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93
cmFwcGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKQEAgLTIxLDcgKzIxLDYgQEAgWE1MCiBQ
QVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQpIGlzICdET01Eb2N1bWVudCcKIFBBU1Mg
b2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSkgaXMgJ0RP
TUNEQVRBU2VjdGlvbicKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVF
bGVtZW50TlMoJ3gnLCAneCcsICd4JykpIGlzICdET01FbGVtZW50JwotUEFTUyBvYmpDV3JhcHBl
ckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpKSBpcyAnRE9NRW50aXR5
UmVmZXJlbmNlJwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigpKSBpcyAnRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uJwogCiBFdmVu
dHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVy
LWNsYXNzZXMtb2JqYy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKaW5kZXggMGJiYjQ0NWFjZjc1YTgwOTkyNGJiYzIyODk2
ODIyODQ2YzNhM2MxYi4uZjM1OWQ5NDNkMDhkMGMwMDljY2I2N2FiNzIyZTg2OGJkNjFiYWUzMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xh
c3Nlcy1vYmpjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKQEAgLTEwMyw3ICsxMDMsNiBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkKICAgICB0ZXN0KCJ4bWxEb2N1bWVudCIsICJEb2N1bWVudCIpOwogICAgIHRlc3QoInht
bERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpIiwgIkNEQVRBU2VjdGlvbiIpOwogICAgIHRl
c3QoInhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKSIsICJFbGVtZW50
Iik7Ci0gICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkiLCAiRW50
aXR5UmVmZXJlbmNlIik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCkiLCAiUHJvY2Vzc2luZ0luc3RydWN0aW9uIik7CiAKICAgICBkZWJ1ZygnJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5k
ZXggMDQ0ZjE0ZjBlNTI5NmU2NzVkOGI0M2M4YjQzZDgwMmQyNjk3NzExOC4uYzFhNDIyZjBhMTU1
NzcxOGMxYTdlZDlmMTA0Zjg4Y2Q5NTBhNTYxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICszMDgsNiBAQCBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJs
ZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJl
ZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vu
dGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhh
c093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UK
LVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZl
cmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhh
c093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFs
LWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dAppbmRleCAwODNhMDcxZjZjZTZlYjVlZDIxY2QwNDYwMWEzYWJlNzYxOTMxZmJmLi42ZWJhYWFm
NmNjY2EwMTBhOTJmZjcwN2YxOTI0MWRjODU1N2NlZjhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0yMzgsMTEgKzIzOCw2IEBAIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFz
T3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVt
ZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50
aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNl
JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBm
YWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50
JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQn
KSBpcyBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261668</attachid>
            <date>2015-09-21 11:31:33 -0700</date>
            <delta_ts>2015-09-21 15:00:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150921113117.patch</filename>
            <type>text/plain</type>
            <size>449641</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDllOThhOWFlODM1MzIw
ZDE0YzQ1MWUzMzJlOTBhOGE1NmYzYmZhNC4uY2MyMDUwY2QwMjQ4MTBkMTNjNjM1MDM1NzExMjQ3
OWUwMTI4MDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wOS0xOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKIDIwMTUtMDktMjEgIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vvay5v
aEBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIG1lZGlhIGNvbnRyb2xzIGRvZXMgbm90
IHNob3cgdXAgd2hlbiBwbGF5aW5nIHZpZGVvIGZpbmlzaGVzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJhY2Fk
ZDA4ZmJmZjQ4YmY5NTlkNDg4NTEwZGE3ZDE3ZDc4YzIyOTMuLjNkZDkwMGEwZTJkNjA2NDdkOTVh
OTE1NmQ0NzA0YWY0YWE2NTUzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0w
OS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3Vw
cG9ydCBmb3IgbGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIGhhbmRsaW5nIEVudGl0
eVJlZmVyZW5jZSBOb2Rlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL21hYy9XS0RPTUludGVybmFscy5tbToKKyAgICAgICAgKFdlYktpdDo6V0tET01Ob2RlQ2xh
c3MpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6aXNBc3Npc3RhYmxlRWxlbWVudCk6CisKIDIwMTUtMDkt
MjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAg
ICBSZW1vdmUgWEhSX1RJTUVPVVQgY29tcGlsYXRpb24gZ3VhcmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggYjVhY2I0MTE4MTg5NjY0ZmI4NTgzMmY0Zjc0MjMyMDhlZTM1MDRkMi4uNmE2NTVkZDI4
MjQ0ZjdkNTA0NjhmYTZmMWExYThhODIyYWNhODM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTM5MSw3ICszOTEsNiBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGRvbS9E
b2N1bWVudEZyYWdtZW50LmlkbAogICAgIGRvbS9Eb2N1bWVudFR5cGUuaWRsCiAgICAgZG9tL0Vs
ZW1lbnQuaWRsCi0gICAgZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKICAgICBkb20vRXJyb3JFdmVu
dC5pZGwKICAgICBkb20vRXZlbnQuaWRsCiAgICAgZG9tL0V2ZW50RXhjZXB0aW9uLmlkbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IGQzZWI1MTczMWUwNjAwMmUxMzQzOGRhY2JmNTdl
YTQ3YWRkYzQzMWMuLjM0M2E4MDEyNWY0MmY4ZDk4Mjg3MGMzN2I0NTI0MTRiZjg4ZjVjODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTE0OSw3ICsxNDksNiBAQAogI2luY2x1ZGUg
IkpTRE9NV2luZG93LmNwcCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0NTUy5jcHAiCiAjaW5jbHVk
ZSAiSlNFbGVtZW50LmNwcCIKLSNpbmNsdWRlICJKU0VudGl0eVJlZmVyZW5jZS5jcHAiCiAjaW5j
bHVkZSAiSlNFcnJvckV2ZW50LmNwcCIKICNpbmNsdWRlICJKU0V2ZW50LmNwcCIKICNpbmNsdWRl
ICJKU0V2ZW50RXhjZXB0aW9uLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDc3NGNhMDY0OGE3YjViOTAwZGY0YTAwZTNmNmUzMWJm
OWMwNzJjMDguLjMyZmExNmYwMzEwNTk5Yjg4ZTA5MDI5YmEzMWNiYTkwZTI0ZmRmNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTgz
MiwyMCArMTgzMiw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmNwcCI+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
JChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNF
cnJvckV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CkBAIC0xOTg0NSw3ICsxOTgzMSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01VUkwuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RPTVdpbmRvdy5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRWxlbWVudC5oIiAvPgot
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxh
dGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5
UmVmZXJlbmNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNFcnJvckV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXZlbnRFeGNlcHRpb24uaCIgLz4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVycwppbmRleCAyNjMzMzc3YTk3ZTFkMjczNGMwYmU2YjBhMGE4YzAxZWY1MTY4NjNmLi5iNTA1
ZjI0M2U3Zjk5OTU5NWRiZjRhZDkxNDRlZDg5YzcyMjY0YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC01
MjU0LDkgKzUyNTQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTRWxlbWVudC5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmNwcCI+Ci0gICAgICA8RmlsdGVy
PkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVj
dHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFcnJvckV2ZW50LmNwcCI+CiAg
ICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0xMjY0Myw5ICsxMjY0MCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNFbGVtZW50LmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRW50aXR5UmVmZXJlbmNlLmgiPgotICAgICAgPEZpbHRl
cj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRl
Y3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5oIj4KICAg
ICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAxMDVlYTBkMTEzZDU1ZjdkZWUyNjM0YjVkY2ZhYTEzNzZiMzQ1ODNjLi4wZTAwMGQ2M2ZjMWEx
MWY0ZThhNmJjZjIwNjQ2NzIyMWI2OWZkZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTg5LDggKzM1ODksNiBAQAogCQk5
M0Y5QjY1ODBCQTBGMzVFMDA4NTQwNjQgLyogRE9NSFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2NTUw
QkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsK
IAkJOTNGOUI2RTAwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERTBCQTBGQjcyMDA4NTQw
NjQgLyogSlNDb21tZW50LmNwcCAqLzsgfTsKIAkJOTNGOUI2RTEwQkEwRkI3MjAwODU0MDY0IC8q
IEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oICovOyB9OwotCQk5M0Y5
Qjc3NDBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3NzIwQkE1RkREQzAwODU0
MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCAqLzsgfTsKLQkJOTNGOUI3NzUwQkE1RkRERDAw
ODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc3MzBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlS
ZWZlcmVuY2UuaCAqLzsgfTsKIAkJOTNGOUI3QTAwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFT
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgKi87IH07CiAJ
CTkzRjlCN0ExMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3OUYwQkE2MDMyNjAwODU0
MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmggKi87IH07CiAJCTkzRkRBRkNBMEIxMTMwNzQwMEUyNzQ2
RiAvKiBFZGl0b3JJbnNlcnRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRkRBRkM5MEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRB
Y3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTA5NjAsOCArMTA5NTgsNiBAQAogCQk5M0Y5QjY1NTBCQTBGMzVFMDA4NTQwNjQgLyogRE9N
SFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzRjlCNkRFMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb21tZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NvbW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGOUI3NzIwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50
aXR5UmVmZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RW50aXR5UmVmZXJlbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGOUI3
NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50aXR5UmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NEQVRBU2VjdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2
NCAvKiBKU0NEQVRBU2VjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0NEQVRBU2VjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0ZEQUZDOTBC
MTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFZGl0b3JJbnNlcnRBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIwMDQ3LDggKzIwMDQzLDYgQEAKIAkJCQlCQzY0NjQ5NjExRDgyMzQ5MDA2
NDU1QjAgLyogSlNET01TdHJpbmdNYXAuaCAqLywKIAkJCQk2NURGMzFFNTA5RDFDQzYwMDAwQkUz
MjUgLyogSlNFbGVtZW50LmNwcCAqLywKIAkJCQk2NURGMzFFNjA5RDFDQzYwMDAwQkUzMjUgLyog
SlNFbGVtZW50LmggKi8sCi0JCQkJOTNGOUI3NzIwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5
UmVmZXJlbmNlLmNwcCAqLywKLQkJCQk5M0Y5Qjc3MzBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRp
dHlSZWZlcmVuY2UuaCAqLywKIAkJCQlGRTgwREE1RjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9s
b2NhdGlvbi5jcHAgKi8sCiAJCQkJRkU4MERBNjAwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9j
YXRpb24uaCAqLywKIAkJCQlGRTgwREE2MTBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlv
bi5jcHAgKi8sCkBAIC0yNTU3NSw3ICsyNTU2OSw2IEBACiAJCQkJRkQ3ODY4QkExMzZCOTk5MjAw
RDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjVERjMxRkEwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQURFQzc4RjgxOEVFNTMwODAwMTMxNUMyIC8qIEpTRWxlbWVudEN1c3RvbS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTNGOUI3NzUwQkE1RkRERDAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUNGN0FERDEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJv
ckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyog
SlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTgzNzhFMDlGODVENEYwMEI4
NUFFNCAvKiBKU0V2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5MTM3LDcgKzI5MTMwLDYgQEAK
IAkJCQlGRDc4NjhCOTEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2Rl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUY5MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0Vs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyRUQ1NTUwQzZCOUJEMzAwOTIwQkZGIC8q
IEpTRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5M0Y5Qjc3NDBCQTVGRERD
MDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVD
RjdBREMxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGM0Q0NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTRFODM3ODQwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0
L1dlYktpdERPTVByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9X
ZWJLaXRET01Qcml2YXRlLmNwcAppbmRleCA1OWNmNjhjMTI5MGE3YWIwMjZlMzFlMzI2MWIwNjhh
NDNkMzY2MDkzLi5hY2ExZjk4YWM5OTQ4OTBjNzAyODc2YjFhOGNlYjcwYjk3YmZhYmViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0
ZS5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFR5cGVQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01FbnRpdHlS
ZWZlcmVuY2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRUYXJnZXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
RE9NRmlsZVByaXZhdGUuaCIKQEAgLTkzLDggKzkyLDYgQEAgV2ViS2l0RE9NTm9kZSogd3JhcChO
b2RlKiBub2RlKQogICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBUZXh0KGRvd25j
YXN0PFRleHQ+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6CiAg
ICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcENEQVRBU2VjdGlvbihzdGF0aWNfY2Fz
dDxDREFUQVNlY3Rpb24qPihub2RlKSkpOwotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5D
RV9OT0RFOgotICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBFbnRpdHlSZWZlcmVu
Y2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpKTsKICAgICBjYXNlIE5vZGU6
OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01f
Tk9ERSh3cmFwUHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0
cnVjdGlvbio+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCBkZWVlNjc1YTkyNTEy
MTA1NGYxNzIzMjdlNTM2YWE0ZGY4ZTVmNzU5Li43M2IyMTBhYThkMWVhMDVjZjFlMTlmNWU0ZjM1
MWYxZTA1ZWI5OTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3Rv
bS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRW50aXR5LmgiCi0jaW5jbHVkZSAi
RW50aXR5UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
IkhUTUxBdWRpb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgpAQCAt
NTEsNyArNTAsNiBAQAogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0RvY3Vt
ZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJKU0RvY3VtZW50VHlwZS5oIgotI2luY2x1ZGUgIkpT
RW50aXR5UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVk
ZSAiSlNIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9y
eS5oIgpAQCAtMjA5LDkgKzIwNyw2IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgY3Jl
YXRlV3JhcHBlcklubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqCiAjZW5kaWYK
ICAgICAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVj
dCwgRG9jdW1lbnRGcmFnbWVudCwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6Ci0gICAgICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRW50aXR5UmVmZXJlbmNlLCBub2RlKTsK
LSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgd3JhcHBl
ciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIE5vZGUsIG5vZGUpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KaW5kZXggOGUxZmJlMWZjZDdjMzdjNDZlOTBj
MzNjYzA0NDIzNGExYWU0ODc4Mi4uZTgzOTY1ZGJjMzRmMjFjM2NlMzExNjBkNDc1YTZkMjgyY2Ez
ZmJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KQEAgLTMxMSw4ICszMTEsNiBA
QCBDbGFzcyBraXRDbGFzcyhXZWJDb3JlOjpOb2RlKiBpbXBsKQogICAgICAgICAgICAgcmV0dXJu
IFtET01UZXh0IGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNU
SU9OX05PREU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTUNEQVRBU2VjdGlvbiBjbGFzc107Ci0g
ICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAg
ICAgICAgcmV0dXJuIFtET01FbnRpdHlSZWZlcmVuY2UgY2xhc3NdOwogICAgICAgICBjYXNlIFdl
YkNvcmU6Ok5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgICAgIHJl
dHVybiBbRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNsYXNzXTsKICAgICAgICAgY2FzZSBXZWJD
b3JlOjpOb2RlOjpDT01NRU5UX05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
QXR0ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKaW5kZXggYWM3YjY2Zjk5NzA1
ZDg5OWVlY2UzYzI4OTRmODllMWY4MDlkMTVmOC4uOTZkN2VlZDNiMGZmMjE1NTlhZGMzMzVlMjBh
NGM0NTlkZjIxYmRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcApAQCAtMTQ4LDEzICsxNDgsNyBAQCBSZWY8
Tm9kZT4gQXR0cjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBD
bG9uaW5nT3BlcmF0aW9uKQogLy8gRE9NIFNlY3Rpb24gMS4xLjEKIGJvb2wgQXR0cjo6Y2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogewotICAgIHN3aXRjaCAodHlwZSkgewot
ICAgICAgICBjYXNlIFRFWFRfTk9ERToKLSAgICAgICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05P
REU6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9CisgICAgcmV0dXJuIHR5cGUgPT0gVEVYVF9OT0RFOwog
fQogCiB2b2lkIEF0dHI6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0
dHIuaAppbmRleCAxMjRjNmQ3YTJhYTI4NjgzMGZjYmEyOTYyODg4OGI3MjAyMjk5Mjg2Li5mNmYz
NjIwNzcxN2EzNWMyYjI0M2ZhYWE5NjVkYzNhYjcyZjI2YmNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQXR0ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKQEAgLTMz
LDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlv
bjsKIGNsYXNzIE11dGFibGVTdHlsZVByb3BlcnRpZXM7CiAKLS8vIEF0dHIgY2FuIGhhdmUgVGV4
dCBhbmQgRW50aXR5UmVmZXJlbmNlIGNoaWxkcmVuCisvLyBBdHRyIGNhbiBoYXZlIFRleHQgY2hp
bGRyZW4KIC8vIHRoZXJlZm9yZSBpdCBoYXMgdG8gYmUgYSBmdWxsYmxvd24gTm9kZS4gVGhlIHBs
YW4KIC8vIGlzIHRvIGR5bmFtaWNhbGx5IGFsbG9jYXRlIGEgdGV4dGNoaWxkIGFuZCBzdG9yZSB0
aGUKIC8vIHJlc3VsdGluZyBub2RldmFsdWUgaW4gdGhlIGF0dHJpYnV0ZSB1cG9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggYzk2MzRiMGNlMTAwMzRlOTJiNWM1MTZlMTMy
ZDBjNDM0MzE3YTUwZC4uM2Y0ZmUwZjgwMzc0YzgzNzAwOTkwZWQ0YjQ1YTRhOWQyMTk0OWJiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtMTgwLDcgKzE4MCw2IEBAIHN0
YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUm
IG5ld1BhcmVudCwgTm9kZSYgbmV3CiB7CiAgICAgLy8gVXNlIGNvbW1vbiBjYXNlIGZhc3QgcGF0
aCBpZiBwb3NzaWJsZS4KICAgICBpZiAoKG5ld0NoaWxkLmlzRWxlbWVudE5vZGUoKSB8fCBuZXdD
aGlsZC5pc1RleHROb2RlKCkpICYmIG5ld1BhcmVudC5pc0VsZW1lbnROb2RlKCkpIHsKLSAgICAg
ICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSk7CiAgICAgICAgIEFTU0VSVCgh
bmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKICAgICAgICAgQVNTRVJUKGlzQ2hpbGRU
eXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgICAgIGlmIChjb250YWluc0Nv
bnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQpAQCAtMTkzLDggKzE5
Miw2IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRh
aW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3CiAgICAgaWYgKG5ld0NoaWxkLmlzUHNldWRv
RWxlbWVudCgpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogCi0gICAg
aWYgKG5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKQotICAgICAgICByZXR1cm4gTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSOwogICAgIGlmIChjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1l
bnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVF
U1RfRVJSOwogCkBAIC0yMDksNyArMjA2LDYgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Db2Rl
IGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXcKIAog
c3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKENv
bnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewotICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOwogICAgIEFTU0VS
VCghbmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKICAgICBBU1NFUlQoaXNDaGlsZFR5
cGVBbGxvd2VkKG5ld1BhcmVudCwgbmV3Q2hpbGQpKTsKICAgICBpZiAobmV3Q2hpbGQuY29udGFp
bnMoJm5ld1BhcmVudCkpIHsKQEAgLTUyMSwxMiArNTE3LDYgQEAgYm9vbCBDb250YWluZXJOb2Rl
OjpyZW1vdmVDaGlsZChOb2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICBl
YyA9IDA7CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNlZCBpZiB0
aGlzIG5vZGUgaXMgcmVhZG9ubHkuCi0gICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAg
ICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0KICAgICAvLyBOT1RfRk9VTkRfRVJSOiBSYWlzZWQgaWYgb2xkQ2hpbGQgaXMg
bm90IGEgY2hpbGQgb2YgdGhpcyBub2RlLgogICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkg
IT0gdGhpcykgewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCAwOGQ5ZGNkOWMyNDNhN2U2NzBmNWYyN2FkZjc1MzQ3M2VmNmIyNjQzLi5iOTNl
MDUzNTcyY2U5MTIxNzVjM2MzZWZiOTNiOWU5MzU5M2Q2YWZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTkwOSwxNyArOTA5LDEwIEBAIFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+
IERvY3VtZW50OjpjcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY29uc3QgU3RyaW5nCiAgICAg
cmV0dXJuIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y3JlYXRlKCp0aGlzLCB0YXJnZXQsIGRhdGEp
OwogfQogCi1SZWZQdHI8RW50aXR5UmVmZXJlbmNlPiBEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVm
ZXJlbmNlKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8RW50
aXR5UmVmZXJlbmNlPiBEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmICghaXNWYWxpZE5hbWUobmFtZSkpIHsK
LSAgICAgICAgZWMgPSBJTlZBTElEX0NIQVJBQ1RFUl9FUlI7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLSAgICBpZiAoaXNIVE1MRG9jdW1lbnQoKSkgewotICAgICAgICBlYyA9IE5P
VF9TVVBQT1JURURfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0
dXJuIEVudGl0eVJlZmVyZW5jZTo6Y3JlYXRlKCp0aGlzLCBuYW1lKTsKKyAgICBlYyA9IE5PVF9T
VVBQT1JURURfRVJSOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWY8VGV4dD4gRG9jdW1l
bnQ6OmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZShjb25zdCBTdHJpbmcmIHRleHQpCkBAIC05NDQsNyAr
OTM3LDYgQEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjppbXBvcnROb2RlKE5vZGUqIGltcG9ydGVk
Tm9kZSwgYm9vbCBkZWVwLCBFeGNlcHRpb25Db2RlJgogICAgIGNhc2UgRUxFTUVOVF9OT0RFOgog
ICAgIGNhc2UgVEVYVF9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgIGNh
c2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgUFJPQ0VTU0lOR19JTlNUUlVDVElP
Tl9OT0RFOgogICAgIGNhc2UgQ09NTUVOVF9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfRlJBR01F
TlRfTk9ERToKQEAgLTk3NCwxMSArOTY2LDYgQEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjphZG9w
dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoc291cmNlLT5pc1JlYWRPbmx5Tm9k
ZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KICAgICBFdmVudFF1ZXVlU2NvcGUgc2NvcGU7CiAK
ICAgICBzd2l0Y2ggKHNvdXJjZS0+bm9kZVR5cGUoKSkgewpAQCAtMTcxMCw1MiArMTY5Nyw1MiBA
QCBSZWY8UmFuZ2U+IERvY3VtZW50OjpjcmVhdGVSYW5nZSgpCiAgICAgcmV0dXJuIFJhbmdlOjpj
cmVhdGUoKnRoaXMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRl
Tm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRy
PE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJ
dGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2Rl
RmlsdGVyPiYmIGZpbHRlciwgYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJu
IGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwg
ZWMpOworfQorCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJh
dG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0
ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIXJvb3QpIHsKICAg
ICAgICAgZWMgPSBUeXBlRXJyb3I7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAg
ICByZXR1cm4gTm9kZUl0ZXJhdG9yOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3Zl
KGZpbHRlciksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworICAgIHJldHVybiBOb2RlSXRlcmF0
b3I6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSk7CiB9CiAKLVJl
ZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9v
dCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0
ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hh
dFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIGNyZWF0
ZU5vZGVJdGVyYXRvcihyb290LCB3aGF0VG9TaG93LCBudWxscHRyLCBlYyk7CiB9CiAKLVJlZlB0
cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2Rl
SXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCB3aGF0
VG9TaG93LCBudWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0
b3Iocm9vdCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJh
dG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50OjpjcmVhdGVUcmVlV2Fsa2VyKE5v
ZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYg
ZmlsdGVyLCBib29sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlTm9k
ZUl0ZXJhdG9yKHJvb3QsIDB4RkZGRkZGRkYsIG51bGxwdHIsIGZhbHNlLCBlYyk7CisgICAgcmV0
dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciks
IGVjKTsKIH0KIAotUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50OjpjcmVhdGVUcmVlV2Fsa2Vy
KE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+
JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEV4Y2VwdGlvbkNvZGUmIGVj
KQorUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50OjpjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVy
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIXJvb3QpIHsKICAgICAgICAgZWMgPSBU
eXBlRXJyb3I7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICByZXR1cm4gVHJl
ZVdhbGtlcjo6Y3JlYXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKTsKLX0KLQotUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50Ojpj
cmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVm
UHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICByZXR1
cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwg
ZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gVHJlZVdhbGtlcjo6Y3JlYXRlKHJvb3QsIHdoYXRUb1No
b3csIFdURjo6bW92ZShmaWx0ZXIpKTsKIH0KIAogUmVmUHRyPFRyZWVXYWxrZXI+IERvY3VtZW50
OjpjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwg
d2hhdFRvU2hvdywgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlVHJlZVdh
bGtlcihyb290LCB3aGF0VG9TaG93LCBudWxscHRyLCBlYyk7CiB9CiAKIFJlZlB0cjxUcmVlV2Fs
a2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290LCAweEZGRkZGRkZGLCBu
dWxscHRyLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIDB4
RkZGRkZGRkYsIG51bGxwdHIsIGVjKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6c2NoZWR1bGVGb3Jj
ZWRTdHlsZVJlY2FsYygpCkBAIC0zMzU3LDcgKzMzNDQsNiBAQCBib29sIERvY3VtZW50OjpjaGls
ZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgY2FzZSBDREFUQV9TRUNUSU9O
X05PREU6CiAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgIGNhc2UgRE9DVU1F
TlRfTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFRFWFRf
Tk9ERToKICAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0zMzg1LDcgKzMzNzEsNiBAQCBib29sIERvY3VtZW50OjpjYW5BY2NlcHRDaGlsZChj
b25zdCBOb2RlJiBuZXdDaGlsZCwgY29uc3QgTm9kZSogcmVmQ2hpbGQsIEFjY2VwdAogICAgIGNh
c2UgQVRUUklCVVRFX05PREU6CiAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6CiAgICAgY2Fz
ZSBET0NVTUVOVF9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNh
c2UgVEVYVF9OT0RFOgogICAgIGNhc2UgWFBBVEhfTkFNRVNQQUNFX05PREU6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2FjOTUxNzkzOWFiNGVkNjRhY2Ex
NDMxNzI1NzAzMGE5MTM0MjllYy4uNzgxZWYyMGJkMzM3NzkzY2M4MzNjM2MxY2FiYTUwYTBjMWI4
OGUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTUzNiwxMiArNTM2LDEyIEBAIHB1YmxpYzoK
IAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxSYW5nZT4gY3JlYXRlUmFuZ2UoKTsKIAotICAgIFJl
ZlB0cjxOb2RlSXRlcmF0b3I+IGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25l
ZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBib29sIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBj
cmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBS
ZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCwgRXhjZXB0aW9uQ29kZSYpOyAvLyBGb3IgT2JqQyBi
aW5kaW5ncy4KICAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9k
ZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxOb2RlSXRlcmF0b3I+IGNyZWF0ZU5vZGVJdGVy
YXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9v
dCwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVX
YWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZp
bHRlcj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCwgRXhjZXB0aW9u
Q29kZSYpOyAvLyBGb3IgT2JqQyBiaW5kaW5ncy4KICAgICBSZWZQdHI8VHJlZVdhbGtlcj4gY3Jl
YXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0
cjxOb2RlRmlsdGVyPiYmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+
IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBF
eGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIo
Tm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXgg
MWNjMDAwNzNjYzA0OTc1ZjI5NzFmZmRkMDNmMGU2NWYwZjUwOTVlYi4uZjI2ZWNlZjg2YmMzM2E1
ZmU2MjgxNjViZDRkNDA0ODk3NWNmNWM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0z
OSw3ICszOSwxMCBAQAogICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIE5ld09iamVj
dCwgUmFpc2VzRXhjZXB0aW9uXSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gY3JlYXRlUHJvY2Vzc2lu
Z0luc3RydWN0aW9uKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHRhcmdl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwg
RE9NU3RyaW5nIGRhdGEpOwogICAgIFtOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gQXR0ciBj
cmVhdGVBdHRyaWJ1dGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFt
ZSk7Ci0gICAgW05ld09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBFbnRpdHlSZWZlcmVuY2UgY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5n
IG5hbWUpOworCisjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0Vf
T0JKRUNUSVZFX0MgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JK
RUNUCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJl
ZmVyZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKyNl
bmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JK
RUNUSVZFX0MKICAgICBbSW1wbGVtZW50ZWRBcz1nZXRFbGVtZW50c0J5VGFnTmFtZUZvck9iakNd
IE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9u
YWwgRE9NU3RyaW5nIHRhZ25hbWUpOwpAQCAtOTIsMTQgKzk1LDIzIEBACiAKICAgICAvLyBET00g
TGV2ZWwgMiBUcmFudmVyc2FsIGFuZCBSYW5nZSAoRG9jdW1lbnRUcmF2ZXJzYWwgaW50ZXJmYWNl
KQogCi0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uLCBO
ZXdPYmplY3RdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAorI2lm
IGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DIHx8
IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0VfR09CSkVDVAorICAgIFtPYmpD
TGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gTm9kZUl0ZXJhdG9yIGNy
ZWF0ZU5vZGVJdGVyYXRvcihOb2RlIHJvb3QsCiAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCiAgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0ZXI/
IGZpbHRlciwKICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb24sIE5l
d09iamVjdF0gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUgcm9vdCwKKyAgICBbT2Jq
Q0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb25dIFRyZWVXYWxrZXIgY3Jl
YXRlVHJlZVdhbGtlcihOb2RlIHJvb3QsCiAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCiAgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0ZXI/IGZp
bHRlciwKICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsK
KyNlbHNlCisgICAgW1JhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBOb2RlSXRlcmF0b3IgY3Jl
YXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9vdCwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93ID0gMHhGRkZGRkZGRiwKKyAgICAgICAgb3B0aW9uYWwgTm9kZUZpbHRlcj8g
ZmlsdGVyKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIFRyZWVXYWxrZXIgY3Jl
YXRlVHJlZVdhbGtlcihOb2RlIHJvb3QsCisgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCisgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0ZXI/IGZp
bHRlcik7CisjZW5kaWYKIAogICAgIC8vIERPTSBMZXZlbCAyIEFic3RyYWN0IFZpZXdzIChEb2N1
bWVudFZpZXcgaW50ZXJmYWNlKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5j
cHAKaW5kZXggZjliMzhhMGJkMjhlOGUzYzYwOTM0YWZmMWE2MDA1OTI3MDkwM2ZlYy4uYTY3MDAy
YzRiZjk4NzQ0YTI5NTNmNDllMjZlNjFiYTBjYWQzNzFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudEZyYWdtZW50LmNwcApAQCAtNjAsNyArNjAsNiBAQCBib29sIERvY3VtZW50RnJhZ21l
bnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICAgICAgY2FzZSBD
T01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgVEVYVF9OT0RFOgogICAgICAgICBjYXNlIENEQVRB
X1NFQ1RJT05fTk9ERToKLSAgICAgICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZDMwNzRkMWU4Mzc0YjBiNzc3YjZl
NzA0M2I0NzliYjU2ODQ2ZTU0Li41OGZjODA0Njc4MjQyZjRkZGI2MjZjYmFhNjk4NDgwZjFhNDhm
Y2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNzU1LDcgKzE3NTUsNiBAQCBib29sIEVs
ZW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICBjYXNlIENP
TU1FTlRfTk9ERToKICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBj
YXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCmluZGV4IDdlOTFhNDYyZGE4MjA5ZDkyMmM0
NWRjODRjNDFhMDg1NWFkNmJlMWEuLmU1ODI0ZjEwOGJiNmY1NDNiNWEwNzY3YWZlMWZhODRhMmQ0
ODFkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCkBAIC0yNSwzMCAr
MjUsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBFbnRpdHlSZWZlcmVuY2U6
OkVudGl0eVJlZmVyZW5jZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZW50aXR5
TmFtZSkKK2lubGluZSBFbnRpdHlSZWZlcmVuY2U6OkVudGl0eVJlZmVyZW5jZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYpCiAgICAgOiBDb250YWluZXJOb2RlKGRvY3VtZW50KQot
ICAgICwgbV9lbnRpdHlOYW1lKGVudGl0eU5hbWUpCiB7CiB9CiAKLVJlZjxFbnRpdHlSZWZlcmVu
Y2U+IEVudGl0eVJlZmVyZW5jZTo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiBlbnRpdHlOYW1lKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVudGl0eVJlZmVy
ZW5jZShkb2N1bWVudCwgZW50aXR5TmFtZSkpOwotfQotCi1TdHJpbmcgRW50aXR5UmVmZXJlbmNl
Ojpub2RlTmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZW50aXR5TmFtZTsKLX0KLQotTm9k
ZTo6Tm9kZVR5cGUgRW50aXR5UmVmZXJlbmNlOjpub2RlVHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIEVOVElUWV9SRUZFUkVOQ0VfTk9ERTsKLX0KLQotUmVmPE5vZGU+IEVudGl0eVJlZmVyZW5j
ZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3Bl
cmF0aW9uKQotewotICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIG1fZW50aXR5TmFt
ZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RW50aXR5UmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgK
aW5kZXggODZkZmViMzk4MjViMzQ1MGU3NTM1OTI1MDY4NTExMGIzYWYwY2E4Zi4uMThjMmVjMWFm
Y2U1NzBlODBlODY1YTA4NDViYWJkODg2NmY5NjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuaApAQCAtMjYsMTggKzI2LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBFbnRpdHlSZWZlcmVuY2UgZmluYWwgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxFbnRpdHlSZWZlcmVuY2U+IGNyZWF0ZShEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgZW50aXR5TmFtZSk7Ci0KK2NsYXNzIEVudGl0eVJlZmVyZW5jZSA6IHB1Ymxp
YyBDb250YWluZXJOb2RlIHsKIHByaXZhdGU6CiAgICAgRW50aXR5UmVmZXJlbmNlKERvY3VtZW50
JiwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKTsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVO
YW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNv
bnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7Ci0KLSAgICBTdHJpbmcgbV9lbnRp
dHlOYW1lOwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJl
bmNlLmlkbAppbmRleCA2ZDA1MzVmOWJjMWRhYTc5MTc4MzFlZmRiZTZhYmQwN2FlOWI3ZGJhLi5l
ZmY5NWEwM2UzYTRlMmZkMzZiMmUyMThjNjA5NjQ4MzhjYzZlN2YwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRW50aXR5UmVmZXJlbmNlLmlkbApAQCAtMTcsOCArMTcsMTIgQEAKICAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgogICovCiAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9D
KSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQyB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYm
IExBTkdVQUdFX0dPQkpFQ1QKKwogWworICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEpTR2Vu
ZXJhdGVUb0pTT2JqZWN0CiBdIGludGVyZmFjZSBFbnRpdHlSZWZlcmVuY2UgOiBOb2RlIHsKIH07
CiAKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDQzNjJkNjU2ZGM0N2ZkNjQzMzViNDY4NjE0
YmU3MzY1ODgxMzAyYmEuLmRlZjI0Y2U2NzA5NTU2NjRiY2JhMTM1MDQ3MTZmYzQxN2NhZjYzMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKQEAgLTEwMyw3ICsxMDMsNiBAQCB2b2lkIE5vZGU6OmR1bXBTdGF0
aXN0aWNzKCkKICAgICBzaXplX3QgdGV4dE5vZGVzID0gMDsKICAgICBzaXplX3QgY2RhdGFOb2Rl
cyA9IDA7CiAgICAgc2l6ZV90IGNvbW1lbnROb2RlcyA9IDA7Ci0gICAgc2l6ZV90IGVudGl0eVJl
ZmVyZW5jZU5vZGVzID0gMDsKICAgICBzaXplX3QgZW50aXR5Tm9kZXMgPSAwOwogICAgIHNpemVf
dCBwaU5vZGVzID0gMDsKICAgICBzaXplX3QgZG9jdW1lbnROb2RlcyA9IDA7CkBAIC0xNjgsMTAg
KzE2Nyw2IEBAIHZvaWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgICAgICAgICAgICAgICsr
Y29tbWVudE5vZGVzOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6IHsKLSAgICAgICAgICAgICAgICAr
K2VudGl0eVJlZmVyZW5jZU5vZGVzOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQogICAgICAgICAgICAgY2FzZSBFTlRJVFlfTk9ERTogewogICAgICAgICAgICAgICAgICsr
ZW50aXR5Tm9kZXM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yMTEsNyArMjA2LDYgQEAg
dm9pZCBOb2RlOjpkdW1wU3RhdGlzdGljcygpCiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBUZXh0
IG5vZGVzOiAlenVcbiIsIHRleHROb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBDREFU
QVNlY3Rpb24gbm9kZXM6ICV6dVxuIiwgY2RhdGFOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJl
ciBvZiBDb21tZW50IG5vZGVzOiAlenVcbiIsIGNvbW1lbnROb2Rlcyk7Ci0gICAgcHJpbnRmKCIg
IE51bWJlciBvZiBFbnRpdHlSZWZlcmVuY2Ugbm9kZXM6ICV6dVxuIiwgZW50aXR5UmVmZXJlbmNl
Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2YgRW50aXR5IG5vZGVzOiAlenVcbiIsIGVu
dGl0eU5vZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIFByb2Nlc3NpbmdJbnN0cnVjdGlv
biBub2RlczogJXp1XG4iLCBwaU5vZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIERvY3Vt
ZW50IG5vZGVzOiAlenVcbiIsIGRvY3VtZW50Tm9kZXMpOwpAQCAtMzg0LDE0ICszNzgsOCBAQCBT
dHJpbmcgTm9kZTo6bm9kZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
LXZvaWQgTm9kZTo6c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYgLypub2RlVmFsdWUqLywgRXhj
ZXB0aW9uQ29kZSYgZWMpCit2b2lkIE5vZGU6OnNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmIC8q
bm9kZVZhbHVlKi8sIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIC8vIE5PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUjogUmFpc2VkIHdoZW4gdGhlIG5vZGUgaXMgcmVhZG9ubHkKLSAgICBpZiAoaXNS
ZWFkT25seU5vZGUoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIEJ5IGRlZmF1bHQsIHNldHRpbmcg
bm9kZVZhbHVlIGhhcyBubyBlZmZlY3QuCiB9CiAKQEAgLTg5MCwxMSArODc4LDYgQEAgdm9pZCBO
b2RlOjpjaGVja1NldFByZWZpeChjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaXNSZWFkT25seU5v
ZGUoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIEZJWE1FOiBSYWlzZSBOQU1FU1BBQ0VfRVJSIGlm
IHByZWZpeCBpcyBtYWxmb3JtZWQgcGVyIHRoZSBOYW1lc3BhY2VzIGluIFhNTCBzcGVjaWZpY2F0
aW9uLgogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBub2RlTmFtZXNwYWNlVVJJID0gbmFtZXNw
YWNlVVJJKCk7CkBAIC0xNDIyLDcgKzE0MDUsNiBAQCBzdGF0aWMgdm9pZCBhcHBlbmRUZXh0Q29u
dGVudChjb25zdCBOb2RlKiBub2RlLCBib29sIGNvbnZlcnRCUnNUb05ld2xpbmVzLCBib29sJgog
ICAgICAgICB9CiAgICAgICAgIEZBTExUSFJPVUdIOwogICAgIGNhc2UgTm9kZTo6QVRUUklCVVRF
X05PREU6Ci0gICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBO
b2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICBpc051bGxTdHJpbmcgPSBmYWxz
ZTsKICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKQEAgLTE0NTgsNyArMTQ0MCw2IEBAIHZv
aWQgTm9kZTo6c2V0VGV4dENvbnRlbnQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBFTEVNRU5UX05PREU6CiAg
ICAgICAgIGNhc2UgQVRUUklCVVRFX05PREU6Ci0gICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5D
RV9OT0RFOgogICAgICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6IHsKICAgICAgICAg
ICAgIFJlZjxDb250YWluZXJOb2RlPiBjb250YWluZXIoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4o
KnRoaXMpKTsKICAgICAgICAgICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oY29u
dGFpbmVyKTsKQEAgLTE0NzgsNyArMTQ1OSw2IEBAIHZvaWQgTm9kZTo6c2V0VGV4dENvbnRlbnQo
Y29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogRWxlbWVudCogTm9kZTo6
YW5jZXN0b3JFbGVtZW50KCkgY29uc3QKIHsKLSAgICAvLyBJbiB0aGVvcnksIHRoZXJlIGNhbiBi
ZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYmV0d2VlbiBlbGVtZW50cywgYnV0IHRoaXMgaXMgY3Vy
cmVudGx5IG5vdCBzdXBwb3J0ZWQuCiAgICAgZm9yIChDb250YWluZXJOb2RlKiBhbmNlc3RvciA9
IHBhcmVudE5vZGUoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudE5vZGUo
KSkgewogICAgICAgICBpZiAoaXM8RWxlbWVudD4oKmFuY2VzdG9yKSkKICAgICAgICAgICAgIHJl
dHVybiBkb3duY2FzdDxFbGVtZW50PihhbmNlc3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCAwNGUzOGQy
NWI0M2I0MGZiZDViMzY0Y2Y0MzNlNzdjM2MxMDczNWM0Li5hMmZjNDM4ODk0MGUyMmNmNzViZjU5
NWI3NDg5ZGQ4MzkyZDUwMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTEyNSw3ICsxMjUsNiBAQCBwdWJs
aWM6CiAgICAgICAgIEFUVFJJQlVURV9OT0RFID0gMiwKICAgICAgICAgVEVYVF9OT0RFID0gMywK
ICAgICAgICAgQ0RBVEFfU0VDVElPTl9OT0RFID0gNCwKLSAgICAgICAgRU5USVRZX1JFRkVSRU5D
RV9OT0RFID0gNSwKICAgICAgICAgUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFID0gNywKICAg
ICAgICAgQ09NTUVOVF9OT0RFID0gOCwKICAgICAgICAgRE9DVU1FTlRfTk9ERSA9IDksCkBAIC0x
MzQsNiArMTMzLDcgQEAgcHVibGljOgogICAgICAgICBYUEFUSF9OQU1FU1BBQ0VfTk9ERSA9IDEz
LAogICAgIH07CiAgICAgZW51bSBEZXByZWNhdGVkTm9kZVR5cGUgeworICAgICAgICBFTlRJVFlf
UkVGRVJFTkNFX05PREUgPSA1LAogICAgICAgICBFTlRJVFlfTk9ERSA9IDYsCiAgICAgICAgIE5P
VEFUSU9OX05PREUgPSAxMiwKICAgICB9OwpAQCAtNDE3LDcgKzQxNyw2IEBAIHB1YmxpYzoKICAg
ICBib29sIGlzSW5TaGFkb3dUcmVlKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc0luU2hhZG93
VHJlZUZsYWcpOyB9CiAgICAgYm9vbCBpc0luVHJlZVNjb3BlKCkgY29uc3QgeyByZXR1cm4gZ2V0
RmxhZyhzdGF0aWNfY2FzdDxOb2RlRmxhZ3M+KEluRG9jdW1lbnRGbGFnIHwgSXNJblNoYWRvd1Ry
ZWVGbGFnKSk7IH0KIAotICAgIGJvb2wgaXNSZWFkT25seU5vZGUoKSBjb25zdCB7IHJldHVybiBu
b2RlVHlwZSgpID09IEVOVElUWV9SRUZFUkVOQ0VfTk9ERTsgfQogICAgIGJvb2wgaXNEb2N1bWVu
dFR5cGVOb2RlKCkgY29uc3QgeyByZXR1cm4gbm9kZVR5cGUoKSA9PSBET0NVTUVOVF9UWVBFX05P
REU7IH0KICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB1bnNpZ25lZCBjb3VudENoaWxkTm9kZXMoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKaW5kZXggNDhhMGExOTJhN2JlZTBjZmYyMDlk
NWVhNGQ4OWM5YzMxYTA0YzcwOS4uZGE5ZDAyM2IyNWU4ZjlmMmJmNTdhYzg4MTAzOGQ3MjVkNWUx
YzY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKQEAgLTc2LDggKzc2LDggQEAg
Ym9vbCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVyOjptb3ZlVG9QcmV2aW91cyhOb2RlKiByb290
KQogICAgIHJldHVybiBub2RlOwogfQogCi1Ob2RlSXRlcmF0b3I6Ok5vZGVJdGVyYXRvcihQYXNz
UmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxO
b2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQotICAgIDog
Tm9kZUl0ZXJhdG9yQmFzZShyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciks
IGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCitOb2RlSXRlcmF0b3I6Ok5vZGVJdGVyYXRvcihQYXNz
UmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxO
b2RlRmlsdGVyPiYmIGZpbHRlcikKKyAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdo
YXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpKQogICAgICwgbV9yZWZlcmVuY2VOb2RlKHJvb3Qo
KSwgdHJ1ZSkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuYXR0YWNoTm9kZUl0ZXJhdG9yKHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCmluZGV4IDk3MTkyNzRhM2RhMWI5NzU0MDZh
YTcxY2M1ZTllYWU1ZjNjN2QzMzUuLjRmMTUwN2RlMDNhYzMwM2U1ZjE4MGIzMzExMjY4MDc0YzY5
ODA4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKQEAgLTM3LDkgKzM3LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgTm9kZUl0ZXJhdG9yIDogcHVibGljIFNjcmlw
dFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8Tm9kZUl0ZXJhdG9yPiwgcHVibGljIE5vZGVJ
dGVyYXRvckJhc2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxOb2RlSXRlcmF0
b3I+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRU
b1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzKQorICAgICAgICBzdGF0aWMgUmVmPE5vZGVJdGVyYXRvcj4gY3JlYXRlKFBhc3NSZWZQ
dHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVG
aWx0ZXI+JiYgZmlsdGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBOb2RlSXRlcmF0b3Iocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
LCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBOb2RlSXRlcmF0b3Iocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIp
KSk7CiAgICAgICAgIH0KICAgICAgICAgfk5vZGVJdGVyYXRvcigpOwogCkBAIC01NCw3ICs1NCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBub2RlV2lsbEJlUmVtb3ZlZChO
b2RlJik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxO
b2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9v
bCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQ
dHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYp
OwogCiAgICAgICAgIHN0cnVjdCBOb2RlUG9pbnRlciB7CiAgICAgICAgICAgICBSZWZQdHI8Tm9k
ZT4gbm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRs
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKaW5kZXggMTIwMjVkZTZiOGI0
OTQ3M2VmZDdmNzg0MDExZjQxZjc2MTMwN2I2Ny4uMjMxMTJkOTk0M2Y1OTMzN2FmZjE1ZGFjYzdj
MWVlNWI3YTVmNzljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRv
ci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKQEAgLTI2LDcg
KzI2LDkgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByb290OwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3c7CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIE5vZGVGaWx0ZXIgZmlsdGVyOworI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0Mp
ICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
ZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKKyNlbmRpZgogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBO
b2RlIHJlZmVyZW5jZU5vZGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcG9pbnRl
ckJlZm9yZVJlZmVyZW5jZU5vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9S
YW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDUyZTJmMTkzMjE2
N2FmYzg1YTUxOWRlNTA5ZmQ1MWJhZjE2MDk0OTMuLjhjMWUyYjBkODI0MDdjZGUyMzA2YWZmMzZi
MTVhYTQ5MTc0YTM0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtNTcyLDcgKzU3Miw2IEBAIHN0
YXRpYyBpbmxpbmUgdW5zaWduZWQgbGVuZ3RoT2ZDb250ZW50c0luTm9kZShOb2RlKiBub2RlKQog
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q2hhcmFjdGVyRGF0YT4oKm5vZGUpLmxlbmd0aCgpOwog
ICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgogICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05P
REU6Ci0gICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBOb2Rl
OjpET0NVTUVOVF9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgogICAg
IGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKQEAgLTczMyw3ICs3MzIsNiBAQCBS
ZWZQdHI8Tm9kZT4gUmFuZ2U6OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5
cGUgYWN0aW9uLCBQYXNzUmVmUHRyPAogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vZGU6OkVM
RU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9k
ZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToK
ICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VN
RU5UX0ZSQUdNRU5UX05PREU6CkBAIC04NTYsMTMgKzg1NCw2IEBAIHZvaWQgUmFuZ2U6Omluc2Vy
dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBwcnBOZXdOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
UjogUmFpc2VkIGlmIGFuIGFuY2VzdG9yIGNvbnRhaW5lciBvZiBlaXRoZXIgYm91bmRhcnktcG9p
bnQgb2YKLSAgICAvLyB0aGUgUmFuZ2UgaXMgcmVhZC1vbmx5LgotICAgIGlmIChjb250YWluZWRC
eVJlYWRPbmx5KCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBISUVSQVJDSFlfUkVRVUVTVF9FUlI6
IFJhaXNlZCBpZiB0aGUgY29udGFpbmVyIG9mIHRoZSBzdGFydCBvZiB0aGUgUmFuZ2UgaXMgb2Yg
YSB0eXBlIHRoYXQKICAgICAvLyBkb2VzIG5vdCBhbGxvdyBjaGlsZHJlbiBvZiB0aGUgdHlwZSBv
ZiBuZXdOb2RlIG9yIGlmIG5ld05vZGUgaXMgYW4gYW5jZXN0b3Igb2YgdGhlIGNvbnRhaW5lci4K
IApAQCAtMTAyMiw3ICsxMDEzLDYgQEAgTm9kZSogUmFuZ2U6OmNoZWNrTm9kZVdPZmZzZXQoTm9k
ZSogbiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVO
VF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBO
b2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFN
RVNQQUNFX05PREU6IHsKICAgICAgICAgICAgIGlmICghb2Zmc2V0KQogICAgICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwpAQCAtMTA1Miw3ICsxMDQyLDYgQEAgdm9pZCBSYW5nZTo6Y2hlY2tO
b2RlQkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGNhc2UgTm9k
ZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToK
ICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5U
SVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJV
Q1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgIGNhc2Ug
Tm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMDcyLDcgKzEwNjEsNiBAQCB2b2lkIFJh
bmdlOjpjaGVja05vZGVCQShOb2RlKiBuLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAg
ICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
VFlQRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2Fz
ZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VT
U0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAg
ICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTExNDksNyArMTEzNyw2
IEBAIHZvaWQgUmFuZ2U6OnNlbGVjdE5vZGUoTm9kZSogcmVmTm9kZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAg
ICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6
OkVMRU1FTlRfTk9ERToKLSAgICAgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9O
T0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6
CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9k
ZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTY1LDcgKzExNTIsNiBAQCB2b2lkIFJhbmdl
OjpzZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBj
YXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBF
X05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5v
ZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5H
X0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAg
ICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTIwNCw3ICsxMTkwLDYgQEAg
dm9pZCBSYW5nZTo6c2VsZWN0Tm9kZUNvbnRlbnRzKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgog
ICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBO
b2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVO
Q0VfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9O
T0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICBjYXNl
IE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTI0MywyMCArMTIyOCwxMiBAQCB2b2lk
IFJhbmdlOjpzdXJyb3VuZENvbnRlbnRzKFBhc3NSZWZQdHI8Tm9kZT4gcGFzc05ld1BhcmVudCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RF
OgogICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpF
TEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgog
ICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAg
Y2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNF
X05PREU6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlI6IFJhaXNlZCBpZiBhbiBhbmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVy
IGJvdW5kYXJ5LXBvaW50IG9mCi0gICAgLy8gdGhlIFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBp
ZiAoY29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gUmFpc2UgYSBI
SUVSQVJDSFlfUkVRVUVTVF9FUlIgaWYgc3RhcnRDb250YWluZXIoKSBkb2Vzbid0IGFjY2VwdCBj
aGlsZHJlbiBsaWtlIG5ld1BhcmVudC4KICAgICBOb2RlKiBwYXJlbnRPZk5ld1BhcmVudCA9ICZz
dGFydENvbnRhaW5lcigpOwogCkBAIC0xMzMwLDM2ICsxMzA3LDE2IEBAIHZvaWQgUmFuZ2U6OmNo
ZWNrRGVsZXRlRXh0cmFjdChBY3Rpb25UeXBlIGFjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiAg
ICAgaWYgKCFjb21tb25BbmNlc3RvckNvbnRhaW5lcigpKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBpZiAoYWN0aW9uICE9IEV4dHJhY3QpCisgICAgICAgIHJldHVybjsKKwogICAgIE5vZGUqIHBh
c3RMYXN0ID0gcGFzdExhc3ROb2RlKCk7CiAgICAgZm9yIChOb2RlKiBuID0gZmlyc3ROb2RlKCk7
IG4gIT0gcGFzdExhc3Q7IG4gPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpuKSkgewotICAgICAgICBp
ZiAobi0+aXNSZWFkT25seU5vZGUoKSkgewotICAgICAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlI7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoYWN0aW9uID09IEV4dHJhY3QgJiYgbi0+bm9kZVR5cGUoKSA9PSBOb2RlOjpET0NVTUVO
VF9UWVBFX05PREUpIHsKKyAgICAgICAgaWYgKG4tPmlzRG9jdW1lbnRUeXBlTm9kZSgpKSB7CiAg
ICAgICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgIH0KLQotICAgIGlmIChjb250YWluZWRCeVJlYWRPbmx5KCkpIHsK
LSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci19Ci0KLWJvb2wgUmFuZ2U6OmNvbnRhaW5lZEJ5UmVhZE9ubHkoKSBjb25zdAot
ewotICAgIGZvciAoTm9kZSogbiA9ICZzdGFydENvbnRhaW5lcigpOyBuOyBuID0gbi0+cGFyZW50
Tm9kZSgpKSB7Ci0gICAgICAgIGlmIChuLT5pc1JlYWRPbmx5Tm9kZSgpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGZvciAoTm9kZSogbiA9ICZlbmRDb250YWluZXIoKTsg
bjsgbiA9IG4tPnBhcmVudE5vZGUoKSkgewotICAgICAgICBpZiAobi0+aXNSZWFkT25seU5vZGUo
KSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIE5vZGUqIFJhbmdlOjpmaXJzdE5vZGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaAppbmRleCBjOGYy
OTkzYWRkMGQxNTlmYWM1MmJkYWM3ZjFjYzkzMGJkZTVmNmVlLi40YzExMTYyMGE3MmQ3MTc4NTgy
NTVjZDllMDM1MWUzNGVlYmUyNDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaApAQCAtMTYxLDcgKzE2MSw2IEBA
IHByaXZhdGU6CiAKICAgICBOb2RlKiBjaGVja05vZGVXT2Zmc2V0KE5vZGUqLCBpbnQgb2Zmc2V0
LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCBjaGVja05vZGVCQShOb2RlKiwgRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0OwotICAgIGJvb2wgY29udGFpbmVkQnlSZWFkT25seSgpIGNvbnN0
OwogCiAgICAgZW51bSBBY3Rpb25UeXBlIHsgRGVsZXRlLCBFeHRyYWN0LCBDbG9uZSB9OwogICAg
IHZvaWQgY2hlY2tEZWxldGVFeHRyYWN0KEFjdGlvblR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCAwNGNlZjVjYTFkMTQ4MzdiMjdhZjdmNzQyOWQ2
N2QyZmNiNzBmMzg2Li40NTU0N2ZlYjI0ZTJiYmM1MTJjNTI0ZGYzZTM2MjdlZDJlZWYwNzQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAgYm9vbCBTaGFk
b3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgY2FzZSBD
T01NRU5UX05PREU6CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2FzZSBDREFUQV9TRUNUSU9O
X05PREU6Ci0gICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZl
cnNhbC5jcHAKaW5kZXggNzRhOTI4ZjdjYzAyOWI2ZjMzY2ZkY2U1MWExZjJhM2EzMWZlZGI1Mi4u
M2M0YTk1NWIxMTEwNmNkYTIyMjg1YTlmNTI3MTcwN2IxZDljNzdmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
YXZlcnNhbC5jcHAKQEAgLTMwLDE4ICszMCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LU5vZGVJdGVyYXRvckJhc2U6Ok5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiByb290
Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBub2Rl
RmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCitOb2RlSXRlcmF0b3JCYXNlOjpO
b2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcg
d2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZpbHRlcikKICAgICA6IG1fcm9v
dChyb290Tm9kZSkKICAgICAsIG1fd2hhdFRvU2hvdyh3aGF0VG9TaG93KQogICAgICwgbV9maWx0
ZXIoV1RGOjptb3ZlKG5vZGVGaWx0ZXIpKQotICAgICwgbV9leHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCiB7CiB9CiAKIHNob3J0IE5vZGVJdGVyYXRvckJhc2U6
OmFjY2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogVG8gaGFuZGxl
IFhNTCBwcm9wZXJseSB3ZSB3b3VsZCBoYXZlIHRvIGNoZWNrIG1fZXhwYW5kRW50aXR5UmVmZXJl
bmNlcy4KLQogICAgIC8vIFRoZSBiaXQgdHdpZGRsaW5nIGhlcmUgaXMgZG9uZSB0byBtYXAgRE9N
IG5vZGUgdHlwZXMsIHdoaWNoIGFyZSBnaXZlbiBhcyBpbnRlZ2VycyBmcm9tCiAgICAgLy8gMSB0
aHJvdWdoIDE0LCB0byB3aGF0VG9TaG93IGJpdCBtYXNrcy4KICAgICBpZiAoISgoKDEgPDwgKG5v
ZGUtPm5vZGVUeXBlKCkgLSAxKSkgJiBtX3doYXRUb1Nob3cpKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwu
aAppbmRleCBlZDZlOGRkYmQwYzI2NjE1ZTMzN2EyZTQyYzliOWQ5MzU4ZjhmZGRhLi5mZmJkNTQ5
YjFkZTg0ODYwNDNlZTRkMGI0MjBhN2RkY2E3NDhmYTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJhdmVyc2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5o
CkBAIC0zOCwxNyArMzgsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOb2RlKiBy
b290KCkgY29uc3QgeyByZXR1cm4gbV9yb290LmdldCgpOyB9CiAgICAgICAgIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdygpIGNvbnN0IHsgcmV0dXJuIG1fd2hhdFRvU2hvdzsgfQogICAgICAgICBO
b2RlRmlsdGVyKiBmaWx0ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlci5nZXQoKTsgfQotICAg
ICAgICBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMoKSBjb25zdCB7IHJldHVybiBtX2V4cGFu
ZEVudGl0eVJlZmVyZW5jZXM7IH0KKyAgICAgICAgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgTm9k
ZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cs
IFJlZlB0cjxOb2RlRmlsdGVyPiYmLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOworICAg
ICAgICBOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hh
dFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYpOwogICAgICAgICBzaG9ydCBhY2NlcHROb2Rl
KE5vZGUqKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxOb2RlPiBtX3Jv
b3Q7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV93aGF0VG9TaG93OwogICAgICAgICBSZWZQdHI8
Tm9kZUZpbHRlcj4gbV9maWx0ZXI7Ci0gICAgICAgIGJvb2wgbV9leHBhbmRFbnRpdHlSZWZlcmVu
Y2VzOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fs
a2VyLmNwcAppbmRleCBhZDBhY2UxOTliN2RhNjllZWNiMjA0M2EyOGM5ZWY0NGZjMDYzZDQ2Li44
Nzc0ODJhZmY0N2EzYzU0MzRhZjc1MzJlNmRjMDUzZDE1MTNjZDFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVXYWxrZXIuY3BwCkBAIC0zMyw4ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
VHJlZVdhbGtlcjo6VHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25l
ZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKQotICAgIDogTm9kZUl0ZXJhdG9yQmFzZShyb290Tm9kZSwgd2hh
dFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlciksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCitUcmVl
V2Fsa2VyOjpUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyKQorICAgIDogTm9kZUl0
ZXJhdG9yQmFzZShyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpCiAgICAg
LCBtX2N1cnJlbnQocm9vdCgpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVXYWxrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKaW5kZXggYmY2
OWJkZWNlMDk5YmNkMTRkYmFmZDU4ZjAxN2NmYmQ4N2I1MTU2My4uMjI4ZjIzZDQ3NDZhMjE1OWJi
NTBiZjZhYTYyNzg4YjczMzY0ZmI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVXYWxrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCkBAIC0zNyw5
ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFRyZWVXYWxrZXIgOiBw
dWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxUcmVlV2Fsa2VyPiwgcHVi
bGljIE5vZGVJdGVyYXRvckJhc2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxU
cmVlV2Fsa2VyPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50
aXR5UmVmZXJlbmNlcykKKyAgICAgICAgc3RhdGljIFJlZjxUcmVlV2Fsa2VyPiBjcmVhdGUoUGFz
c1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8
Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFRyZWVXYWxrZXIocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0
ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUcmVlV2Fsa2VyKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVy
KSkpOwogICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCiAgICAgICAgIE5v
ZGUqIGN1cnJlbnROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50LmdldCgpOyB9CkBAIC01
NCw3ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9kZSogbmV4dE5vZGUo
KTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAgICAgVHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+
LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKICAgICAg
ICAgCiAgICAgICAgIE5vZGUqIHNldEN1cnJlbnQoUGFzc1JlZlB0cjxOb2RlPik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlV2Fsa2VyLmlkbAppbmRleCA0ODA5ZWUzZDRmMWQxZmQ0MDg1ZTFhMTE5NzNhOGRm
NDAyMGU0NzE1Li5hZDVjYjVkNjQwMzEwZjhjMDM4OTYxZjUxMzJkNWJkZGQyMzY2YzdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCkBAIC0yNiw3ICsyNiw5IEBACiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlRmlsdGVyIGZpbHRlcjsK
LSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzOyAg
ICAgICAgCisjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JK
RUNUSVZFX0MKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzOworI2VuZGlmCiAgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIE5v
ZGUgY3VycmVudE5vZGU7CiAKICAgICBOb2RlIHBhcmVudE5vZGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggODM0NTU3MjA0OTZhMGQxMGRk
MDZmYzBlYTRlZWJmNDM4Y2I0ZWMyNi4uNzEyYWJmYWY4Y2VjY2M4ZjI3NzZlYTUwNTg2ZGMzYTAx
MGFjZjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVs
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5j
cHAKQEAgLTU3Myw3ICs1NzMsNiBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdGFy
dE1hcmt1cChTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IE5vZGUmIG5vZAogICAgICAgICBh
cHBlbmRDREFUQVNlY3Rpb24ocmVzdWx0LCBkb3duY2FzdDxDREFUQVNlY3Rpb24+KG5vZGUpLmRh
dGEoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6Ci0g
ICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBOb2RlOjpYUEFU
SF9OQU1FU1BBQ0VfTk9ERToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhVdGlsLmNwcAppbmRleCA2ZjY2NGQ4NDAxZmY3MTcwNTI2
ODYwM2UwNDFlYmY3N2I1OGYzYzQ0Li5iZWFkYjRkZjIwZmU4ZTQ0MGEyNTM0YzIxOTRjYzg4N2E2
NDc2Njk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhVdGlsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhVdGlsLmNwcApAQCAtNzEsNyArNzEsNiBAQCBib29s
IGlzVmFsaWRDb250ZXh0Tm9kZShOb2RlKiBub2RlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgY2Fz
ZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JF
RkVSRU5DRV9OT0RFOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIE5v
ZGU6OlRFWFRfTk9ERToKICAgICAgICAgICAgIHJldHVybiAhKG5vZGUtPnBhcmVudE5vZGUoKSAm
JiBub2RlLT5wYXJlbnROb2RlKCktPmlzQXR0cmlidXRlTm9kZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUludGVy
bmFscy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTUludGVybmFscy5tbQppbmRleCBlNWM2ZjAyZmM4ZGM4MTEwODg4M2VhYjc1MDJjNTIz
ODg4ZmU3ZWUzLi5kNTdkZmNkM2ViYTBkMjc1NDY5NTFmZWY0ZTQ4MDRkYmEyMjdlODc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01JbnRlcm5hbHMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tCkBAIC03Niw3ICs3Niw2IEBAIHN0YXRp
YyBDbGFzcyBXS0RPTU5vZGVDbGFzcyhXZWJDb3JlOjpOb2RlKiBpbXBsKQogICAgICAgICByZXR1
cm4gW1dLRE9NVGV4dCBjbGFzc107CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpBVFRSSUJVVEVf
Tk9ERToKICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBj
YXNlIFdlYkNvcmU6Ok5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFdlYkNv
cmU6Ok5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBjYXNlIFdlYkNvcmU6
Ok5vZGU6OkNPTU1FTlRfTk9ERToKICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkRPQ1VNRU5UX1RZ
UEVfTk9ERToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQppbmRleCA4NzEwNWE4YjZjZjZkYTk5OTAxYzExZDdhYmEwNGFmZWQyZWY4
M2QxLi44NjNhODU0ZTk2ZTRmYjI1YzRmNDA4YTQ1NmYyMWNmYjg5OWU0YjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC0yMzI0LDExICsyMzI0LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0Fzc2lzdGFibGVFbGVt
ZW50KEVsZW1lbnQmIG5vZGUpCiAgICAgaWYgKGlzPEhUTUxTZWxlY3RFbGVtZW50Pihub2RlKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKGlzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG5v
ZGUpKQotICAgICAgICByZXR1cm4gIWRvd25jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG5vZGUp
LmlzUmVhZE9ubHlOb2RlKCk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChpczxIVE1M
SW5wdXRFbGVtZW50Pihub2RlKSkgewogICAgICAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dEVs
ZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlKTsKICAgICAgICAgLy8gRklY
TUU6IFRoaXMgbGF1bmRyeSBsaXN0IG9mIHR5cGVzIGlzIG5vdCBhIGdvb2Qgd2F5IHRvIGZhY3Rv
ciB0aGlzLiBOZWVkIGEgc3VpdGFibGUgZnVuY3Rpb24gb24gSFRNTElucHV0RWxlbWVudCBpdHNl
bGYuCi0gICAgICAgIHJldHVybiAhaW5wdXRFbGVtZW50LmlzUmVhZE9ubHlOb2RlKCkgJiYgKGlu
cHV0RWxlbWVudC5pc1RleHRGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc0RhdGVGaWVsZCgpIHx8
IGlucHV0RWxlbWVudC5pc0RhdGVUaW1lTG9jYWxGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc01v
bnRoRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNUaW1lRmllbGQoKSk7CisgICAgICAgIHJldHVy
biBpbnB1dEVsZW1lbnQuaXNUZXh0RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlRmllbGQo
KSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlVGltZUxvY2FsRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQu
aXNNb250aEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzVGltZUZpZWxkKCk7CiAgICAgfQogICAg
IHJldHVybiBub2RlLmlzQ29udGVudEVkaXRhYmxlKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTkzN2M4ZWZlOWQy
NDNlOTIxNDY2ZGYwZDkyYjI0NjhhODI2MzkyZi4uZjQxZDQwMjdhZTdiMjIxM2ZjM2UyZjVjNTRj
MWIyNjEyNzA1YjE2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA5LTE5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBsZWdh
Y3kgRW50aXR5UmVmZXJlbmNlIERPTSBOb2RlIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTM0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3Agc2V2ZXJhbCBvdXRkYXRlZCBET00gY29tcGxp
YW5jZSB0ZXN0cy4gVXBkYXRlIC8gUmViYXNlbGluZSBvdGhlcnMuCisKIDIwMTUtMDktMjEgIENo
YW5nU2VvayBPaCAgPGNoYW5nc2Vvay5vaEBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtd
IG1lZGlhIGNvbnRyb2xzIGRvZXMgbm90IHNob3cgdXAgd2hlbiBwbGF5aW5nIHZpZGVvIGZpbmlz
aGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYTM2MjkyN2Y4NjcxZjM1NmE5
ZjgxZjkyNGY4NjAwYmJkMmVjNjY5MC4uMmJjZmVjY2E1MjY5ZjgxNTA0ZTY0NzMyOGQ2NGM4NmZm
Y2ZhYzNiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAK
IDIwMTUtMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBE
cm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBX
M0MgRE9NIHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0OgorCisyMDE1
LTA5LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgR2V0IHJp
ZCBvZiBjdXN0b20gYmluZGluZ3MgZm9yIEhUTUxMaW5rRWxlbWVudC5zaXplcyBzZXR0ZXIKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTM4MgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTJhOGU0NjYxMjRiMThmZjRjNWI2NDdlYWJmYTc3MDE1NDRkODFkNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZl
bDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZgotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRtbCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjU5YWMzNjY5YTBjZDY3NmI0NmU0ZDlm
Y2I3NGZiNjE2YjE4M2ExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDgg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VO
IiAKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCIgPgotPCEtLSBU
aGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2
PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
aHRtbC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9ImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
Zi5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2Fk
PSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAg
ICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5
bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAy
ICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29k
ZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9h
Y3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2Vy
Ci0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8
c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgy
MSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2Jv
ZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIGIvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTdlMTI3
ODQxZWY5ODZkNjE2ODY5YTIyNDE0ODE2MWEzOTE3MDAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3Jl
L2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcworKysgL2Rl
di9udWxsCkBAIC0xLDE0MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQg
V29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2Yg
VGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGlj
cyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZl
ZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExp
Y2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1b
MV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0
d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRl
bnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QK
LSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJjcmVhdGVFbnRp
dHlSZWZlcmVuY2UodGFnTmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFMSURfQ0hBUkFD
VEVSX0VSUiBET01FeGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFtZSBjb250YWlu
cyBhbiBpbnZhbGlkIGNoYXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBhdXRob3IgTWFy
eSBCcmFkeQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0x
LTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2NvbnN0
YW50W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0z
OTJCNzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0x
LTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3JhaXNl
cy9leGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJlZm9y
ZSguLCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMu
b3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlvbiBkb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1Jl
ZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVu
dFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZl
cmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9
Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJpbnZhbGlk
Xk5hbWUiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBl
b2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3Nl
cnRUcnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9
Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlv
bmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwx
L2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5YWViZTQwNDQ3OGQ4YjAy
NWI1MWM2YWUzYzM2NjVkNWEzNzAzOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3Q6CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmMQotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNiNmQwOWNkYWJjMjBjMTcyNjVhYWYyNTk3NmUzMzI0OWY1ZDFi
OTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmMS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAKLSAgICAiaHR0
cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCIgPgotPCEtLSBUaGlzIGlzIGNvbW1l
bnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmaHRtbC5qcyI+PC9z
Y3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
ImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMiPjwvc2Ny
aXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBs
ZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFy
dGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBp
cyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7
Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+
MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8
L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9z
dHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAw
PC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4K
LSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4K
LSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBS
b2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMgYi9MYXlvdXRUZXN0cy9kb20v
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGQxZWM5NzUzMjliMTdk
NzIzY2UzYzBlOTc5ZTVkNWY5MGY0MGEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxNDAgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAg
ICAgICBjaGVja0ZlYXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUNyZWF0aW5nIGFuIGVudGl0eSByZWZlcmVu
Y2Ugd2l0aCBhbiBlbXB0eSBuYW1lIHNob3VsZCBjYXVzZSBhbiBJTlZBTElEX0NIQVJBQ1RFUl9F
UlIuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RS
LzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlk
KCdJRC0yNThBMDBBRicpL2NvbnN0YW50W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkK
LSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAw
MS9sZXZlbC1vbmUtY29yZSNJRC0zOTJCNzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RS
LzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlk
KCdJRC0zOTJCNzVBRScpL3JhaXNlcy9leGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rl
c2NyL3Bbc3Vic3RyaW5nLWJlZm9yZSguLCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD01MjUK
LSovCi1mdW5jdGlvbiBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYxKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWls
ZGVyLCAiZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGJhZEVudGl0eVJlZjsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlp
ZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQot
CXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVm
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZm9vIik7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9F
UlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3Mg
PSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoIiIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNj
ZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwot
CQl9Ci0JCWFzc2VydFRydWUoInRocm93X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7
Ci0JfQotCi0JCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZh
bHVlMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxMDgyY2Jl
YWU0ZjZkODhkZmQwNjRlZGI0YzJkOWFhYjk2MTVjM2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUv
aGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAg
QEAKLVRlc3Q6CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2Nv
cmUvaGNfYXR0cmdldHZhbHVlMgotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiYjdiYjhjODEwOWNmNTkzZGZlZjg1YmM5Y2QzNGFlNGNi
Mjg4ZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0Mv
L0RURCBIVE1MIDQuMDEvL0VOIiAKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3Ry
aWN0LmR0ZCIgPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVh
ZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtOCI+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJzZWxmaHRtbC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImhjX2F0dHJnZXR2YWx1ZTIuanMiPjwvc2Ny
aXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBs
ZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFy
dGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBp
cyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7
Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+
MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8
L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9z
dHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAw
PC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4K
LSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4K
LSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBS
b2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIuanMgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFs
dWUyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGNjMmFlMzVlMjdiNDk0NDhk
MDdkNjE2NGI0OWIwYTk4MzBjY2YxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0
IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0
dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0g
Ci1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwg
Ci1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzND
w4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
Mi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBH
ZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRl
bnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAg
IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29y
ZS9oY19hdHRyZ2V0dmFsdWUyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsK
LXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
YnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0
IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9u
cywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAg
T3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0
aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJp
bmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAg
c2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8g
ICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAg
ICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBj
aGVja0ZlYXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUNoZWNrcyB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRl
IHRoYXQgY29udGFpbnMgZW50aXR5IHJlZmVyZW5jZXMuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9s
ZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgx
MDAxL2xldmVsLW9uZS1jb3JlI0lELTIyMTY2MjQ3NAotKi8KLWZ1bmN0aW9uIGhjX2F0dHJnZXR2
YWx1ZTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJoY19hdHRyZ2V0dmFsdWUyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7
Ci0gICAgICB2YXIgYWNyb255bUxpc3Q7Ci0gICAgICB2YXIgdGVzdE5vZGU7Ci0gICAgICB2YXIg
YXR0cmlidXRlczsKLSAgICAgIHZhciB0aXRsZUF0dHI7Ci0gICAgICB2YXIgdmFsdWU7Ci0gICAg
ICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgcmV0dmFsOwotICAgICAgdmFyIGZpcnN0Q2hpbGQ7
Ci0gICAgICB2YXIgYWxwaGFSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgYWNyb255bUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImFjcm9ueW0iKTsKLSAgICAgIHRlc3ROb2RlID0gYWNyb255bUxpc3QuaXRlbSgzKTsKLSAg
ICAgIGF0dHJpYnV0ZXMgPSB0ZXN0Tm9kZS5hdHRyaWJ1dGVzOwotCi0gICAgICB0aXRsZUF0dHIg
PSBhdHRyaWJ1dGVzLmdldE5hbWVkSXRlbSgiY2xhc3MiKTsKLSAgICAgIAotCWlmKAotCQotCShi
dWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNj
ZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBhbHBoYVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAg
IHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0g
OSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3Mp
OwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQlhbHBoYVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlS
ZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBmaXJzdENoaWxkID0gdGl0bGVBdHRyLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIHJldHZhbCA9IHRpdGxlQXR0ci5pbnNlcnRCZWZvcmUoYWxwaGFSZWYsZmly
c3RDaGlsZCk7Ci0gICAgICB2YWx1ZSA9IHRpdGxlQXR0ci52YWx1ZTsKLQotICAgICAgYXNzZXJ0
RXF1YWxzKCJhdHRyVmFsdWUxIiwizrFZzrEiLHZhbHVlKTsKLSAgICAgICAKLQkJfQotCQotfQot
Ci0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgaGNfYXR0cmdldHZhbHVlMigpOwotfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVl
MDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9k
ZXZhbHVlMDMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzBj
N2MzZGIxZGZlNzhkODdhNTFjNGJhZDExNmQyOTgzOGYxYzBlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9j
b3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAs
MCBAQAotVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEv
Y29yZS9oY19ub2RldmFsdWUwMwotU3RhdHVzOglTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5odG1sIGIvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjgwNDZmMTJmYjg4YjJlYjljZTY2Zjk2MGYyYjJiZDE5YTQ3N2E5
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBI
VE1MIDQuMDEvL0VOIiAKLSAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0
ZCIgPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbD48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCI+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmaHRtbC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImhjX25vZGV2YWx1ZTAzLmpzIj48L3NjcmlwdD48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ry
b25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAg
Tm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBp
cyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1w
O3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
PgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgot
ICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgot
ICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5Q
TyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+
UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2
aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcyBi
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjE2NzFhYTRiMzhhNjVhMWNlZDRmOTU5YThiMTQ2
MzVmMzEyNTg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVl
MDMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBu
dWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBm
cmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8g
ICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMK
LS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBz
dGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMg
aW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0
aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMg
PSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBk
b2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxk
ZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFuIGVudGl0eSByZWZlcmVuY2UgaXMgY3Jl
YXRlZCwgc2V0Tm9kZVZhbHVlIGlzIGNhbGxlZCB3aXRoIGEgbm9uLW51bGwgYXJndW1lbnQsIGJ1
dCBnZXROb2RlVmFsdWUKLXNob3VsZCBzdGlsbCByZXR1cm4gbnVsbC4KLQotKiBAYXV0aG9yIEN1
cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVs
LTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtRjY4RDA4MAotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lE
LTExQzk4NDkwCi0qLwotZnVuY3Rpb24gaGNfbm9kZXZhbHVlMDMoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJoY19ub2RldmFsdWUwMyIp
ICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5ld05vZGU7Ci0gICAg
ICB2YXIgbmV3VmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQv
aHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAg
ICAgICAgIG5ld05vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
Tk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQlu
ZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgYXNzZXJ0
Tm90TnVsbCgiY3JlYXRlZEVudFJlZk5vdE51bGwiLG5ld05vZGUpOwotbmV3VmFsdWUgPSBuZXdO
b2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgiaW5pdGlhbGx5TnVsbCIsbmV3VmFs
dWUpOwotICAgIG5ld05vZGUubm9kZVZhbHVlID0gIlRoaXMgc2hvdWxkIGhhdmUgbm8gZWZmZWN0
IjsKLQotICAgICAgbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0
TnVsbCgibnVsbEFmdGVyQXR0ZW1wdGVkQ2hhbmdlIixuZXdWYWx1ZSk7Ci0gICAgCi0JCX0KLQkK
LX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhjX25vZGV2YWx1ZTAzKCk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1
YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9S
VEVEX0VSUi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzOGNl
YzBhODlkNGE1ZmFjZTZiM2NiMjQwMzY5ODdkNzk4YjZmODcuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBh
dGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlI6IFN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9zdmcv
bGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVh
dGVfTk9UX1NVUFBPUlRFRF9FUlIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZi
ZTAxOGM4YTY2MzA1NDk2NzgzZDFiNzVhYzBlNzRiZjIyMzdkZmYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0
IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRp
Y3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2
ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBM
aWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29m
dHdhcmUtMjAwMjEyMzEKLSovCi0KLQotLy8gZXhwb3NlIHRlc3QgZnVuY3Rpb24gbmFtZXMKLWZ1
bmN0aW9uIGV4cG9zZVRlc3RGdW5jdGlvbk5hbWVzKCkKLXsKLXJldHVybiBbJ1hQYXRoRXZhbHVh
dG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSJ107Ci19Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogICAg
ICAgCi0gICAgICBUZXN0IGlmIFhQYXRoRXZhbHVhdG9yLmV2YWx1YXRlIHByb3Blcmx5IHRocm93
cyBOT1RfU1VQUE9SVEVEX0VSUk9SCi0gICAgCi0qIEBhdXRob3IgUGhpbGlwcGUgTGUgSMOpZ2Fy
ZXQKLSogQGF1dGhvciBCb2IgQ2xhcnkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAz
L0NSLURPTS1MZXZlbC0zLVhQYXRoLTIwMDMwMzMxL3hwYXRoI1hQYXRoRXZhbHVhdG9yLWV2YWx1
YXRlCi0qLwotZnVuY3Rpb24gWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9F
UlIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUiIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHhwRXZhbHVhdG9yOwotICAgICAgdmFy
IHJlc3VsdDsKLSAgICAgIHZhciBudWxsTlNSZXNvbHZlciA9IG51bGw7Ci0KLSAgICAgIHZhciBu
dWxsUmVzdWx0ID0gbnVsbDsKLQotICAgICAgdmFyIGNvbnRleHROb2RlOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
ID0gbG9hZChkb2NSZWYsICJkb2MiLCAic3RhZmZOUyIpOwotICAgICAgeHBFdmFsdWF0b3IgPSBj
cmVhdGVYUGF0aEV2YWx1YXRvcihkb2MpOwotY29udGV4dE5vZGUgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJlbnRpdHluYW1lIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHhwRXZhbHVhdG9yLmV2YWx1YXRlKCIvL2Zv
bzpiYXIiLGNvbnRleHROb2RlLG51bGxOU1Jlc29sdmVyLDAsbnVsbFJlc3VsdCk7Ci0gICAgICAg
IH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1
bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9U
X1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZh
bHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3RzL2RvbS9z
dmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJS
LnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzdiOGJkYzFjNmQ0MDk1OTZlMmFl
NDg0MjBkN2JlN2NlOTE4MmU4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRv
cl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw0ICsw
LDAgQEAKLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpuaXN0
PSJodHRwOi8vd3d3Lm5pc3QuZ292Ij48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWln
aHQ9IjEwMCIvPg0KLTxzY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
IHNyYz0iWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMiLz4NCi08
c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9InN2Z3VuaXQu
anMiLz4NCi08L3N2Zz4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94
cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2
YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMTBhN2RjYzZhNjQwZjdmNmYwNmNjYmY0YmUwNzA2MDUyNTU5NDc4MC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRF
RF9FUlItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotWFBhdGhFeHBy
ZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSOiBTdWNjZXNzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVf
Tk9UX1NVUFBPUlRFRF9FUlIuanMgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFjZjYxNDY2MTA5M2NjZmNjNTE3OGI4NjRhNmEyYzBiMjlkZjg2
OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9T
VVBQT1JURURfRVJSLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLS8vIGV4cG9zZSB0
ZXN0IGZ1bmN0aW9uIG5hbWVzCi1mdW5jdGlvbiBleHBvc2VUZXN0RnVuY3Rpb25OYW1lcygpCi17
Ci1yZXR1cm4gWydYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlInXTsK
LX0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAg
ICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0
Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBp
cyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMg
bG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9u
b3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0
dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3Qg
dG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLS8qKgotKiAgICAgICAKLSAgICAgIFRlc3QgaWYgWFBhdGhFeHByZXNzaW9u
LmV2YWx1YXRlIHByb3Blcmx5IHRocm93cyBOT1RfU1VQUE9SVEVEX0VSUk9SCi0gICAgCi0qIEBh
dXRob3IgUGhpbGlwcGUgTGUgSMOpZ2FyZXQKLSogQGF1dGhvciBCb2IgQ2xhcnkKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDAzL0NSLURPTS1MZXZlbC0zLVhQYXRoLTIwMDMwMzMxL3hw
YXRoI1hQYXRoRXhwcmVzc2lvbi1ldmFsdWF0ZQotKi8KLWZ1bmN0aW9uIFhQYXRoRXhwcmVzc2lv
bl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIlhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9O
T1RfU1VQUE9SVEVEX0VSUiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIHhwRXZhbHVhdG9yOwotICAgICAgdmFyIHJlc3VsdDsKLSAgICAgIHZhciBudWxsTlNSZXNv
bHZlciA9IG51bGw7Ci0KLSAgICAgIHZhciBudWxsUmVzdWx0ID0gbnVsbDsKLQotICAgICAgdmFy
IGNvbnRleHROb2RlOwotICAgICAgdmFyIHhwYXRoRXhwcmVzc2lvbjsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9
IGxvYWQoZG9jUmVmLCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVhdG9yID0gY3Jl
YXRlWFBhdGhFdmFsdWF0b3IoZG9jKTsKLXhwYXRoRXhwcmVzc2lvbiA9IHhwRXZhbHVhdG9yLmNy
ZWF0ZUV4cHJlc3Npb24oIi8vZm9vIixudWxsTlNSZXNvbHZlcik7Ci0gICAgICBjb250ZXh0Tm9k
ZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudGl0eW5hbWUiKTsKLSAgICAgIAotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVzdWx0ID0geHBhdGhF
eHByZXNzaW9uLmV2YWx1YXRlKGNvbnRleHROb2RlLDAsbnVsbFJlc3VsdCk7Ci0gICAgICAgIH0K
LQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRl
ZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NV
UFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSKCk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJl
c3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnIGIvTGF5b3V0VGVzdHMvZG9tL3N2
Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJS
LnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY4NmQ3NTBhMzlkYWFmNDZjYjA0
ZDlmMTNhMjcwY2YyNTVjY2NmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Np
b25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6bmlz
dD0iaHR0cDovL3d3dy5uaXN0LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVp
Z2h0PSIxMDAiLz4NCi08c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiBzcmM9IlhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyIvPg0K
LTxzY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHNyYz0ic3ZndW5p
dC5qcyIvPg0KLTwvc3ZnPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52
YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyZDZkMTc3MGExMjc4OTlhMjJhYWNmMzZmY2Y5ODYxMjYw
NzczYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICsw
LDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEv
Y29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYKLVN0YXR1
cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U3ZTEy
Nzg0MWVmOTg2ZDYxNjg2OWEyMjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2Nv
cmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmIjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLSAgICAgICBjaGVja0ZlYXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9h
ZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0
Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwot
Ly8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAg
IGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBX
aGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8g
ICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAg
IGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLSAgICBUaGUgImNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSh0YWdOYW1lKSIgbWV0aG9kIHJhaXNlcyBhbgotICAgSU5WQUxJRF9DSEFS
QUNURVJfRVJSIERPTUV4Y2VwdGlvbiBpZiB0aGUgc3BlY2lmaWVkCi0gICB0YWdOYW1lIGNvbnRh
aW5zIGFuIGludmFsaWQgY2hhcmFjdGVyLiAKLQotKiBAYXV0aG9yIE5JU1QKLSogQGF1dGhvciBN
YXJ5IEJyYWR5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVs
LTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTI1OEEwMEFGJykvY29u
c3RhbnRbQG5hbWU9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lE
LTM5MkI3NUFFCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVs
LTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTM5MkI3NUFFJykvcmFp
c2VzL2V4Y2VwdGlvbltAbmFtZT0nRE9NRXhjZXB0aW9uJ10vZGVzY3IvcFtzdWJzdHJpbmctYmVm
b3JlKC4sJzonKT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53
My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTI0OQotKi8KLWZ1bmN0aW9uIGRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZigpIHsKLSAgIHZhciBzdWNj
ZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2
YXIgZG9jOwotICAgICAgdmFyIGJhZEVudGl0eVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250
ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNl
OwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZSgiZm9vIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
CX0KLQkKLQkJZWxzZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImludmFs
aWReTmFtZSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0J
CX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2Vw
dGlvbmNyZWF0ZWVudHJlZi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29y
ZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4MTA5ODMzMjEwNGYxMGE5YTA3M2FkMDFlNGU0
YTEzYjhhMWUzOGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICsw
LDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NU
WVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0g
ICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAg
PCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAg
PCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJM
SUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3Rh
dGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBhY3JvbnltIGRpciBDREFUQSAibHRyIj4KLV0+Ci08
IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJz48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi
IGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0
bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNj
cmlwdCAgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMiLz48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZl
LiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24g
d2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGph
Y2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZk
ZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcg
SXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0
PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVs
IERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQu
IERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAw
NTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVy
IFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVm
MS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmM2JjOTk4NWI1
YzJiN2Y2MDFhMTBmODRlMzllNjUzNjgxMzQ2ODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmMQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRp
b25jcmVhdGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ZDFlYzk3NTMyOWIxN2Q3MjNjZTNjMGU5NzllNWQ1Zjkw
ZjQwYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAot
Ci0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0s
IAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2Vh
cmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVu
aXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNv
cnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0g
ICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAg
QHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdl
dFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVy
ID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rp
bmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8K
LS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9u
b3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0
aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9u
IGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkg
b2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRl
c3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBi
dWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBjaGVja0ZlYXR1cmUo
IlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2Fk
ZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAg
ICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFs
aXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQg
b24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFy
dGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRl
ZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hh
bmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhl
Y3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLS8qKgotKiAKLUNyZWF0aW5nIGFuIGVudGl0eSByZWZlcmVuY2Ugd2l0aCBhbiBlbXB0eSBu
YW1lIHNob3VsZCBjYXVzZSBhbiBJTlZBTElEX0NIQVJBQ1RFUl9FUlIuCi0KLSogQGF1dGhvciBD
dXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZl
bC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBBRicpL2Nv
bnN0YW50W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJ
RC0zOTJCNzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZl
bC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVBRScpL3Jh
aXNlcy9leGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3RyaW5nLWJl
Zm9yZSguLCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD01MjUKLSovCi1mdW5jdGlvbiBkb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSIpICE9IG51bGwpIHJldHVybjsKLSAg
ICB2YXIgZG9jOwotICAgICAgdmFyIGJhZEVudGl0eVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5j
b250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZh
bHNlOwotCQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZm9vIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nl
c3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0J
CX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0K
LQotCX0KLQkKLQkJZWxzZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoIiIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JCX0KLQkKLX0K
LQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4M2JhYjk4NGFlN2NhMmFmZWJjYTAyNGVjM2Q4MGI4N2Q0
OGZlODQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBA
Ci08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBo
dG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInho
dG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5U
SVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5U
SVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwh
RU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJu
b3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24y
RmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBU
aGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4
dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9z
Y3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+
RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2Rl
PkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRo
IEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50
IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25n
PgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBE
YWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRh
OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2Vt
PgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGly
ZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9l
bT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3Bl
Y2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1
NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGYyMDljM2U0MzY0ZWRjNDU1
ZDU0ZDQxNTIwOTRlMmU2NmFhZDc2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdl
dHZhbHVlMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19hdHRy
Z2V0dmFsdWUyCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlhdHRyVmFsdWUxOiBhc3NlcnRFcXVh
bHMgZmFpbGVkLCBhY3R1YWwgWc6xLCBleHBlY3RlZCDOsVnOsS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0Y2MyYWUzNWUyN2I0OTQ0OGQwN2Q2MTY0YjQ5YjBhOTgz
MGNjZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0
IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRp
Y3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2
ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBM
aWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29m
dHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlk
ZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0
Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFs
dWUyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0g
bnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rpbmcg
ZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8v
ICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3Vz
Ci0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUg
c3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlz
IGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2Yg
dGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3Qg
ZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWls
ZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBjaGVja0ZlYXR1cmUoIlhN
TCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQg
Kz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAg
aWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXph
dGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24g
dGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVk
IGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBk
b2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdl
ZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0
ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LS8qKgotKiAKLUNoZWNrcyB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIHRoYXQgY29udGFpbnMg
ZW50aXR5IHJlZmVyZW5jZXMuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1j
b3JlI0lELTIyMTY2MjQ3NAotKi8KLWZ1bmN0aW9uIGhjX2F0dHJnZXR2YWx1ZTIoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJoY19hdHRy
Z2V0dmFsdWUyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgYWNy
b255bUxpc3Q7Ci0gICAgICB2YXIgdGVzdE5vZGU7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAg
ICAgIHZhciB0aXRsZUF0dHI7Ci0gICAgICB2YXIgdmFsdWU7Ci0gICAgICB2YXIgdGV4dE5vZGU7
Ci0gICAgICB2YXIgcmV0dmFsOwotICAgICAgdmFyIGZpcnN0Q2hpbGQ7Ci0gICAgICB2YXIgYWxw
aGFSZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwot
ICAgICAgYWNyb255bUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImFjcm9ueW0iKTsK
LSAgICAgIHRlc3ROb2RlID0gYWNyb255bUxpc3QuaXRlbSgzKTsKLSAgICAgIGF0dHJpYnV0ZXMg
PSB0ZXN0Tm9kZS5hdHRyaWJ1dGVzOwotCi0gICAgICB0aXRsZUF0dHIgPSBhdHRyaWJ1dGVzLmdl
dE5hbWVkSXRlbSgiY2xhc3MiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRU
eXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0J
CXRyeSB7Ci0gICAgICAgICAgICBhbHBoYVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImFscGhhIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlw
ZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNz
ZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkK
LQkJZWxzZSB7Ci0JCQlhbHBoYVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhh
Iik7Ci0gICAgICBmaXJzdENoaWxkID0gdGl0bGVBdHRyLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIHJl
dHZhbCA9IHRpdGxlQXR0ci5pbnNlcnRCZWZvcmUoYWxwaGFSZWYsZmlyc3RDaGlsZCk7Ci0gICAg
ICB2YWx1ZSA9IHRpdGxlQXR0ci52YWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJhdHRyVmFs
dWUxIiwizrFZzrEiLHZhbHVlKTsKLSAgICAgICAKLQkJfQotCQotfQotCi0KLQotCi1mdW5jdGlv
biBydW5UZXN0KCkgewotICAgaGNfYXR0cmdldHZhbHVlMigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIueGh0bWwgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGEyZTQwMTM4YzU1MDg0OWQ3OWQxN2E4NGE5
ZTQyN2IyODVlZWZiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi54
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/
Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAg
IDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAg
IDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0g
ICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIGRpciBDREFUQSAibHRyIj4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCAgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpzIi8+PHNjcmlwdCB0eXBl
PSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7
IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2
ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9u
IHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9z
dHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVt
PkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+
RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4m
ZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3
IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2Fk
LiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRl
ciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhh
cyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwN2IxYTI2MmZhODgxNmU5
NzFlYzMwNzk2ZDc2NTk5NGVmOThlNTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2
YWx1ZTAzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25vZGV2
YWx1ZTAzCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJRXJyb3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yOiBET00gRXhjZXB0aW9uIDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTYxNjcxYWE0YjM4YTY1YTFjZWQ0Zjk1OWE4YjE0NjM1ZjMxMjU4NS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAs
MCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNv
cnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFu
IFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBL
ZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0
cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1o
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3Jn
L0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0K
LQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0g
ICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdl
dFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMyI7Ci0gICB9Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotQW4gZW50aXR5IHJlZmVyZW5jZSBpcyBjcmVhdGVkLCBzZXROb2RlVmFsdWUgaXMg
Y2FsbGVkIHdpdGggYSBub24tbnVsbCBhcmd1bWVudCwgYnV0IGdldE5vZGVWYWx1ZQotc2hvdWxk
IHN0aWxsIHJldHVybiBudWxsLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC1GNjhEMDgwCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9N
LUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMTFDOTg0OTAKLSovCi1mdW5jdGlv
biBoY19ub2RldmFsdWUwMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlh
bGl6YXRpb24oYnVpbGRlciwgImhjX25vZGV2YWx1ZTAzIikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgbmV3Tm9kZTsKLSAgICAgIHZhciBuZXdWYWx1ZTsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigK
LQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgbmV3Tm9kZSA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewot
ICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29k
ZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3Vj
Y2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsKLQkJCW5ld05vZGUgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhc3NlcnROb3ROdWxsKCJjcmVhdGVkRW50UmVm
Tm90TnVsbCIsbmV3Tm9kZSk7Ci1uZXdWYWx1ZSA9IG5ld05vZGUubm9kZVZhbHVlOwotCi0gICAg
ICBhc3NlcnROdWxsKCJpbml0aWFsbHlOdWxsIixuZXdWYWx1ZSk7Ci0gICAgbmV3Tm9kZS5ub2Rl
VmFsdWUgPSAiVGhpcyBzaG91bGQgaGF2ZSBubyBlZmZlY3QiOwotCi0gICAgICBuZXdWYWx1ZSA9
IG5ld05vZGUubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnROdWxsKCJudWxsQWZ0ZXJBdHRlbXB0
ZWRDaGFuZ2UiLG5ld1ZhbHVlKTsKLSAgICAKLQkJfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgaGNfbm9kZXZhbHVlMDMoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTI3NjUxZWM4OWZhODgwYmI1MjRjYTI0YmFmOWUxYzUyODFm
ZDJlNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZ
TEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBn
YW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkg
ZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIg
Q0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRt
bCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48
dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iaGNfbm9kZXZhbHVlMDMuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8
L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50
YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRl
eGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlS
ZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNl
Y3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNv
ZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAm
Z2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhh
cyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0
cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9j
b2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4
YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxz
dHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8
L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3Jv
bnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzNzkzZTA0Y2I2NGQ5YmU4YWY1
ZjA2YjdlNTM4NmNmMjQ2YWJjNjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRv
cHRub2RlMDYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1l
bnRhZG9wdG5vZGUwNgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDgwNGI5NDgxNTI4ZmUyMDgxZmIzYTRkYzNkNDlkMjVkMDU1YThm
MjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0
IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRp
Y3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2
ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBM
aWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29m
dHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlk
ZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0
Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0
bm9kZTA2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVy
ID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rp
bmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8K
LS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9u
b3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0
aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9u
IGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkg
b2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRl
c3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBi
dWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9
IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4
KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAg
VGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNo
IGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBl
dmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAg
dGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5
IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewot
ICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIGFkb3B0Tm9kZSBvbiBh
IG5ldyBkb2N1bWVudCB0byBhZG9wdCB0aGUgYSBuZXcgQXR0cmlidXRlIG5vZGUgaGF2aW5nIGEg
VGV4dCBhbmQgYW4gRW50aXR5UmVmZXJlbmNlIAotCWNoaWxkLiAgQ2hlY2sgaWYgdGhpcyBhdHRy
aWJ1dGUgaGFzIGJlZW4gYWRvcHRlZCBzdWNjZXNzZnVsbHkgYnkgdmVyaWZ5aW5nIHRoZSBub2Rl
TmFtZSwgbmFtZXNwYWNlVVJJLCBwcmVmaXgsIAotCXNwZWNpZmllZCBhbmQgb3duZXJFbGVtZW50
IGF0dHJpYnV0ZXMgb2YgdGhlIGFkb3B0ZWQgbm9kZS4gIEFsc28gdmVyaWZ5IHRoZSBvd25lckRv
Y3VtZW50IGF0dHJpYnV0ZQotCW9mIHRoZSBhZG9wdGVkIG5vZGUgYW5kIHRoZSBhZG9wdGVkIGNo
aWxkcmVuIG9mIHRoZSBhdHRyaWJ1dGUgbm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9y
IE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxl
dmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0RvY3VtZW50My1hZG9wdE5vZGUKLSovCi1mdW5jdGlv
biBkb2N1bWVudGFkb3B0bm9kZTA2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRhZG9wdG5vZGUwNiIpICE9IG51bGwpIHJl
dHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5ld0RvYzsKLSAgICAgIHZhciBkb21JbXBs
OwotICAgICAgdmFyIG5ld0F0dHI7Ci0gICAgICB2YXIgbmV3VGV4dDsKLSAgICAgIHZhciBuZXdF
bnRSZWY7Ci0gICAgICB2YXIgYWRvcHRlZEF0dHI7Ci0gICAgICB2YXIgYWRvcHRUZXh0OwotICAg
ICAgdmFyIGFkb3B0RW50UmVmOwotICAgICAgdmFyIG5vZGVMaXN0OwotICAgICAgdmFyIG5vZGVO
YW1lOwotICAgICAgdmFyIG5vZGVOYW1lc3BhY2VVUkk7Ci0gICAgICB2YXIgbm9kZVByZWZpeDsK
LSAgICAgIHZhciBhdHRyT3duZXJFbGVtOwotICAgICAgdmFyIGlzU3BlY2lmaWVkOwotICAgICAg
dmFyIGFkb3B0ZWRUZXh0Tm9kZVZhbHVlOwotICAgICAgdmFyIGFkb3B0ZWRFbnRSZWZOb2RlVmFs
dWU7Ci0gICAgICB2YXIgbnVsbERvY1R5cGUgPSBudWxsOwotCi0gICAgICB2YXIgYXBwZW5kZWRD
aGlsZDsKLSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIHJvb3ROUzsKLSAgICAgIHZhciBy
b290TmFtZTsKLSAgICAgIHZhciB4bWxOUyA9ICJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9u
YW1lc3BhY2UiOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICByb290TmFt
ZSA9IGRvY0VsZW0udGFnTmFtZTsKLQotICAgICAgcm9vdE5TID0gZG9jRWxlbS5uYW1lc3BhY2VV
Ukk7Ci0KLSAgICAgIGRvbUltcGwgPSBkb2MuaW1wbGVtZW50YXRpb247Ci1uZXdEb2MgPSBkb21J
bXBsLmNyZWF0ZURvY3VtZW50KHJvb3ROUyxyb290TmFtZSxudWxsRG9jVHlwZSk7Ci0gICAgICBu
ZXdBdHRyID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKHhtbE5TLCJ4bWw6bGFuZyIpOwotICAgICAg
bmV3VGV4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBOb2RlIik7Ci0gICAgICBuZXdFbnRS
ZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IG5ld0F0dHIuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gbmV3QXR0ci5hcHBlbmRDaGlsZChuZXdFbnRSZWYpOwotICAgICAgYWRvcHRlZEF0dHIgPSBu
ZXdEb2MuYWRvcHROb2RlKG5ld0F0dHIpOwotICAgICAgCi0JaWYoCi0JCi0JKGFkb3B0ZWRBdHRy
ICE9IG51bGwpCi0KLQkpIHsKLQlub2RlTmFtZSA9IGFkb3B0ZWRBdHRyLm5vZGVOYW1lOwotCi0g
ICAgICBub2RlTmFtZXNwYWNlVVJJID0gYWRvcHRlZEF0dHIubmFtZXNwYWNlVVJJOwotCi0gICAg
ICBub2RlUHJlZml4ID0gYWRvcHRlZEF0dHIucHJlZml4OwotCi0gICAgICBhdHRyT3duZXJFbGVt
ID0gYWRvcHRlZEF0dHIub3duZXJFbGVtZW50OwotCi0gICAgICBpc1NwZWNpZmllZCA9IGFkb3B0
ZWRBdHRyLnNwZWNpZmllZDsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9k
ZTA2X25vZGVOYW1lIiwieG1sOmxhbmciLG5vZGVOYW1lKTsKLSAgICAgICBhc3NlcnRFcXVhbHMo
ImRvY3VtZW50YWRvcHRub2RlMDZfbmFtZXNwYWNlVVJJIix4bWxOUyxub2RlTmFtZXNwYWNlVVJJ
KTsKLSAgICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfcHJlZml4IiwieG1s
Iixub2RlUHJlZml4KTsKLSAgICAgICBhc3NlcnROdWxsKCJkb2N1bWVudGFkb3B0bm9kZTA2X293
bmVyRG9jIixhdHRyT3duZXJFbGVtKTsKLSAgICBhc3NlcnRUcnVlKCJkb2N1bWVudGFkb3B0bm9k
ZTA2X3NwZWNpZmllZCIsaXNTcGVjaWZpZWQpOwotbm9kZUxpc3QgPSBhZG9wdGVkQXR0ci5jaGls
ZE5vZGVzOwotCi0gICAgICBhZG9wdFRleHQgPSBub2RlTGlzdC5pdGVtKDApOwotICAgICAgYWRv
cHRFbnRSZWYgPSBub2RlTGlzdC5pdGVtKDEpOwotICAgICAgYWRvcHRlZFRleHROb2RlVmFsdWUg
PSBhZG9wdFRleHQubm9kZVZhbHVlOwotCi0gICAgICBhZG9wdGVkRW50UmVmTm9kZVZhbHVlID0g
YWRvcHRFbnRSZWYubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9w
dG5vZGUwNl9UZXh0Tm9kZVZhbHVlIiwiVGV4dCBOb2RlIixhZG9wdGVkVGV4dE5vZGVWYWx1ZSk7
Ci0gICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X0VudFJlZk5vZGVWYWx1
ZSIsImFscGhhIixhZG9wdGVkRW50UmVmTm9kZVZhbHVlKTsKLSAgICAgICAKLQl9Ci0JCi19Ci0K
LQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGFkb3B0bm9kZTA2KCk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRh
ZG9wdG5vZGUwNi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudGFkb3B0bm9kZTA2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTJk
ODkwZGFkYjVhODczNTlmNDlmZWQ0MTk5NDczNTg0ZDIxNzIwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZ
UEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAg
ICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8
IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8
IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJ
QyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0
aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAg
ICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
aHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAg
ICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRU
TElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
Ci0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5z
dGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1l
bnRhZG9wdG5vZGUwNi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9u
bG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhp
cyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50Mjtd
XT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2Rl
PgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0g
IDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNv
ZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlk
PSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9
Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9i
ZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0g
IDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIx
IE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
ZG9jdW1lbnRhZG9wdG5vZGUxNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDI4YWIxODg2MWZiZThhNTBmNTljODEyYWViZDA1MzM5ZWE1N2Nm
NWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNgotU3Rh
dHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9kb2N1bWVudGFkb3B0bm9kZTE2LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL2RvY3VtZW50YWRvcHRub2RlMTYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhmZDZlMmZkYzM0N2EzNDExMDU1YmRhMmVkZTlhMjIyOWJlOWVmZTQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzAg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2IjsKLSAgIH0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1DcmVhdGUgYSBkb2N1bWVudCBmcmFnbWVudCB3aXRoIGFuIGVudGl0
eSByZWZlcmVuY2UsIGFkb3B0IHRoZSBub2RlIGFuZCBjaGVjawotdGhhdCB0aGUgZW50aXR5IHJl
ZmVyZW5jZSB2YWx1ZSBjb21lcyBmcm9tIHRoZSBhZG9wdGluZyBkb2N1bWVudHMgRFRELgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjRG9jdW1lbnQz
LWFkb3B0Tm9kZQotKi8KLWZ1bmN0aW9uIGRvY3VtZW50YWRvcHRub2RlMTYoKSB7Ci0gICB2YXIg
c3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGFk
b3B0bm9kZTE2IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9j
RnJhZ21lbnQ7Ci0gICAgICB2YXIgY2hpbGRMaXN0OwotICAgICAgdmFyIHBhcmVudDsKLSAgICAg
IHZhciBjaGlsZDsKLSAgICAgIHZhciBjaGlsZHNBdHRyOwotICAgICAgdmFyIGVudFJlZjsKLSAg
ICAgIHZhciB0ZXh0Tm9kZTsKLSAgICAgIHZhciBhZG9wdGVkOwotICAgICAgdmFyIHBhcmVudElt
cDsKLSAgICAgIHZhciBjaGlsZEltcDsKLSAgICAgIHZhciBhdHRyaWJ1dGVzOwotICAgICAgdmFy
IGNoaWxkQXR0ckltcDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRD
aGlsZDsKLSAgICAgIHZhciBhdHRyTm9kZTsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAg
dmFyIGZpcnN0Q2hpbGRUeXBlOwotICAgICAgdmFyIGZpcnN0Q2hpbGROYW1lOwotICAgICAgdmFy
IGZpcnN0Q2hpbGRWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBkb2NGcmFnbWVudCA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCk7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlRWxlbWVudCgicGFyZW50Iik7Ci0gICAgICBj
aGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50KCJjaGlsZCIpOwotICAgICAgY2hpbGRzQXR0ciA9IGRv
Yy5jcmVhdGVBdHRyaWJ1dGUoInN0YXRlIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJnYW1tYSIpOwotICAgICAgdGV4dE5vZGUgPSBkb2MuY3JlYXRlVGV4dE5v
ZGUoIlRlc3QiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBjaGlsZHNBdHRyLmFwcGVuZENoaWxk
KGVudFJlZik7Ci0gICAgICBhdHRyTm9kZSA9IGNoaWxkLnNldEF0dHJpYnV0ZU5vZGUoY2hpbGRz
QXR0cik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gY2hpbGQuYXBwZW5kQ2hpbGQodGV4dE5vZGUp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChjaGlsZCk7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZ21lbnQuYXBwZW5kQ2hpbGQocGFyZW50KTsKLSAgICAg
IGFkb3B0ZWQgPSBkb2MuYWRvcHROb2RlKGRvY0ZyYWdtZW50KTsKLSAgICAgIAotCWlmKAotCQot
CShhZG9wdGVkICE9IG51bGwpCi0KLQkpIHsKLQlwYXJlbnRJbXAgPSBhZG9wdGVkLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIGNoaWxkSW1wID0gcGFyZW50SW1wLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGF0
dHJpYnV0ZXMgPSBjaGlsZEltcC5hdHRyaWJ1dGVzOwotCi0gICAgICBjaGlsZEF0dHJJbXAgPSBh
dHRyaWJ1dGVzLmdldE5hbWVkSXRlbSgic3RhdGUiKTsKLSAgICAgIGZpcnN0Q2hpbGQgPSBjaGls
ZEF0dHJJbXAuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZmlyc3RDaGlsZE5v
dE51bGwiLGZpcnN0Q2hpbGQpOwotZmlyc3RDaGlsZE5hbWUgPSBmaXJzdENoaWxkLm5vZGVOYW1l
OwotCi0gICAgICBmaXJzdENoaWxkVmFsdWUgPSBmaXJzdENoaWxkLm5vZGVWYWx1ZTsKLQotICAg
ICAgZmlyc3RDaGlsZFR5cGUgPSBmaXJzdENoaWxkLm5vZGVUeXBlOwotCi0gICAgICAKLQlpZigK
LQkoNSA9PSBmaXJzdENoaWxkVHlwZSkKLQkpIHsKLQlhc3NlcnRFcXVhbHMoImZpcnN0Q2hpbGRF
bnQzUmVmIiwiZ2FtbWEiLGZpcnN0Q2hpbGROYW1lKTsKLSAgICAgICAKLQl9Ci0JCi0JCWVsc2Ug
ewotCQkJYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTE2IiwiVGV4YXMiLGZpcnN0Q2hp
bGRWYWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICBkb2N1bWVudGFkb3B0bm9kZTE2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2Lnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmJiOWRlMWZiOTM4YjA3OTc1MzBm
MTEzMGM4NzE4NmU3NjM3ZDFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0
bm9kZTE2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElD
ICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0
ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0
NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5
NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFB
VFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENE
QVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAg
ICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50
NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0
YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENE
QVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0
bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhz
aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54
c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVU
Ri04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRhZG9wdG5vZGUxNi5qcyIv
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291
bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgot
ICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlv
biB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMg
aXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRh
YjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAm
Z2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0g
Sm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3Vw
PjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4K
LSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVj
dG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMg
OTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5n
b3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+
Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+
Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2
aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2Rl
MjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3Vt
ZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDM3MzQ0MWQ0MzAyMTQ5MmY5NDM3ZGZiNjYwZGMwZTRmYTM2MzgyZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcKLVN0YXR1cwlmYWlsdXJlCi1N
ZXNzYWdlCXRocm93X05PVF9TVVBQT1JURURfRVJSXzE6IGFzc2VydFRydWUgZmFpbGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVu
b2RlMjcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5h
bWVub2RlMjcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2NzNjYWNiYzY4OTZj
NjZjYTIzMzAyZjZhMjFhYjY5Y2UzZDg0YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3Vt
ZW50cmVuYW1lbm9kZTI3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTg5ICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjciOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQlJbnZva2UgdGhlIHJlbmFtZU5vZGUgbWV0aG9kIHRvIGF0dGVtcHQgdG8gcmVuYW1lIG5l
dyBUZXh0LCBDb21tZW50LCBDRGF0YVNlY3Rpb24sCi0JUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFu
ZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgb2YgYSBuZXcgRG9jdW1lbnQuCi0JQ2hlY2sgaWYgYSBO
T1RfU1VQUE9SVEVEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBO
ZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZl
bC0zLUNvcmUtMjAwNDA0MDcvY29yZSNEb2N1bWVudDMtcmVuYW1lTm9kZQotKi8KLWZ1bmN0aW9u
IGRvY3VtZW50cmVuYW1lbm9kZTI3KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRyZW5hbWVub2RlMjciKSAhPSBudWxsKSBy
ZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIgZG9tSW1w
bDsKLSAgICAgIHZhciB0ZXh0OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgY2RhdGE7
Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2YXIgZW50cmVmOwotICAgICAgdmFyIHJlbmFtZWRUeHQ7
Ci0gICAgICB2YXIgcmVuYW1lZENvbW1lbnQ7Ci0gICAgICB2YXIgcmVuYW1lZENkYXRhOwotICAg
ICAgdmFyIHJlbmFtZWRQaTsKLSAgICAgIHZhciByZW5hbWVkRW50UmVmOwotICAgICAgdmFyIG51
bGxEb2NUeXBlID0gbnVsbDsKLQotICAgICAgdmFyIGRvY0VsZW07Ci0gICAgICB2YXIgcm9vdE5T
OwotICAgICAgdmFyIHJvb3ROYW1lOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0g
ICAgICByb290TlMgPSBkb2NFbGVtLm5hbWVzcGFjZVVSSTsKLQotICAgICAgcm9vdE5hbWUgPSBk
b2NFbGVtLnRhZ05hbWU7Ci0KLSAgICAgIGRvbUltcGwgPSBkb2MuaW1wbGVtZW50YXRpb247Ci1u
ZXdEb2MgPSBkb21JbXBsLmNyZWF0ZURvY3VtZW50KHJvb3ROUyxyb290TmFtZSxudWxsRG9jVHlw
ZSk7Ci0gICAgICB0ZXh0ID0gbmV3RG9jLmNyZWF0ZVRleHROb2RlKCJ0ZXh0Iik7Ci0gICAgICBj
b21tZW50ID0gbmV3RG9jLmNyZWF0ZUNvbW1lbnQoImNvbW1lbnQiKTsKLSAgICAgIGNkYXRhID0g
bmV3RG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiY2RhdGEiKTsKLSAgICAgIHBpID0gbmV3RG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigicGl0IiwicGlkIik7Ci0gICAgICBlbnRyZWYgPSBu
ZXdEb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgCi0JewotCQlzdWNj
ZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW5hbWVkVHh0ID0gbmV3RG9jLnJl
bmFtZU5vZGUodGV4dCwiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJ0ZXh0Iik7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
Tk9UX1NVUFBPUlRFRF9FUlJfMSIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFs
c2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW5hbWVkQ29tbWVudCA9IG5ld0RvYy5yZW5hbWVO
b2RlKGNvbW1lbnQsImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwiY29tbWVudCIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9TVVBQT1JURURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZh
bHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZENkYXRhID0gbmV3RG9jLnJlbmFtZU5v
ZGUoY2RhdGEsImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwiY2RhdGEiKTsKLSAgICAgICAg
fQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3Vu
ZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1Rf
U1VQUE9SVEVEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbmFtZWRQaSA9IG5ld0RvYy5yZW5hbWVOb2RlKHBpLCJo
dHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsInBpIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgp
IHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4
LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJf
NCIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZW5hbWVkRW50UmVmID0gbmV3RG9jLnJlbmFtZU5vZGUoZW50cmVmLCJodHRwOi8v
d3d3LnczLm9yZy9ET00vVGVzdCIsImVudHJlZiIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSXzUi
LHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9j
dW1lbnRyZW5hbWVub2RlMjcoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy54aHRtbCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZGU3ODExYjQyZGUyYzQ2N2U1YTJhNjBlMTgyOTFkMmQxMDhm
ODNjOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RF
U1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFRE
IFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVO
VElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFF
TlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJ
T04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAg
ICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6
eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0
YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+
Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudHJlbmFtZW5vZGUyNy5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjAu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjAueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3OGU0
ZTY2NDY2ZmJkYzE0MDc2NzU1Mzg3YTlhMzVmMGYxZWE5NmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLnhodG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+
Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0
Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1
OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3
OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYj
OTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNU
RU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdy
dGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5t
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElF
RAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4K
LSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4K
LSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBp
cyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxT
Y2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhj
X3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0
bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjAuanMiLz48c2NyaXB0IHR5cGU9J3RleHQv
amF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2Ny
aXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1h
cmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3Vw
PjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5
bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVu
Y2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRB
U2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxj
b2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0g
IDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxj
b2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2
YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85
ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3
LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29u
bm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8
L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBT
cGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNy
b255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDkwMjQzNzM4ZjYwYTA4ODQ2NGRhZDg0ODI3ZWE2YzE0ZWIwMTNmNzEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2Ci1T
dGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbnRSZWZDaGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxs
IGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzZThiM2ZhZTg4NzlhMGEzNGRmMDFiNjQ1ZGMzNzYwYWJlMDI3MzFj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNp
bmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gY2hlY2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBu
b2RlIGNvbnRhaW5zIGFuZCBwcmVjZWRlcyBpdCdzIGZpcnN0Ci0JY2hpbGRFbGVtZW50LCBhbmQg
dGhhdCB0aGUgY2hpbGRFbGVtZW50IGlzIGNvbnRhaW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5
UmVmZXJlbmNlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSog
QHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQw
NDA3L2NvcmUjTm9kZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAg
ICAgIHZhciB2YXJFbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGls
ZDE7Ci0gICAgICB2YXIgZW50UmVmUG9zaXRpb247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9z
aXRpb247Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwot
ICAgICAgCi0JaWYoCi0JKGdldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlS
ZWZlcmVuY2VzIikgPT0gZmFsc2UpCi0JKSB7Ci0JdmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5
VGFnTmFtZSgidmFyIik7Ci0gICAgICB2YXJFbGVtID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAg
YXNzZXJ0Tm90TnVsbCgidmFyRWxlbU5vdE51bGwiLHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxl
bS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRS
ZWYpOwotCi0JfQotCQotCQllbHNlIHsKLQkJCWVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZl
cmVuY2UoImVudDQiKTsKLSAgICAgIAotCQl9Ci0JZW50UmVmQ2hpbGQxID0gZW50UmVmLmZpcnN0
Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMU5vdE51bGwiLGVudFJl
ZkNoaWxkMSk7Ci1lbnRSZWZQb3NpdGlvbiA9IGVudFJlZi5jb21wYXJlRG9jdW1lbnRQb3NpdGlv
bihlbnRSZWZDaGlsZDEpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb25Jc0NvbnRhaW5lZEZvbGxvd2luZzI2IiwyMCxlbnRSZWZQb3NpdGlvbik7Ci0gICAg
ICAgZW50UmVmQ2hpbGQxUG9zaXRpb24gPSBlbnRSZWZDaGlsZDEuY29tcGFyZURvY3VtZW50UG9z
aXRpb24oZW50UmVmKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uQ29udGFpbnNQUkVDRURJTkcyNiIsMTAsZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAg
ICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi54
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzczM2UwZDA2NThiYmZiZjRmYTUw
ODNlMGEyMzk3MzJhNDRjMWU5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1s
Ci0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1s
MS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZ
IGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZ
IGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5U
SVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3Rh
dGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmls
ZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1s
bnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0g
ICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFj
cm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNw
YW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAg
ICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIK
LSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yNi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVz
YS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUx
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFb
VGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50
MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9j
b2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2Vt
PgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBN
YW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1Mzwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+
Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAg
PGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsi
IGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRo
IFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVt
cDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4x
ODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwv
Ym9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDcyOWI0Y2Q4MDU4YTNj
NzVjYTgxMmI0MjUyNzViMzZmOGU0MjlmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcKLVN0YXR1cwlmYWlsdXJlCi1N
ZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uMjcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAxZTE5Yjc2NzAyYjM0YTk4NWU4MjRmODFlYWNhYWYzZWU0YmUwZjYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMTMzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBX
aWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9s
b2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBN
YXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlz
IHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBb
MV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRw
Oi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIw
MDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVz
IHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICov
Ci1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBjb21wYXJlRG9jdW1l
bnRQb3NpdGlvbiB0byBjaGVjayBpZiB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUgY29udGFpbnMg
YW5kIHByZWNlZGVzIGl0J3MgbGFzdAotCWNoaWxkRWxlbWVudCwgYW5kIHRoYXQgdGhpcyBjaGls
ZEVsZW1lbnQgaXMgY29udGFpbmVkIGFuZCBmb2xsb3dzIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIEplbm55IEhzdQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2Rl
My1jb21wYXJlRG9jdW1lbnRQb3NpdGlvbgotKi8KLWZ1bmN0aW9uIG5vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvbjI3KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjciKSAhPSBudWxsKSBy
ZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB2YXJMaXN0OwotICAgICAgdmFyIHZhckVs
ZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsKLSAgICAgIHZh
ciBlbnRSZWZQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigK
LQkoZ2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiKSA9
PSBmYWxzZSkKLQkpIHsKLQl2YXJMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ2YXIi
KTsKLSAgICAgIHZhckVsZW0gPSB2YXJMaXN0Lml0ZW0oMik7Ci0gICAgICBhc3NlcnROb3ROdWxs
KCJ2YXJFbGVtTm90TnVsbCIsdmFyRWxlbSk7Ci1lbnRSZWYgPSB2YXJFbGVtLmZpcnN0Q2hpbGQ7
Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZk5vdE51bGwiLGVudFJlZik7Ci0KLQl9Ci0J
Ci0JCWVsc2UgewotCQkJZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIp
OwotICAgICAgCi0JCX0KLQllbnRSZWZDaGlsZDEgPSBlbnRSZWYubGFzdENoaWxkOwotCi0gICAg
ICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50
UmVmUG9zaXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQx
KTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uSXNDb250
YWluZWRGb2xsb3dpbmcyNyIsMjAsZW50UmVmUG9zaXRpb24pOwotICAgICAgIGVudFJlZkNoaWxk
MVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZik7
Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbkNvbnRhaW5z
UFJFQ0VESU5HIiwxMCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNygp
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMWFiZTAxYmY5YmQ4OWQxYTFlYWY2ZWNiYzAxYjA5M2U2ZWJm
YjEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
Ny54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEu
MCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8v
VzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsK
LSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4K
LSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+
Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUw
OyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElT
VCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAj
SU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpl
bXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAg
ICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxz
cGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3Nw
YW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAj
SU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48
aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg
Y2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3
LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFb
VGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRh
YiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxs
YXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9n
ZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0g
IDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8
L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwg
RGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0
cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8
L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3M2QzMjQ5ZDg0YmIzYzI2MTY3NWUzZTRlOGNhZDM2
Mjk4YTNmODVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb24yOAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZW50UmVmQ2hp
bGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYyYjI4ZTgzYzMwNTQ0
ZGFhYTg0MWYxN2ZkMTVkN2I4ZGJjNTJlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjguanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBA
QAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRp
dW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJl
c2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlv
IFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmli
dXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0Nv
bnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQot
Ci0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAg
KiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRh
cmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIGNoZWNr
IHRoZSBkb2N1bWVudCBwb3NpdGlvbiBvZiB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUgZW50NCdz
Ci0JZmlyc3QgY2hpbGQgYW5kIGxhc3QgY2hpbGQuICBJbnZva2UgY29tcGFyZURvY3VtZW50UG9z
aXRvbiBvbiBmaXJzdCBjaGlsZCB3aXRoIGxhc3QgY2hpbGQgYXMgYSBwYXJhbWV0ZXIKLQlzaG91
bGQgcmV0dXJuIEZPTExPV0lORywgYW5kIHNob3VsZCByZXR1cm4gUFJFQ0VESU5HIHZpY2UgdmVy
c2EuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9k
ZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6
YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4IikgIT0gbnVsbCkg
cmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZhciB2YXJF
bGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0gICAgICB2
YXIgZW50UmVmQ2hpbGQyOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0aW9uOwotICAgICAg
dmFyIGVudFJlZkNoaWxkMlBvc2l0aW9uOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCShnZXRJbXBsZW1lbnRhdGlvbkF0dHJp
YnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIpID09IGZhbHNlKQotCSkgewotCXZhckxpc3Qg
PSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInZhciIpOwotICAgICAgdmFyRWxlbSA9IHZhckxp
c3QuaXRlbSgyKTsKLSAgICAgIGFzc2VydE5vdE51bGwoInZhckVsZW1Ob3ROdWxsIix2YXJFbGVt
KTsKLWVudFJlZiA9IHZhckVsZW0uZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgi
ZW50UmVmTm90TnVsbCIsZW50UmVmKTsKLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBk
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICAKLQkJfQotCWVudFJlZkNo
aWxkMSA9IGVudFJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZD
aGlsZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50UmVmQ2hpbGQyID0gZW50UmVmLmxhc3RD
aGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQyTm90TnVsbCIsZW50UmVm
Q2hpbGQyKTsKLWVudFJlZkNoaWxkMVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uKGVudFJlZkNoaWxkMik7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvbkZvbGxvd2luZzI4Iiw0LGVudFJlZkNoaWxkMVBvc2l0aW9uKTsK
LSAgICAgICBlbnRSZWZDaGlsZDJQb3NpdGlvbiA9IGVudFJlZkNoaWxkMi5jb21wYXJlRG9jdW1l
bnRQb3NpdGlvbihlbnRSZWZDaGlsZDEpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb25QUkVDRURJTkcyOCIsMixlbnRSZWZDaGlsZDJQb3NpdGlvbik7Ci0g
ICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yOCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LnhodG1sIGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjUwODI5ZjEyYzI5NmI2MTk1
NmI4MWZjNjY2NTgyZTM2MzIyOWViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJv
ZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48
L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1
NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFU
QVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZl
bnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBh
IHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8
L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwv
ZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50
IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUz
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29t
Ij4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9u
Zz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29k
ZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgot
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmNhNzgxN2M4MTQ4
NWVlYjFmZDRiZTRmODViZDFlZTIxN2Y0OTZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOQotU3RhdHVzCWZhaWx1cmUK
LU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmQ5ZmQ0NWZhOTE1YzRmNTJhMGMwODc3YTE2Yjk1ZWE3YTJkODkxOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxMjggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxk
IFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hu
b2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5k
IE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRo
aXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNl
IFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0
dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUt
MjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZp
ZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAg
Ki8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53
My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yOSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2Fk
ZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRj
aChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0v
LyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAg
ZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdo
ZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAg
ICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAg
Ym9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUNyZWF0ZSB0d28gZW50aXR5
IHJlZmVyZW5jZSBub2Rlcy4gVXNpbmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gdG8gY2hlY2sg
aWYgdGhlIGNoaWxkIG9mIHRoZSBmaXJzdCBFbnRpdHkgCi0JUmVmIG5vZGUgcHJlY2VkZXMgdGhl
IGNoaWxkIG9mIHRoZSBzZWNvbmQgRW50aXR5IFJlZiBub2RlLCBhbmQgdGhhdCB0aGUgY2hpbGQg
b2YgdGhlIHNlY29uZCBFbnRpdHkgUmVmIG5vZGUKLQlmb2xsb3dzIHRoZSBjaGlsZCBvZiB0aGUg
Zmlyc3QgRW50aXR5IFJlZiBub2RlLiAgCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5u
eSBIc3UKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1D
b3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5j
dGlvbiBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOSgpIHsKLSAgIHZhciBzdWNjZXNzOwot
ICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI5IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9j
RWxlbTsKLSAgICAgIHZhciBlbnRSZWYxOwotICAgICAgdmFyIGVudFJlZjI7Ci0gICAgICB2YXIg
ZW50UmVmQ2hpbGQxOwotICAgICAgdmFyIGVudFJlZkNoaWxkMjsKLSAgICAgIHZhciBlbnRSZWZD
aGlsZDFQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDJQb3NpdGlvbjsKLSAgICAgIHZh
ciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIGVudFJlZjEgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0
Iik7Ci0gICAgICBlbnRSZWYyID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwot
ICAgICAgZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBkb2NFbGVtLmFwcGVuZENoaWxkKGVudFJlZjEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGRvY0VsZW0uYXBwZW5kQ2hpbGQoZW50UmVmMik7Ci0gICAgICBlbnRSZWZDaGlsZDEgPSBlbnRS
ZWYxLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMU5vdE51
bGwiLGVudFJlZkNoaWxkMSk7Ci1lbnRSZWZDaGlsZDIgPSBlbnRSZWYyLmxhc3RDaGlsZDsKLQot
ICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQyTm90TnVsbCIsZW50UmVmQ2hpbGQyKTsK
LWVudFJlZkNoaWxkMVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKGVudFJlZkNoaWxkMik7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvbkZvbGxvd2luZzI5Iiw0LGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAgICBl
bnRSZWZDaGlsZDJQb3NpdGlvbiA9IGVudFJlZkNoaWxkMi5jb21wYXJlRG9jdW1lbnRQb3NpdGlv
bihlbnRSZWZDaGlsZDEpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb25QUkVDRURJTkcyOSIsMixlbnRSZWZDaGlsZDJQb3NpdGlvbik7Ci0gICAgICAgCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTNkMmE5YjcyMTFkNGRmNjM1YzQ2NWJiNTk2
ZDA1YmE5MTJiYjBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50
cG9zaXRpb24yOS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI5LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2Fk
PSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+
Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4K
LSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlz
IGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgot
PCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0g
IDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZi
ZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVt
PkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5Q
ZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85
ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4g
RGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0
cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQg
TXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1
cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9y
ZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5Pjwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0ZmVhdHVyZTA0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0ZmVhdHVyZTA0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjdhOTVhMWY2MmNlMTQ3NDhmMzQ2MDQyMDRjNzMyOGI3Njk0NGJlYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0Ci1TdGF0dXMJZXJyb3IKLU1lc3Nh
Z2UJTGluZSAxMDE6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjlmNWQyMGY3N2JmYjlkY2EwYTEwZTgwZTFkZjU1ZWJmYjIzYzRkYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDIw
MiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIg
Q29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVy
b3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRp
Y3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlz
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRo
ZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53
My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQot
Ki8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVz
dC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rp
b24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICAgIAotICAg
ICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlh
bGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVk
IG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3Rh
cnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2Fk
ZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNo
YW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4
ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0vKioKLSogCi1DaGVjayBpbXBsZW1lbnRhdGlvbiBvZiBOb2RlLmdldEZlYXR1cmUgb24g
RW50aXR5UmVmZXJlbmNlLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9k
ZTMtZ2V0RmVhdHVyZQotKi8KLWZ1bmN0aW9uIG5vZGVnZXRmZWF0dXJlMDQoKSB7Ci0gICB2YXIg
c3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlZ2V0ZmVh
dHVyZTA0IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgbm9kZTsK
LSAgICAgIHZhciBudWxsVmVyc2lvbiA9IG51bGw7Ci0KLSAgICAgIHZhciBmZWF0dXJlSW1wbDsK
LSAgICAgIHZhciBpc1N1cHBvcnRlZDsKLSAgICAgIHZhciBkb21JbXBsOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
ID0gbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAgICBkb21JbXBsID0gZG9jLmlt
cGxlbWVudGF0aW9uOwotbm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsK
LSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJDb3JlIixudWxsVmVyc2lvbik7
Ci0gICAgICBhc3NlcnRTYW1lKCJjb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJ
bXBsKTsKLWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIixudWxsVmVyc2lvbik7
Ci0gICAgICBhc3NlcnRTYW1lKCJjT3JFVW5zcGVjaWZpZWRWZXJzaW9uIixub2RlLGZlYXR1cmVJ
bXBsKTsKLWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCIrY09yRSIsbnVsbFZlcnNpb24p
OwotICAgICAgYXNzZXJ0U2FtZSgiUGx1c0NvcmVVbnNwZWNpZmllZFZlcnNpb24iLG5vZGUsZmVh
dHVyZUltcGwpOwotZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIm9yZy53M2MuZG9tdHMu
Ym9ndXMuZmVhdHVyZSIsbnVsbFZlcnNpb24pOwotICAgICAgYXNzZXJ0TnVsbCgidW5yZWNvZ25p
emVkRmVhdHVyZSIsZmVhdHVyZUltcGwpOwotICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0
dXJlKCJjT3JFIiwiMi4wIik7Ci0gICAgICBhc3NlcnRTYW1lKCJDb3JlMjAiLG5vZGUsZmVhdHVy
ZUltcGwpOwotZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoImNPckUiLCIzLjAiKTsKLSAg
ICAgIGFzc2VydFNhbWUoIkNvcmUzMCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1pc1N1cHBvcnRlZCA9
IG5vZGUuaXNTdXBwb3J0ZWQoIlhNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwg
PSBub2RlLmdldEZlYXR1cmUoIlhNTCIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNT
dXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJYTUxVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJl
SW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJTVkciLG51bGxW
ZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJTVkciLG51bGxW
ZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgi
U1ZHVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0g
bm9kZS5pc1N1cHBvcnRlZCgiSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwg
PSBub2RlLmdldEZlYXR1cmUoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlz
U3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiSFRNTFVuc3BlY2lmaWVkIixub2RlLGZlYXR1
cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkV2ZW50cyIs
bnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIkV2ZW50
cyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3Nl
cnRTYW1lKCJFdmVudHNVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNT
dXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJMUyIsbnVsbFZlcnNpb24pOwotICAgICAgZmVh
dHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIkxTIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlp
ZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIkxTVW5zcGVjaWZpZWQiLG5vZGUs
ZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiTFMt
QXN5bmMiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJl
KCJMUy1Bc3luYyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkp
IHsKLQlhc3NlcnRTYW1lKCJMU0FzeW5jVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwot
Ci0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiWFBhdGgiLG51bGxWZXJzaW9u
KTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJYUGF0aCIsbnVsbFZlcnNp
b24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJYUGF0
aFVuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5v
ZGUuaXNTdXBwb3J0ZWQoIitIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9
IG5vZGUuZ2V0RmVhdHVyZSgiSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNT
dXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnROb3ROdWxsKCJQbHVzSFRNTFVuc3BlY2lmaWVkIixmZWF0
dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCIrU1ZHIixu
dWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZHIixu
dWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydE5v
dE51bGwoIlBsdXNTVkdVbnNwZWNpZmllZCIsZmVhdHVyZUltcGwpOwotCi0JfQotCQotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWdldGZlYXR1cmUwNCgpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJl
MDQueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1
cmUwNC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODdkODVjNTNjMzgyM2Ji
ODExYjFlNzQ5MzM5YTU1NzNiMjU3MDQ2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdl
dGZlYXR1cmUwNC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sIFsKLTwhRU5USVRZIGVudDEgJ2Zvbyc+Ci08IUVOVElUWSBlbnQyICdmb288YnIvPic+
Ci08IUVMRU1FTlQgaHRtbCAoaGVhZCwgYm9keSk+Ci08IUFUVExJU1QgaHRtbCB4bWxucyBDREFU
QSAjSU1QTElFRD4KLTwhRUxFTUVOVCBoZWFkICh0aXRsZSxzY3JpcHQqKT4KLTwhRUxFTUVOVCBz
Y3JpcHQgKCNQQ0RBVEEpPgotPCFBVFRMSVNUIHNjcmlwdCAKLSAgICAgc3JjIENEQVRBICNJTVBM
SUVECi0gICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKLSAgICAgY2hhcnNldCBDREFUQSAjSU1QTElF
RD4KLTwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Ci08IUVMRU1FTlQgYm9keSAocCk+Ci08IUFU
VExJU1QgYm9keSBvbmxvYWQgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgcCAoI1BDREFUQXxi
cikqPgotPCFFTEVNRU5UIGJyIEVNUFRZPgotXT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJz4KLTxoZWFkPgotPHRpdGxlPnJlcGxhY2VXaG9sZVRleHQgc2FtcGxl
PC90aXRsZT4KLTxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J3NlbGZ4aHRtbC5q
cyc+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSdVVEYtOCcgdHlwZT0ndGV4dC9qYXZhc2NyaXB0
JyBzcmM9J25vZGVnZXRmZWF0dXJlMDQuanMnPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9q
YXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3Jp
cHQ+PC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci08cD5iYXI8L3A+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWM1YzI5Y2RkOTk3YmFlOTFiYzBjNWFiNzk0MDVi
ODAxMjY4MzNjYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTUKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlMaW5lIDEyMTogVHlwZUVycm9yCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxNDY3YTNiYzQxNjIwZDM5
MGVjN2Q0ZDVkOTIyOGI4ODQwYzkwYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMxICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9
IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5p
bmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlv
biBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlz
IHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29t
cGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQg
d2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBh
Z2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAv
LwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhj
ZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigp
OwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRy
dWUpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZl
cmVuY2VzIiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRob2QgZ2V0VGV4dENvbnRlbnQgcmV0dXJucyB0aGUgdGV4
dCBjb250ZW50IG9mIHRoaXMgbm9kZSBhbmQgaXRzIGRlc2NlbmRhbnRzLgotCQotCUludm9rZSB0
aGUgbWV0aG9kIGdldFRleHRDb250ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSB3aXRoIG5ldyBU
ZXh0LCBFbnRpdHlSZWZlcmVuY2VzICAKLQlDREFUQVNlY3Rpb24sIFBJIGFuZCBDb21tZW50IG5v
ZGVzIGFuZCBjaGVjayBpZiB0aGUgdmFsdWUgcmV0dXJuZWQgaXMgYSBzaW5nbGUgCi0JY29uY2F0
ZW5hdGVkIFN0cmluZyB3aXRoIGl0cyBjb250ZW50LiAgCi0KLSogQGF1dGhvciBJQk0KLSogQGF1
dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURP
TS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0
aW9uIG5vZGVnZXR0ZXh0Y29udGVudDE1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWdldHRleHRjb250ZW50MTUiKSAhPSBudWxs
KSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHR4dDsK
LSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsK
LSAgICAgIHZhciBwaTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBlbmRl
ZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy9ET00v
VGVzdCIsImRvbTM6ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0
ICIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwotICAg
ICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgcGkg
PSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAg
ICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRl
ZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVs
ZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBl
bmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQo
cGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAg
ICAgdGV4dENvbnRlbnQgPSBlbGVtLnRleHRDb250ZW50OwotCi0gICAgICBkb2Mubm9ybWFsaXpl
RG9jdW1lbnQoKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50MTUiLCJU
ZXh0IM6yQ0RhdGEiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE1KCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUueGh0
bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTUueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiZDM2Y2JhM2MzZGEwOTBj
YmFkNzc0N2QwZTg5MWM1ZjI0YjY5NDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwg
dmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAg
UFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3Ry
aWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRh
ICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0
YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24x
RmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgot
ICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRt
c3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAg
ICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAg
ICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jvbnlt
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJ
VFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1l
bnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHht
bG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHht
bG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19z
dGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJz
ZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWdldHRleHRjb250ZW50
MTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNiNDE0NGQwNWZmMDhkNzJlOGU5ODRhYTExMzE1NDg2NGI4MTFhNGIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2Ci1TdGF0dXMJZXJy
b3IKLU1lc3NhZ2UJTGluZSAxMjM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LmpzIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDFmN2M4NDE5ZThkMTE1NjQyMDg4NDk1ODg2OGZhYWQ2
MTU1ZDlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAx
LTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZv
cm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBS
ZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3
YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdo
dC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRo
YXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9m
IHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBs
ZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBzZXRJ
bXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUpOwot
Ci0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
ICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1
aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRp
b24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVz
dHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMg
Y29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxv
d3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlU
aGUgbWV0aG9kIGdldFRleHRDb250ZW50IHJldHVybnMgdGhlIHRleHQgY29udGVudCBvZiB0aGlz
IG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJbnZva2UgdGhlIG1ldGhvZCBnZXRUZXh0
Q29udGVudCBvbiBhIG5ldyBEb2N1bWVudEZyYWdtZW50IG5vZGUgd2l0aCBuZXcgVGV4dCwgRW50
aXR5UmVmZXJlbmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29tbWVudCBub2RlcyBhbmQg
Y2hlY2sgaWYgdGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAotCWNvbmNhdGVuYXRlZCBT
dHJpbmcgd2l0aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVp
bCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwt
My1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rl
Z2V0dGV4dGNvbnRlbnQxNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlh
bGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE2IikgIT0gbnVsbCkgcmV0dXJu
OwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBlbGVtOwotICAg
ICAgdmFyIGVsZW1DaGlsZDsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgY29tbWVudDsKLSAg
ICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2
YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9
IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5T
KCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImRvbTM6ZWxlbSIpOwotICAgICAgdHh0ID0g
ZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0ICIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVD
b21tZW50KCJDb21tZW50ICIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgiYmV0YSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9u
KCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24o
IkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwot
ICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0u
YXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5k
Q2hpbGQoZWxlbSk7Ci0gICAgICBkb2Mubm9ybWFsaXplRG9jdW1lbnQoKTsKLSAgICAgIHRleHRD
b250ZW50ID0gZG9jRnJhZy50ZXh0Q29udGVudDsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2Rl
Z2V0dGV4dGNvbnRlbnQxNiIsIlRleHQgzrJDRGF0YSIsdGV4dENvbnRlbnQpOwotICAgICAgIAot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWdldHRleHRjb250ZW50MTYo
KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0dGV4dGNvbnRlbnQxNi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZGZlZmMxNWViNGVmMDFmYjNmZWQxY2JkODU4NjRlNDU1OTFkMWNmOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0
Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFk
Pjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFy
dGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFz
IDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2Eu
Y29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFb
Q0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIg
MiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdp
dGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0
YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5
ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3Rh
LmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9u
Zz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZh
bHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3
IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxz
dHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8
L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwv
cD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzZiZWIzMjdkODBkZWYyYzk3OWViNDkxMWZi
Mzc3NzEwMzMzMjJjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRj
b250ZW50MTcKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCW5vZGVnZXR0ZXh0Y29udGVudDE3OiBh
c3NlcnRFcXVhbHMgZmFpbGVkLCBhY3R1YWwgLCBleHBlY3RlZCDOsi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDI0YmE2MDFhOTFmZTUxNThhOGIxMzI3
YzgzMzIzOGNmYjlhNTg2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0
IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0
dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0g
Ci1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwg
Ci1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzND
w4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
Mi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBH
ZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRl
bnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAg
IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29y
ZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAw
MDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUg
dGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2Vw
dGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRl
ZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBh
bmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVu
dGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsK
LSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAg
IC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24K
LSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAg
ICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1Jl
ZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9
Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRl
ciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBv
ZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4K
LS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21w
bGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0
aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9r
ZSB0aGUgbWV0aG9kIGdldFRleHRDb250ZW50IG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2Rl
IGFuZCBjaGVjayBpZiB0aGUgCi0JdmFsdWUgcmV0dXJuZWQgaXMgdGhlIEVudGl0eVJlZmVyZW5j
ZSdzIGNvbnRlbnQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVnZXR0ZXh0Y29udGVu
dDE3KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWls
ZGVyLCAibm9kZWdldHRleHRjb250ZW50MTciKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRv
YzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0ZXh0Q29u
dGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50
OwotCi0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgdGV4
dENvbnRlbnQgPSBlbnRSZWYudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZWdldHRleHRjb250ZW50MTciLCLOsiIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWdldHRleHRjb250ZW50MTcoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNv
bnRlbnQxNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0
dGV4dGNvbnRlbnQxNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc5YzIy
YzRkMWU1ODRkYTBkYWY5ZTgzNmRjNDVjMWE2MzQzOTRlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWdldHRleHRjb250ZW50MTcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlZ2V0
dGV4dGNvbnRlbnQxNy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9u
bG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhp
cyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50Mjtd
XT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2Rl
PgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0g
IDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNv
ZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlk
PSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9
Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9i
ZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0g
IDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIx
IE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzOTdmYTgzMTBkMzdkZWUwMTBiZTVjNDkxNzkwNjY1MTdlOGIzMWUz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExCi1TdGF0dXMJ
U3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVpbnNlcnRiZWZvcmUxMS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlaW5zZXJ0YmVmb3JlMTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4YThi
OWVjMmMyMDQwZGIxODJkMTFiNmMxZGM4OWRmZDgyNDU0NDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVpbnNlcnRiZWZvcmUxMS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0NSArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMSI7Ci0gICB9Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotCi0KLQotCVVzaW5nIGluc2VydEJlZm9yZSBvbiBhIERvY3VtZW50RnJhZ21lbnQg
bm9kZSBhdHRlbXB0IHRvIGluc2VydCBhIGNoaWxkIG5vZGVzIGJlZm9yZQotCW90aGVyIHBlcm1p
c3NpYmxlIG5vZGVzIGFuZCB2ZXJpZnkgdGhlIGNvbnRlbnRzL25hbWUgb2YgZWFjaCBpbnNlcnRl
ZCBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2Nv
cmUjSUQtOTUyMjgwNzI3Ci0qLwotZnVuY3Rpb24gbm9kZWluc2VydGJlZm9yZTExKCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWlu
c2VydGJlZm9yZTExIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZG9jRnJhZzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIGNvbW1l
bnQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIGVSZWY7Ci0g
ICAgICB2YXIgaW5zZXJ0ZWQ7Ci0gICAgICB2YXIgaW5zZXJ0ZWRWYWw7Ci0gICAgICB2YXIgYXBw
ZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAg
IGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiwiYm9keSIpOwotICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQ
SVRhcmdldCIsIlBJRGF0YSIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJD
b21tZW50Iik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAg
IGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEEiKTsKLSAgICAgIGVSZWYgPSBk
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJh
Zy5hcHBlbmRDaGlsZChwaSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRD
aGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxk
KHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChjZGF0YSk7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAg
IGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUoY29tbWVudCxwaSk7Ci0gICAgICBpbnNl
cnRlZFZhbCA9IGluc2VydGVkLmRhdGE7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWluc2Vy
dGJlZm9yZTExX0NvbW1lbnQiLCJDb21tZW50IixpbnNlcnRlZFZhbCk7Ci0gICAgICAgaW5zZXJ0
ZWQgPSBkb2NGcmFnLmluc2VydEJlZm9yZSh0eHQsY29tbWVudCk7Ci0gICAgICBpbnNlcnRlZFZh
bCA9IGluc2VydGVkLmRhdGE7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWluc2VydGJlZm9y
ZTExX1RleHQiLCJUZXh0IixpbnNlcnRlZFZhbCk7Ci0gICAgICAgaW5zZXJ0ZWQgPSBkb2NGcmFn
Lmluc2VydEJlZm9yZShjZGF0YSx0eHQpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5k
YXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9DREFUQSIsIkNE
QVRBIixpbnNlcnRlZFZhbCk7Ci0gICAgICAgaW5zZXJ0ZWQgPSBkb2NGcmFnLmluc2VydEJlZm9y
ZShlUmVmLGNkYXRhKTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5zZXJ0ZWQubm9kZU5hbWU7Ci0K
LSAgICAgIGFzc2VydEVxdWFscygibm9kZWluc2VydGJlZm9yZTExX0VudDEiLCJhbHBoYSIsaW5z
ZXJ0ZWRWYWwpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAg
bm9kZWluc2VydGJlZm9yZTExKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMWE0YWE2ODM3Mzg1ZTAwMDMzM2Q2YmM1YzQ4MTE4Njc5NDZhZDVk
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLnhodG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNU
WUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRN
TCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkg
Z2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZ
IGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5v
dGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAg
ZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAg
ICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBD
REFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0
IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4K
LTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5v
cmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04
Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ibm9kZWluc2VydGJlZm9yZTExLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxNDJmM2U2MzU0NzUwN2VlNWRh
MmRmMzZlZWQxNWI0Y2MyZmQ1N2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRi
ZWZvcmUxNS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlaW5z
ZXJ0YmVmb3JlMTUKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LmpzIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2YzNzE2ZWExOWQ0YWY3MTdkYjY0YTFiMDYzNWU0NTk1OTA1ZTNlNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTc3ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3Js
ZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFu
ZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBU
aGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5z
ZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlm
aWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAg
ICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1
IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVs
bDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJh
bWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAg
SWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0v
LyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3Rh
dHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGlt
bWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhl
IHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0g
J3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9j
dW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVy
ID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0g
ICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBt
ZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNo
cm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBz
eW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBh
Z2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRo
ZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlm
ICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JQSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9F
UlIgaXMgcmFpc2VkIGlmIHRoZSBub2RlIGlzIHJlYWQtb25seS4KLQkKLQlVc2luZyBpbnNlcnRC
ZWZvcmUgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byBpbnNlcnQgRWxl
bWVudCwgVGV4dCwKLQlDb21tZW50LCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gYW5kIENEQVRBU2Vj
dGlvbiBub2RlcyBiZWZvcmUgYW4gZWxlbWVudCBjaGlsZAotCWFuZCB2ZXJpZnkgaWYgYSBOT19N
T0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBh
dXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1E
T00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtOTUyMjgwNzI3Ci0qLwotZnVuY3Rpb24g
bm9kZWluc2VydGJlZm9yZTE1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0
aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWluc2VydGJlZm9yZTE1IikgIT0gbnVsbCkgcmV0dXJu
OwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVsZW1DaGlsZDsK
LSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50OwotICAg
ICAgdmFyIHBpOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIGluc2VydGVkOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVudFJlZiA9
IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBlbGVtQ2hpbGQgPSBl
bnRSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9u
KCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKGNkYXRhLGVsZW1D
aGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzEiLHN1Y2Nlc3MpOwotCX0K
LXBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwot
ICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBpbnNl
cnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUocGksZWxlbUNoaWxkKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlJfMiIsc3VjY2Vzcyk7Ci0JfQotY29tbWVudCA9IGRvYy5jcmVhdGVD
b21tZW50KCJDb21tZW50Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjb21tZW50LGVs
ZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlw
ZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNz
ZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwot
CX0KLXR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgCi0JewotCQlzdWNj
ZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNl
cnRCZWZvcmUodHh0LGVsZW1DaGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAg
IHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0g
Nyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJS
XzQiLHN1Y2Nlc3MpOwotCX0KLWVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIiwiYm9keSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFs
c2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUo
ZWxlbSxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNz
ID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9
Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl81IixzdWNj
ZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVpbnNl
cnRiZWZvcmUxNSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZmMGQwMGI5Y2ExNjM3MWVmYzAyZjhlNDAxZWI0NWQ4NTdmNDFkYzEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS54aHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURB
VEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0
cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICIm
Izk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICIm
Izk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9u
ICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5v
dGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIg
U1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFU
QSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/
PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRo
aXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv
WE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2
PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRs
ZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2Vs
ZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Im5vZGVpbnNlcnRiZWZvcmUxNS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQg
TWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRl
eGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51
c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwot
PCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1i
ZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9u
IHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVN
UDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVw
YXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50
NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhh
cyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZp
c3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0
cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0g
IDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxp
c3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWMwZTE3NTRmN2E5MmNmZWU4OTQxOTI4YjRlZjZi
MTdiOWE3N2YxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIK
LVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRlMThhMjI3MWU4YWM5ZTg2OWJjMWY5YWY1ZDE3MTE2Mzc4OThiODUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIiOwotICAgfQotCi12YXIg
ZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0v
LyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8g
Y29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVu
dCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBp
cyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAg
ICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5j
dGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0
cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBt
YXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1
cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3Bh
Y2VBd2FyZSIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQlUaGUgbWV0aG9kIHJlbW92ZUNoaWxkIHJlbW92ZXMgdGhlIGNoaWxk
IG5vZGUgaW5kaWNhdGVkIGJ5IG9sZENoaWxkIGZyb20gdGhlIGxpc3QgCi0Jb2YgY2hpbGRyZW4s
IGFuZCByZXR1cm5zIGl0LiAKLQotCVVzaW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IERvY3VtZW50
RnJhZ21lbnQgbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZS4KLSAgICAgICAgQWxzbyBhdHRlbXB0IHRvIHJlbW92ZSB0aGUgZG9jdW1lbnQgZnJhZ21lbnQg
bm9kZSBmcm9tIHRoZSBFbnRpdHlSZWZlcmVuY2UuICBWZXJpZnkgdGhhdCBhIAotICAgICAgICBO
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgKEVudGl0eVJlZmVyZW5jZSBub2RlIGlzIHJlYWQt
b25seSkgb3IgYSBOT1RfRk9VTkRfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlv
biBub2RlcmVtb3ZlY2hpbGQxMigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5p
dGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZW1vdmVjaGlsZDEyIikgIT0gbnVsbCkgcmV0dXJu
OwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBlUmVmOwotICAg
ICAgdmFyIHJlbW92ZWRFUmVmOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIg
cmVtb3ZlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAg
ICAgZVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVSZWYpOwotICAgICAgcmVtb3ZlZENoaWxk
ID0gZG9jRnJhZy5yZW1vdmVDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92ZWRFUmVmID0gZG9jRnJh
Zy5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROdWxsKCJub2RlcmVtb3ZlY2hpbGQxMiIscmVt
b3ZlZEVSZWYpOwotICAgIAotICAgICAgdHJ5IHsKLSAgICAgIHJlbW92ZWRDaGlsZCA9IGVSZWYu
cmVtb3ZlQ2hpbGQoZG9jRnJhZyk7Ci0gICAgICAKLSAgICAgIH0gY2F0Y2ggKGV4KSB7Ci0JCSAg
aWYgKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJykgeyAgICAgIAotICAgICAgIHN3aXRj
aChleC5jb2RlKSB7Ci0gICAgICAgY2FzZSAvKiBOT1RfRk9VTkRfRVJSICovIDggOgotICAgICAg
IGJyZWFrOwotICAgICAgY2FzZSAvKiBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgKi8gNyA6
Ci0gICAgICAgYnJlYWs7Ci0gICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICB0aHJvdyBleDsK
LSAgICAgICAgICB9Ci0gICAgICAgfSBlbHNlIHsgCi0gICAgICAgdGhyb3cgZXg7Ci0gICAgICAg
IH0KLSAgICAgICAgIH0KLSAgICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICBub2RlcmVtb3ZlY2hpbGQxMigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3MzZlZDkyZjAzYmE1NGFlYzgyN2RiNzg0ZjYwNTZkOTIzNDk0
OTRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAg
IGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdl
dCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEyLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NmU1NmE2YzZhMDYzMjAwODY1MTUw
ZmRlODhjODNmOTRmNTJhNGFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxMwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdHh0Tm90TnVsbDogYXNzZXJ0Tm90TnVs
bCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVtb3ZlY2hpbGQxMy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVtb3ZlY2hpbGQxMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM4MGZm
YjRhNjUyZDkwMmRhMmQyZGZmNTE3Njg2N2ZlOTYyZjNkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAot
Ci0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0s
IAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2Vh
cmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVu
aXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNv
cnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0g
ICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAg
QHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdl
dFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9h
ZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAg
cnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1
cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRp
bmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0
byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJh
aXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNl
dFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0g
ICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJv
dyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWls
ZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBw
cmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAo
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9u
RXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUg
Y29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4g
c2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3Vt
ZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdo
aWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4K
LWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoq
Ci0qIAotCVVzaW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0
dGVtcHQgdG8gcmVtb3ZlIHRoZSBmaXJzdCBjaGlsZCAKLQlvZiB0aGlzIG5vZGUgYW5kIHZlcmlm
eSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhv
ciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RS
LzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0q
LwotZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxkMTMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBp
ZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxMyIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBlUmVm
OwotICAgICAgdmFyIHJlbW92ZWQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgZVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFs
cGhhIik7Ci0gICAgICB0eHQgPSBlUmVmLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51
bGwoInR4dE5vdE51bGwiLHR4dCk7Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsK
LSAgICAgICAgICAgIHJlbW92ZWQgPSBlUmVmLnJlbW92ZUNoaWxkKHR4dCk7Ci0gICAgICAgIH0K
LQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRl
ZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZW1vdmVjaGlsZDEzKCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxMzE3YTQ2M2UxOWU5NmQ5YzEyNTQ2
NzlmYjU3NWU3YjlmYzA1NWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDEzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlbW92ZWNoaWxkMTMuanMiLz48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2Vt
PgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50
PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMw
IE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0
aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFu
IGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+
PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1h
OwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5u
ZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVz
PC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAs
MDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
Om5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxz
dHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rvcjwv
Y29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4K
LSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8
Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8
dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBU
ZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hp
bGQxNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyMzViZjRk
ZmRiMDBlMjVlMDgxOGIxNmQwZDBjYWE1ODk1Zjc5NjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZW1vdmVjaGlsZDE0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVyZW1vdmVjaGlsZDE0Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlwaU5vdE51bGw6
IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAzZDVhMTkzM2VlOTc2NWEyOWM1NzViY2I1ZjBmNTlkZDFhZmVlYTEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTIyICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZl
cmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlbW92ZSBpdHMgbGFzdCBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24gCi0JY2hpbGQgbm9kZSBhbmQgdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlvbiBub2RlcmVtb3ZlY2hpbGQxNCgp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVyZW1vdmVjaGlsZDE0IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAg
ICB2YXIgcmVtb3ZlZDsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIHBpOwotICAgICAgdmFy
IGVudE5hbWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgZVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAg
IHBpID0gZVJlZi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoInBpTm90TnVsbCIs
cGkpOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW1v
dmVkID0gZVJlZi5yZW1vdmVDaGlsZChwaSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
IG5vZGVyZW1vdmVjaGlsZDE0KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQueGh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwODRmN2Q3NDVlZmQyN2M0NmVkODU3NWY2NzdkODJmMDg3NjQzNmUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxF
IFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAx
LjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2Ft
bWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVw
c2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJ
T04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0
aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGly
IENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFU
QSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJ
ZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwh
LS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcv
MjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+
PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ibm9kZXJlbW92ZWNoaWxkMTQuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9s
ZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1
MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFs
dGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwMmUwYzJiYThiZjhlY2E2MWE4NTJmOTU2
ZjBjODFkNWJiOGM5MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbGVtTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBm
YWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxNS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxNS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTNiM2Y3Y2M4
ZTA4MTFiYjgwYjNlN2I0Y2E5OTA0OWRkMDk1YzdkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjIgKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotCVVzaW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVt
cHQgdG8gcmVtb3ZlIGFuIEVsZW1lbnQgY2hpbGQgCi0JYW5kIHZlcmlmeSBpZiBhIE5PX01PRElG
SUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24uIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00t
TGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5v
ZGVyZW1vdmVjaGlsZDE1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFs
aXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTUiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciBlUmVmOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIg
ZW50TmFtZTsKLSAgICAgIHZhciByZW1vdmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCJlbnQ0Iik7Ci0gICAgICBlbGVtID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3Nl
cnROb3ROdWxsKCJlbGVtTm90TnVsbCIsZWxlbSk7Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbW92ZWQgPSBlUmVmLnJlbW92ZUNoaWxkKGVsZW0pOwot
ICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2Rl
KSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRo
cm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hpbGQxNSgpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTQ4NjI3YTVjMTFi
ZTI2N2UwZGNhMzRkMDU4Yjg0ZGI5MDUyYzUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxNS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAg
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0
cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0
YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVs
dGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9u
MUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4K
LSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpk
bXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAg
ICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255
bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5U
SVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVt
ZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4
bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4t
LT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4
bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNf
c3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFy
c2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDE1
LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFb
VGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRh
YiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxs
YXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9n
ZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0g
IDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8
L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwg
RGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0
cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8
L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMTgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDNkOWY4NDE4OGRmMWEwMWQ5NGUwM2JjNTI0NzY3NTFiMzI5MTIxNWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDE4LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQxOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEwYjY3MmJjNDhkOWE3YzU2
MDljNjZmNjhmYjljMGMxYTkyMjQ4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDE4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI0ICswLDAgQEAKLQotLyoKLUNvcHly
aWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNo
dXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0
aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4g
QWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2Fs
LzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAg
KiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJp
IGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0g
ICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNp
bmcgcmVwbGFjZUNoaWxkIG9uIGEgRG9jdW1lbnRGcmFnbWVudCBub2RlIGF0dGVtcHQgdG8gcmVw
bGFjZSBhIENEQVRBU2VjdGlvbiBub2RlIHdpdGggCi0JYSBFbnRpdHlSZWZlcmVuY2UgYW5kIHZp
Y2UgdmVyc2EgdmVyaWZ5IHRoZSBkYXRhIG9mIHRoZSByZXBsYWNlZCBub2Rlcy4KLQotKiBAYXV0
aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwot
Ki8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQxOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAg
IGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQxOCIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2
YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkQ0RhdGE7Ci0g
ICAgICB2YXIgcmVwbGFjZWRFcmVmOwotICAgICAgdmFyIGNkYXRhTmFtZTsKLSAgICAgIHZhciBl
cmVmTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJD
REFUQVNlY3Rpb24iKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImFscGhhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlbnRS
ZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY2RhdGEpOwot
ICAgICAgcmVwbGFjZWRDRGF0YSA9IGRvY0ZyYWcucmVwbGFjZUNoaWxkKGVudFJlZixjZGF0YSk7
Ci0gICAgICBjZGF0YU5hbWUgPSByZXBsYWNlZENEYXRhLm5vZGVWYWx1ZTsKLQotICAgICAgYXNz
ZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMThfMSIsIkNEQVRBU2VjdGlvbiIsY2RhdGFOYW1l
KTsKLSAgICAgICByZXBsYWNlZEVyZWYgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChjZGF0YSxlbnRS
ZWYpOwotICAgICAgZXJlZk5hbWUgPSByZXBsYWNlZEVyZWYubm9kZU5hbWU7Ci0KLSAgICAgIGFz
c2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE4XzIiLCJhbHBoYSIsZXJlZk5hbWUpOwotICAg
ICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGls
ZDE4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDE4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQxOC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMWQ3NjdiOWVhZjg0ZTJhY2VkMzFjYTU5Y2ZhMzkxNDM2ZDNjMmUzYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08
IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+
Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+
Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5
OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24x
IFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0g
Im5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwn
Ci0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENE
QVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFU
VExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAot
ICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAg
IDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBj
b21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hl
bWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0
YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwu
anMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
bm9kZXJlcGxhY2VjaGlsZDE4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJv
ZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48
L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1
NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFU
QVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZl
bnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBh
IHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8
L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwv
ZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50
IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUz
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29t
Ij4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgot
ICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhh
OyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9u
Zz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29k
ZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgot
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4YTJkMzYxZTkxMDZkNGQxZDgwZTUxMmJjZGVjNTgwYjNi
MGU3NDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkKLVN0
YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDE5LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQxOS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGI5YTE3ZGY5N2Y0M2QwMzUyZjNiZDhhZDFjNWM5MzQwOGYzNWIxZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE4ICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5IjsKLSAgIH0KLQotdmFy
IGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAg
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQot
Ly8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5v
IGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1l
bnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAg
aXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAg
ICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVu
Y3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAg
dHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwg
bWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmln
dXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9h
ZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAg
ICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlh
bGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVk
IG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3Rh
cnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2Fk
ZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNo
YW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4
ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgRG9jdW1lbnRGcmFnbWVudCBu
b2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhbiBFbGVtZW50IG5vZGUgd2l0aCAKLQlpdHMgRW50aXR5
UmVmZXJlbmNlIGNoaWxkIHZlcmlmeSB0aGUgbm9kZU5hbWUgb2YgdGhlIHJlcGxhY2VkIG5vZGUu
Ci0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03
ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMTkoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNo
aWxkMTkiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFn
OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHJlcGxhY2Vk
OwotICAgICAgdmFyIG5vZGVOYW1lOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9
IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVs
ZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRvbTM6cCIpOwotICAgICAg
ZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlbGVtKTsKLSAgICAgIHJlcGxhY2VkID0gZG9jRnJhZy5y
ZXBsYWNlQ2hpbGQoZW50UmVmLGVsZW0pOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2Rl
TmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMTkiLCJkb20zOnAi
LG5vZGVOYW1lKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
IG5vZGVyZXBsYWNlY2hpbGQxOSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS54aHRtbCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDMyNWIyY2IzYjNiZTcwZWQ3OTRiZTFmMDIwMzBiMzZkMTkzNDcz
ZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1T
VFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZ
IGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZ
IGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElU
WSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5P
VEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBu
b3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAg
IGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdl
dCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYt
OCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQxOS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4
dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9z
Y3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+
TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxz
dXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBE
YWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBS
YXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVy
ZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RB
VEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAg
PGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4K
LSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAg
PGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAg
PHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0i
Xzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2
aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93
d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9j
b25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3Vw
Pjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAw
NTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVy
IFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9h
Y3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjItZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTFkYWYyZmVmMzVlZGIzNzM5
NWY0NDk3M2M4ODE1NTIyNmJiN2I3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMjItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIyCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi5qcyBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZkM2Y0MjNmNzM1ZjNmMWIyNWNhNWU0Y2IzNjA4MjU2MzAzYTc0NWEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDE0NSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29y
bGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVj
aG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBh
bmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4g
VGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vu
c2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2Fy
ZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRp
ZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAg
ICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQy
MiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51
bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZy
YW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAg
IElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwot
Ly8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0
YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBp
bW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRo
ZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9
ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRv
Y3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRl
ciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewot
ICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMg
bWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3lj
aHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkg
c3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBw
YWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0
aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBp
ZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIG5l
dyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYW4gRW50aXR5UmVmZXJl
bmNlIG5vZGUgd2l0aCAKLQlpdHMgRWxlbWVudCBwYXJlbnQsIHdpdGggaXRzZWxmIGFuZCB2aWNl
IHZlcnNhIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24u
Ci0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93
d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03
ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMjIoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNo
aWxkMjIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbnRSZWZN
YWluOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGFwcGVu
ZGVkQ2hpbGQ7Ci0gICAgICB2YXIgcmVwbGFjZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1l
bnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRvbTM6cCIpOwotICAgICAgZW50
UmVmTWFpbiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBlbnRS
ZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBhcHBlbmRlZENo
aWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNlZENoaWxkID0gZW50UmVmTWFpbi5y
ZXBsYWNlQ2hpbGQoZWxlbSxlbnRSZWYpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAg
ICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09
IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
Ul8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIHJlcGxhY2VkQ2hpbGQgPSBlbnRSZWZNYWluLnJlcGxhY2VDaGlsZChlbnRSZWYs
ZWxlbSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0K
LQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWRD
aGlsZCA9IGVudFJlZk1haW4ucmVwbGFjZUNoaWxkKGVudFJlZk1haW4sZW50UmVmKTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19O
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMyIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMjIoKTsKLX0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MjIueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDIyLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjMyNTRlMmNhYmEz
MmJiNDA1M2Q3NDY0OWNjOWZhODMwMWFlZDBmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMjIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0g
ICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1z
dHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJl
dGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRl
bHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZ
IGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlv
bjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+
Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6
ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAg
ICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAg
ICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9u
eW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVO
VElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxl
bWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4g
eG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEu
LS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAg
eG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhj
X3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hh
cnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxk
MjIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQyMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDIzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDE4Yjc3YjM4ZTNiYzFjMzdhYmFmNjZkY2FlYWMwZDk0YWViNDlmOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMwotU3RhdHVzCVN1Y2Nlc3MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMjMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDIzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzMxYWZjOWRjN2U1NDAz
YTg1Y2Y0NzU0ZDg2YmZjNGVkMmU2YTE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMjMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzggKzAsMCBAQAotCi0vKgotQ29w
eXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3Nh
Y2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNv
cnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkp
LiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0
aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhl
IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVn
YWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAg
ICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1
cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsK
LSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
Ci0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChk
b2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
ICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1
aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRp
b24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVz
dHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMg
Y29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxv
d3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlV
c2luZyByZXBsYWNlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0
byByZXBsYWNlIGFuIEVsZW1lbnQsIFRleHQsCi0JQ29tbWVudCwgUHJvY2Vzc2luZ0luc3RydWN0
aW9uIGFuZCBDREFUQVNlY3Rpb24gbm9kZXMgd2l0aCBlYWNoIG90aGVyIGFuZCBpbiBlYWNoIGNh
c2UKLQl2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgot
Ci0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3
LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1
ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIzKCkgewotICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGls
ZDIzIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZW50UmVmOwot
ICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAg
ICB2YXIgcGk7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICB2
YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCIsImRvbTM6cCIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgi
VGV4dCIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50Iik7Ci0g
ICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBU2VjdGlvbiIpOwotICAg
ICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJ0YXJnZXQiLCJkYXRhIik7
Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVs
ZW0uYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hp
bGQoY2RhdGEpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAg
ICAgICAgICByZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQoY2RhdGEsZWxlbSk7Ci0gICAg
ICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9
ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3df
Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVw
bGFjZUNoaWxkKHBpLGNkYXRhKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3Vj
Y2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsK
LQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMiIs
c3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAg
ICAgICByZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQoY29tbWVudCxwaSk7Ci0gICAgICAg
IH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1
bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2Vz
cyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFj
ZUNoaWxkKHR4dCxjb21tZW50KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3Vj
Y2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsK
LQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNCIs
c3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAg
ICAgICByZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQoZWxlbSx0eHQpOwotICAgICAgICB9
Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5k
ZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUl81IixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQyMygpOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy54
aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MjMueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1OGExZDI1MTYzZmQ1YTNm
YmFjN2QxMDE0OTNkNGE1NzFhZWIxN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQyMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQyMy5q
cyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBs
ZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFj
Y291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2Vt
PgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2Vj
dGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1Ro
aXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIg
JnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFz
LCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2Vy
Ci0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8
c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9l
bT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERp
cmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4
YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlz
dC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJv
bmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9z
dXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwg
SXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDMwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0OWY4M2U3NGI5MjY3MzMxYzE3MDNiZDI4ZDE2ZWZjMjFmNDZmYjA3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
MC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MzAuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3MzU4ZjkzNDcyNjNiODI3YThl
ODg4MTNlN2FlMzdjMGI3NjMyZGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzMC5qcworKysgL2Rldi9udWxsCkBAIC0xLDE2OCArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzMCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAw
MDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUg
dGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2Vw
dGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRl
ZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBh
bmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVu
dGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsK
LSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAg
IC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24K
LSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAg
ICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1Jl
ZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9
Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRl
ciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBv
ZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4K
LS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21w
bGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0
aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCi0KLQot
CVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhbiBFbGVtZW50IG5vZGUgYXR0ZW1wdCB0byByZXBsYWNl
IGEgbmV3IEVsZW1lbnQgY2hpbGQgbm9kZSB3aXRoIAotCW5ldyBjaGlsZCBub2RlcyBhbmQgdmlj
ZSB2ZXJzYSBhbmQgaW4gZWFjaCBjYXNlIHZlcmlmeSB0aGUgbmFtZSBvZiB0aGUgcmVwbGFjZWQg
bm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0
cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3Jl
I0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMCgpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBs
YWNlY2hpbGQzMCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHBh
cmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdFbGVtZW50OwotICAgICAg
dmFyIG5ld1RleHQ7Ci0gICAgICB2YXIgbmV3Q29tbWVudDsKLSAgICAgIHZhciBuZXdQSTsKLSAg
ICAgIHZhciBuZXdDZGF0YTsKLSAgICAgIHZhciBuZXdFUmVmOwotICAgICAgdmFyIHJlcGxhY2Vk
OwotICAgICAgdmFyIG5vZGVOYW1lOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50ID0g
ZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1s
Omh0bWwiKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1sOmhlYWQiKTsKLSAgICAgIG5ld0VsZW1lbnQgPSBk
b2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwieGh0bWw6
Ym9keSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChvbGRDaGls
ZCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG5ld0VsZW1lbnQp
OwotICAgICAgbmV3VGV4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdUZXh0KTsKLSAgICAgIG5ld0NvbW1l
bnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IHBhcmVudC5hcHBlbmRDaGlsZChuZXdDb21tZW50KTsKLSAgICAgIG5ld1BJID0gZG9jLmNyZWF0
ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwiZGF0YSIpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdQSSk7Ci0gICAgICBuZXdDZGF0YSA9IGRvYy5j
cmVhdGVDREFUQVNlY3Rpb24oIkNkYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50
LmFwcGVuZENoaWxkKG5ld0NkYXRhKTsKLSAgICAgIG5ld0VSZWYgPSBkb2MuY3JlYXRlRW50aXR5
UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRD
aGlsZChuZXdFUmVmKTsKLSAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdF
bGVtZW50LG9sZENoaWxkKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0K
LSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzEiLCJ4aHRtbDpoZWFkIixu
b2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxk
LG5ld0VsZW1lbnQpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAg
ICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfMiIsInhodG1sOmJvZHkiLG5vZGVO
YW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3VGV4dCxvbGRD
aGlsZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3Nl
cnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8zIiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwot
ICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdUZXh0KTsK
LSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZXJlcGxhY2VjaGlsZDMwXzQiLCIjdGV4dCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxh
Y2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDb21tZW50LG9sZENoaWxkKTsKLSAgICAgIG5v
ZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJl
cGxhY2VjaGlsZDMwXzUiLCJ4aHRtbDpoZWFkIixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQg
PSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5ld0NvbW1lbnQpOwotICAgICAgbm9kZU5h
bWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFj
ZWNoaWxkMzBfNiIsIiNjb21tZW50Iixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJl
bnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5ld1BJKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFj
ZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzci
LCJ0YXJnZXQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hp
bGQob2xkQ2hpbGQsbmV3Q2RhdGEpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFt
ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfOCIsIiNjZGF0YS1z
ZWN0aW9uIixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxk
KG9sZENoaWxkLG5ld0VSZWYpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsK
LQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfOSIsImRlbHRhIixub2Rl
TmFtZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rl
cmVwbGFjZWNoaWxkMzAoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjZGI1Y2JiMTMzZmFhZjJlYjRmMTA0M2QyMWZjNDM1MDhiN2RjN2UzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAueGh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUg
UElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1t
YSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBz
aWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIg
Q0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRB
ICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElk
YXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEt
LSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48
dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzAuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9s
ZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1
MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFs
dGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMzZjkyOTMzNTgyYTcwNTQyNjE1ZDEy
NTBhNDkxMGE3NDkzZDBhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDMzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzMwotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlNzRiZTQ0ZDRiMGE3NzFjYjc5MjA0MzZjN2EzYzJkOGE2MjE2NGI2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMjAgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBkZWZhdWx0
IEF0dHIgbm9kZSB0byByZXBsYWNlIGl0cyBUZXh0IENoaWxkIHdpdGggYSAKLQluZXcgRW50aXR5
UmVmZXJlbmNlIE5vZGUgYW5kIHZlcmlmeSB0aGUgdmFsdWUgb2YgdGhlIHJlcGxhY2VkIGNoaWxk
LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQt
Nzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDMzKCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2Vj
aGlsZDMzIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgY2hpbGRM
aXN0OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENo
aWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFy
IG5vZGVWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBuZXdDaGlsZCA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7
Ci0gICAgICBjaGlsZExpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKTsKLSAgICAg
IGVsZW0gPSBjaGlsZExpc3QuaXRlbSgzKTsKLSAgICAgIHBhcmVudCA9IGVsZW0uZ2V0QXR0cmli
dXRlTm9kZSgiZGlyIik7Ci0gICAgICBvbGRDaGlsZCA9IHBhcmVudC5sYXN0Q2hpbGQ7Ci0KLSAg
ICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0g
ICAgICBub2RlVmFsdWUgPSByZXBsYWNlZC5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZXJlcGxhY2VjaGlsZDMzIiwicnRsIixub2RlVmFsdWUpOwotICAgICAgIAotfQotCi0K
LQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDMzKCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDMzLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzMy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDc5OTBjMTU4
MDY1NTVlZGVjZDE1ZjMyMTAxYThjZmEyNDYzYTY3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDMzLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRt
bAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRt
bDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElU
WSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElU
WSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90
YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZp
bGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHht
bG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAot
ICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAg
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBh
Y3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
PkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBz
cGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJl
ciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAg
ICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
Ci0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0
IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2Vj
aGlsZDMzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJs
b2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEg
Q0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFb
Q0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0
byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxz
dXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVN
UDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJz
b25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1
NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDov
L3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGlj
LiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQzNWVlNGQ1ODZjZjAwOTg2YzkwMWVlZDRmMTRjOTQ3M2JjNzNlYmMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQKLVN0YXR1cwlTdWNjZXNz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM0LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzNC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY0YTM1YTAxZWE0
ZTNlOGZiYTljMDkzMjFhMmY4MDQ4ODJlNWJlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDM0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLQotLyoK
LUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShN
YXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJz
aXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAK
LXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVt
L0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoq
Ci0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1
cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkko
KSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJv
cihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21w
bGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRV
cFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQg
aGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2gg
YWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSog
Ci0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3
IEVudGl0eVJlZmVyZW5jZSBDaGlsZCB3aXRoIGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5
IHRoZSB2YWx1ZSBvZiB0aGUgbmV3IGNoaWxkLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3Ig
TmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2
ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJl
cGxhY2VjaGlsZDM0KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDM0IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAg
dmFyIG5ld0NoaWxkOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENo
aWxkOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygi
aHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAg
IG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgbmV3Q2hp
bGQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIHJlcGxhY2VkID0gcGFyZW50
LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0gICAgICBub2RlVmFsdWUgPSBwYXJl
bnQudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDM0IiwiVGV4
dCIsbm9kZVZhbHVlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIG5vZGVyZXBsYWNlY2hpbGQzNCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC54aHRtbCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwNjliYjAzODBkMTVkY2UzNWFjYTg1MGE1ODM2MmI0ZDFi
NmMyYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNC5qcyIvPjxzY3JpcHQgdHlwZT0n
dGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9
PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJv
bmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0g
IDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZl
LiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRo
YSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJl
ZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4K
LSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29t
Ij4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4K
LSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4K
LSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBp
ZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcg
SXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6
Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55
IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8
c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4
PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTFjOTg4ZjY0ZmM5ODMy
MzU4NzI4YzEwMzc1YTcyOTZhMDc3NmUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1U
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDM1Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS5qcyBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDFiYWU4NjdhNWVmMmJiN2RjYTkxZWI3MjdmMmRjNTVjNjA4MTE5
YjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS5qcworKysgL2Rl
di9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQg
V29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2Yg
VGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGlj
cyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZl
ZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExp
Y2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1b
MV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0
d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRl
bnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QK
LSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzNSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAw
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkg
ewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRo
aXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBh
c3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZl
cnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRo
ZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBv
ZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAg
ICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBh
IG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBFbnRpdHlSZWZlcm5lY2UgQ2hpbGQgd2l0
aCBhIAotCW5ldyBBdHRyIE5vZGUgYW5kIHZlcmlmeSBpZiBhIEhJRVJBUkNIWV9SRVFVRVNUX0VS
UiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzUoKSB7
Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJu
b2RlcmVwbGFjZWNoaWxkMzUiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAg
IHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0g
ICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIg
cmVwbGFjZWQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgcGFyZW50ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9y
Zy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBh
cmVudC5hcHBlbmRDaGlsZChvbGRDaGlsZCk7Ci0gICAgICBuZXdDaGlsZCA9IGRvYy5jcmVhdGVB
dHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxh
bmciKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAg
ICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSAzKTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19ISUVSQVJDSFlfUkVRVUVTVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM1KCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1Lnho
dG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU2NzIxY2Q5NGYxNWUyNmNm
ZTVhY2Y4MzU0MjNmZmQ2ZDY5ODhhNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM1LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVy
c2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0
LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICIm
Izk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAi
JiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmls
ZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAg
PCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3Rj
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAg
ICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkg
ZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQg
ZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5z
IENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgot
PGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5z
OnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFm
Zi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM1Lmpz
Ii8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxl
dGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNj
b3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+
Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0
aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhp
cyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAm
dGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMs
ICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIK
LSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxz
dXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2Vt
PgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGly
ZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0
LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9u
Zz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1
cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MzYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDkxOTllMDE2MTE5YmNiOTA0MTI0OTNjNzJmMTBlYWYxODczYzQ3NjEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2
LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
Ni5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVhMjI1YmVlZjJmYTM4ZWVjOTVl
MDA4ZTEyYjY3OTU3NmMwYTRhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDM2LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLQotLyoKLUNvcHlyaWdo
dCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNl
dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVt
IAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxs
IAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFcz
Q8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIw
MDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAg
R2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlk
ZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAg
ICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDM2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAw
MDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxs
ZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0
ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0
aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVk
LiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFu
ZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50
ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewot
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAg
Ly8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgot
ICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAg
ICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0K
LSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVy
LCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9m
IAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgot
Ly8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBs
ZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRo
ZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcg
cmVwbGFjZUNoaWxkIG9uIGEgbmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IEVudGl0eVJl
ZmVybmVjZSBub2RlIHdpdGggYSAKLQluZXcgVGV4dCBOb2RlIGFuZCB2ZXJpZnkgaWYgYSBOT1Rf
Rk9VTkRfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVs
aW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29y
ZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hp
bGQzNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVp
bGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdD
aGlsZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgcGFyZW50ID0g
ZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3Bh
Y2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCJkZWx0YSIpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQi
KTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAg
cmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAg
ICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0g
J3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA4KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19O
T1RfRk9VTkRfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhYTg4MGIwNzJhMzU3ODQwMWZiMWJlZWZkN2Ey
NGE2YWMxODgwYzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi54
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/
Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAg
IDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAg
IDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0g
ICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBw
Ci0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1Q
TElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAy
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4
bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFu
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+
PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1Q
TElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVh
ZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNi5qcyIvPjxzY3JpcHQg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVz
dCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0g
IDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2Nv
ZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9y
dGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25n
Pk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVu
dGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRq
YWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0
cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0g
OTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHpl
cm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBC
b3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09
Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9u
Zz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2Rl
PgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8
ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFz
IDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MzctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmMxYWE1YmY4
ODlkMjU2NmFhMzUzYjA5YzQ0MWFhNzdhMGJmNmEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDM3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19XUk9O
R19ET0NVTUVOVF9FUlI6IGFzc2VydFRydWUgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LmpzIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNGZkMDI2NDQxM2RiNzY2YmI0YWZmMjA2MzRhOTg3YzM5MjE3
NDQ4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDM3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVy
ID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rp
bmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8K
LS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9u
b3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0
aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9u
IGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkg
b2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRl
c3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBi
dWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9
IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICAgIAotICAgICAgdmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYzIpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlz
LmRvYzI7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jMlJlZiwgImRv
YzIiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMikg
ewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAg
IH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4
KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
Ci0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0v
LyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwot
Ly8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVk
LAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0v
LyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAyKSB7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBs
YWNlQ2hpbGQgb24gYSBuZXcgQXR0ciBub2RlLCByZXBsYWNlIGl0cyBuZXcgVGV4dCBub2RlIHdp
dGggYSAKLQluZXcgRW50aXR5UmVmZXJlbmNlIE5vZGUgY3JlYXRlZCBieSBhbm90aGVyIGRvY3Vt
ZW50IGFuZCB2ZXJpZnkgaWYgYSAKLQlXUk9OR19ET0NVTUVOVF9FUlIgaXMgcmFpc2VkLgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3
MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDM3KCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDM3
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jMjsKLSAgICAg
IHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hpbGQ7Ci0g
ICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwotICAgICAgdmFyIGFwcGVu
ZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgCi0gICAgICB2YXIgZG9jMlJlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jMikgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jMlJlZiA9IHRoaXMuZG9jMjsK
LSAgICAgIH0KLSAgICAgIGRvYzIgPSBsb2FkKGRvYzJSZWYsICJkb2MyIiwgImhjX3N0YWZmIik7
Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3Jn
L1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5j
cmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MyLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5k
Q2hpbGQob2xkQ2hpbGQpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7
Ci0gICAgICAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xk
Q2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVv
ZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDQpOwotCQl9Ci0JCWFzc2Vy
dFRydWUoInRocm93X1dST05HX0RPQ1VNRU5UX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzcoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM3LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWRkYmQyMzMx
OTk3ZTMzMzg1ZmFhMGZmMjczMjk0OWJlZmJhZjY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1s
Ci0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1s
MS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZ
IGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZ
IGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5U
SVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3Rh
dGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmls
ZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1s
bnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0g
ICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFj
cm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNw
YW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAg
ICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIK
LSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNo
aWxkMzcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBD
REFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtD
REFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRv
IGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7
IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1Q
MDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNv
bm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8v
d3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDEwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQ3NjA5MzRmZWM0ZDk0Nzg2YWUxYmY1OGY1ZDQ1YTU5YjFhOTJjNTYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwCi1TdGF0dXMJ
U3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVzZXR0ZXh0Y29udGVudDEwLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVzZXR0ZXh0Y29udGVudDEwLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
NTcxYWU3NzM4YTBiMjgzYmM5MmM4N2FmZDNhYzUxMzYyOWIzMTU2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMSAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEwIjsKLSAgIH0KLQot
dmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8v
ICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9y
ZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJl
IG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9j
dW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAg
ICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0v
LyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwot
ZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwot
ICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRl
ciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29u
ZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFt
ZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgi
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlUaGUgbWV0aG9kIHNldFRleHRDb250ZW50
IGhhcyBubyBlZmZlY3Qgd2hlbiB0aGUgbm9kZSBpcyBkZWZpbmVkIHRvIGJlIG51bGwuCi0JCi0J
VXNpbmcgc2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRWxlbWVudCBub2RlLCBhdHRlbXB0IHRvIHNl
dCBpdHMgY29udGVudCB0byBFTEVNRU5ULgotCVJldHJlaXZlIHRoZSB0ZXh0Q29udGVudCBhbmQg
dmVyaWZ5IGlmIGl0IGlzIHdhcyBzZXQgdG8gRUxFTUVOVC4KLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVu
Y3Rpb24gbm9kZXNldHRleHRjb250ZW50MTAoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2Rlc2V0dGV4dGNvbnRlbnQxMCIpICE9IG51
bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgdHh0
OwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRh
OwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVu
ZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnL0RP
TS9UZXN0IiwiZG9tMzplbGVtIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRl
eHQgIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0g
ICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBw
aSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oIlBJVCIsIlBJRGF0YSAiKTsKLSAg
ICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RhdGEiKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
ZWxlbS5hcHBlbmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFw
cGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGls
ZChwaSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjZGF0YSk7Ci0g
ICAgICBlbGVtLnRleHRDb250ZW50ID0gIkVMRU1FTlQiOwotCi0gICAgICB0ZXh0Q29udGVudCA9
IGVsZW0udGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXNldHRleHRjb250
ZW50MTAiLCJFTEVNRU5UIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dGV4dGNvbnRlbnQxMCgpOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEw
LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29u
dGVudDEwLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWRlNzYwZjBmMGEy
Yjc1OGU2ZjJlZTgwZTMwYzVjOWY0YTU3NDVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
c2V0dGV4dGNvbnRlbnQxMC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29u
dGVudDEwLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJs
b2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEg
Q0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFb
Q0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0
byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxz
dXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVN
UDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJz
b25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1
NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDov
L3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGlj
LiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiYmMxNDcwODg2YmYwNGU0YjA5NTI2N2Y2NTM0NWUwNGIzZWEzMzZjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMQotU3RhdHVz
CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDQ0MzFmNzkyMzFmMDBiMjRjNTQ4MDhhOTY4YzM5MzllNjMxZTJlYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMSI7Ci0gICB9Ci0K
LXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0v
LyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZv
cmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFy
ZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRv
Y3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAg
ICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQot
Ly8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8K
LWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsK
LSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxk
ZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNv
bmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
c0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAK
LSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaElu
aXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNh
bGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2Fk
IHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMg
bG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBp
cyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBi
ZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9
Ci19Ci0KLQotLyoqCi0qIAotCi0JCi0JVXNpbmcgc2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRG9j
dW1lbnRGcmFnbWVudCBub2RlIEVsZW1lbnQgY2hpbGQsIGF0dGVtcHQgdG8gc2V0IGl0cyBjb250
ZW50IHRvIAotCURPQ1VNRU5URlJBR01FTlQuICBSZXRyZWl2ZSB0aGUgdGV4dENvbnRlbnQgYW5k
IHZlcmlmeSBpZiBpdCBpcyB3YXMgc2V0IHRvIERPQ1VNRU5URlJBR01FTlQKLQotKiBAYXV0aG9y
IElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50
Ci0qLwotZnVuY3Rpb24gbm9kZXNldHRleHRjb250ZW50MTEoKSB7Ci0gICB2YXIgc3VjY2VzczsK
LSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2Rlc2V0dGV4dGNvbnRlbnQx
MSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0g
ICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0OwotICAg
ICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAg
ICAgdmFyIHBpOwotICAgICAgdmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVuZGVkQ2hp
bGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0g
ZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhodG1s
OnAiKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNv
bW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRv
Yy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBwaSA9IGRvYy5jcmVhdGVQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24oIlBJVCIsIlBJRGF0YSAiKTsKLSAgICAgIGNkYXRhID0gZG9j
LmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVt
LmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGls
ZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJl
Zik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChwaSk7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjZGF0YSk7Ci0gICAgICBhcHBlbmRlZENo
aWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlbGVtKTsKLSAgICAgIGVsZW0udGV4dENvbnRlbnQg
PSAiRE9DVU1FTlRGUkFHTUVOVCI7Ci0KLSAgICAgIGVsZW1DaGlsZCA9IGRvY0ZyYWcubGFzdENo
aWxkOwotCi0gICAgICB0ZXh0Q29udGVudCA9IGVsZW1DaGlsZC50ZXh0Q29udGVudDsKLQotICAg
ICAgYXNzZXJ0RXF1YWxzKCJub2RlZ2V0dGV4dGNvbnRlbnQxMSIsIkRPQ1VNRU5URlJBR01FTlQi
LHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIG5vZGVzZXR0ZXh0Y29udGVudDExKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyY2JkMDRhYzkxZmQ5OGY0MDIxMzk3NDMxOTg1
ZGRlMWI4MTNmZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEx
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXNldHRleHRjb250ZW50MTEuanMiLz48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2Vt
PgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50
PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMw
IE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0
aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFu
IGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+
PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1h
OwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5u
ZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVz
PC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAs
MDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
Om5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxz
dHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rvcjwv
Y29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4K
LSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8
Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8
dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBU
ZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4
dGNvbnRlbnQxMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJh
MGZiZjQyYjJlOTY3NTA4M2YyMTdjMTVmYWQ3ODJkZDdmZGQ0NGIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVu
dDEyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29u
dGVudDEyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmMzNmZlNmIxMWVjYmU4
MWM1NjM2ZGFhZWE4MGI0NTliNzBhODdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBu
dWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAg
ICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJv
cihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21w
bGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRV
cFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQg
aGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2gg
YWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSog
Ci0KLQkKLQlVc2luZyBzZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZSwgYXR0ZW1wdCB0byBzZXQgaXRzIHZhbHVlLgotCVNpbmNlIEVudGl0eVJlZmVyZW5jZSBub2Rl
cyBhcmUgUmVhZE9ubHksIGNoZWNrIGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSICAK
LQlpcyByYWlzZWQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0ZXh0Y29udGVu
dDEyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWls
ZGVyLCAibm9kZXNldHRleHRjb250ZW50MTIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRv
YzsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciB0ZXh0Q29u
dGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50
OwotCi0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgCi0J
ewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBlbnRSZWYudGV4dENv
bnRlbnQgPSAiTkEiOwotCi0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgibm9kZXNldHRleHRjb250ZW50MTIiLHN1Y2Nlc3MpOwotCX0KLQotfQot
Ci0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXNldHRleHRjb250ZW50MTIoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjRiZjk2ODdhMGViNGQ4NzM5NDI3MzM1NWYwNzM0M2QxZjFiYzkzNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwh
RE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VO
IgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4K
LSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4K
LSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7
Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEg
UFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAi
bm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcK
LSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0g
ICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAg
PCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAg
PCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNv
bW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt
YS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3Rh
ZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5q
cyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJu
b2Rlc2V0dGV4dGNvbnRlbnQxMi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHVzZXJkYXRhMDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNjhkN2FmMmZmOTgzZTE3MzFlMDZkYWRiNTNmNDgwMmZkZGUy
ZjZlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgKLVN0YXR1
cwllcnJvcgotTWVzc2FnZQlMaW5lIDExMzogVHlwZUVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDguanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDguanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliNmY1ODYzYmY0Njc4YWU1MGFlOTVkODg2ZDY2ZTBjOGUz
NTRkZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJk
YXRhMDgiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIg
PSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGlu
ZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwot
Ly8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25v
dXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRo
ZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24g
aXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBv
ZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0
dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVz
dCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1
aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0g
MDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRo
aXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAg
ICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAg
IHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgp
IHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAg
c2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2gg
YXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2
ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0
aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkg
b2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0g
ICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZva2Ugc2V0VXNlckRhdGEgb24g
YSBDREFUQVNlY3Rpb24gYW5kIEVudGl0eVJlZmVyZW5jZSBub2RlIHRvIHNldCB0aGVpciAKLQlV
c2VyRGF0YSB0byB0aGlzIERvY3VtZW50IGFuZCBEb2N1bWVudEVsZW1lbnQgbm9kZS4gIFZlcmlm
eSBpZiB0aGUgVXNlckRhdGEgCi0Jb2JqZWN0IHRoYXQgd2FzIHNldCBmb3IgYm90aCBub2RlcyBp
cyBkaWZmZXJlbnQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNOb2RlMy1zZXRVc2VyRGF0YQotKi8KLWZ1bmN0aW9uIG5vZGVzZXR1c2VyZGF0YTA4
KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVy
LCAibm9kZXNldHVzZXJkYXRhMDgiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAg
ICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjRGF0YTsKLSAg
ICAgIHZhciBlbGVtTGlzdDsKLSAgICAgIHZhciBlbGVtTmFtZTsKLSAgICAgIHZhciB1c2VyRGF0
YTsKLSAgICAgIHZhciByZXR1cm5lZDE7Ci0gICAgICB2YXIgcmV0dXJuZWQyOwotICAgICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgICB2YXIgcmV0VXNlckRhdGE7Ci0gICAgICB2YXIgbnVsbEhhbmRsZXIg
PSBudWxsOwotCi0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAgIGVudFJlZiA9
IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBjRGF0YSA9IGRvYy5j
cmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBU2VjdGlvbiIpOwotICAgICAgaWYgKG51bGwgPT0gbnVs
bEhhbmRsZXIpIHsKLSAgICAgICAgIGVudFJlZi5zZXRVc2VyRGF0YSgiS2V5MSIsIGRvYywgbnVs
bCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIGVudFJlZi5zZXRVc2VyRGF0YSgiS2V5MSIs
IGRvYywgbnVsbEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAgICBpZiAobnVsbCA9PSBu
dWxsSGFuZGxlcikgewotICAgICAgICAgY0RhdGEuc2V0VXNlckRhdGEoIktleTIiLCBkb2NFbGVt
LCBudWxsKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgY0RhdGEuc2V0VXNlckRhdGEoIktl
eTIiLCBkb2NFbGVtLCBudWxsSGFuZGxlci5oYW5kbGUpOwotICAgICAgfQotICAgICAgIHJldHVy
bmVkMSA9IGVudFJlZi5nZXRVc2VyRGF0YSgiS2V5MSIpOwotICAgICAgcmV0dXJuZWQyID0gY0Rh
dGEuZ2V0VXNlckRhdGEoIktleTIiKTsKLSAgICAgIHN1Y2Nlc3MgPSByZXR1cm5lZDEuaXNFcXVh
bE5vZGUocmV0dXJuZWQyKTsKLSAgICAgIGFzc2VydEZhbHNlKCJub2Rlc2V0dXNlcmRhdGEwOCIs
c3VjY2Vzcyk7Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR1
c2VyZGF0YTA4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHVzZXJkYXRhMDgueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRmNDY0MDY5NmU2ZjkyNDNhNjA4MWY3OTIyMTc4ZGMxZWI2YWFmY2EuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LnhodG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+
Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0
Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1
OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3
OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYj
OTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRp
b24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNU
RU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdy
dGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5t
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElF
RAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4K
LSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4K
LSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBp
cyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxT
Y2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhj
X3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0
bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ibm9kZXNldHVzZXJkYXRhMDguanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjVhMzgwOWQ3OTAxZmEwNDQ2Yzc3Nzdi
NGVhYWNiZDRmNGVlMTFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xl
dGV4dDA2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBs
YWNld2hvbGV0ZXh0MDYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDE4ZjI3NjEyNDM1MTRhYmExNmZiZjQzMmZjZWM4
YWZkMzdjZDAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKp
IDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIElu
c3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9y
IEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmln
aHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4g
U29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29w
eXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBV
UkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZp
ZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1
cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4
dHJlcGxhY2V3aG9sZXRleHQwNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7
Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVz
dCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlv
bnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4g
IE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQg
dGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVy
aW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAg
IHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8v
ICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAg
ICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAg
c2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAg
ICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0
cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVGhlIG1ldGhvZCByZXBsYWNlV2hvbGVUZXh0IHN1YnN0aXR1dGVzIHRoZSBhIHNwZWNp
ZmllZCB0ZXh0IGZvciB0aGUgdGV4dCBvZiAKLQl0aGUgY3VycmVudCBub2RlIGFuZCBhbGwgbG9n
aWNhbGx5LWFkamFjZW50IHRleHQgbm9kZXMuICBUaGlzIG1ldGhvZCByYWlzZXMKLQlhIE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUiBpZiBvbmUgb2YgdGhlIFRleHQgbm9kZXMgYmVpbmcgcmVw
bGFjZWQgaXMgcmVhZG9ubHkuCi0JCi0JSW52b2tlIHJlcGxhY2VXaG9sZVRleHQgb24gYW4gZXhp
c3RpbmcgdGV4dCBub2RlIHdpdGggbmV3bHkgY3JlYXRlZCB0ZXh0IGFuZCBFbnRpdHlyZWZlcmVu
Y2UKLQlub2RlcyAod2hvc2UgcmVwbGFjZW1lbnQgdGV4dCBpcyBhIGNoYXJhY3RlciBlbnRpdHkg
cmVmZXJlbmNlKSBhcHBlbmRlZCBhcyBjaGlsZHJlbiBvZiBpdHMgcGFyZW50IGVsZW1lbnQgbm9k
ZS4gIAotCVdoZXJlIHRoZSBub2RlcyB0byBiZSByZW1vdmVkIGFyZSByZWFkLW9ubHkgZGVzY2Vu
ZGFudHMgb2YgYW4gRW50aXR5UmVmZXJlbmNlLCB0aGUgRW50aXR5UmVmZXJlbmNlIAotICAgICAg
ICBtdXN0IGJlIHJlbW92ZWQgaW5zdGVhZCBvZiB0aGUgcmVhZC1vbmx5IG5vZGVzLiBPbmx5IGlm
IGFueSBFbnRpdHlSZWZlcmVuY2UgdG8gYmUgcmVtb3ZlZCBoYXMgCi0gICAgICAgIGRlc2NlbmRh
bnRzIHRoYXQgYXJlIG5vdCBFbnRpdHlSZWZlcmVuY2UsIFRleHQsIG9yIENEQVRBU2VjdGlvbiBu
b2RlcywgdGhlIHJlcGxhY2VXaG9sZVRleHQgCi0gICAgICAgIG1ldGhvZCBtdXN0IGZhaWwsIHJh
aXNpbmcgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIuIFZlcmlmeSB0aGF0IHRoZSBtZXRo
b2QgZG9lcyBub3QgcmFpc2UKLSAgICAgICAgYW4gZXhjZXB0aW9uIGFuZCB2ZXJpZnkgdGhlIGNv
bnRlbnQgb2YgdGhlIHJldHVybmVkIHRleHQgbm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0
aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9N
LUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI1RleHQzLXJlcGxhY2VXaG9sZVRleHQKLSovCi1m
dW5jdGlvbiB0ZXh0cmVwbGFjZXdob2xldGV4dDA2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAidGV4dHJlcGxhY2V3aG9sZXRleHQwNiIp
ICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGl0ZW1MaXN0OwotICAg
ICAgdmFyIGVsZW1lbnRTdHJvbmc7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgZXJl
Zk5vZGU7Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7
Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgIGl0ZW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJzdHJvbmciKTsKLSAgICAgIGVsZW1lbnRTdHJvbmcgPSBpdGVtTGlzdC5pdGVtKDApOwotICAg
ICAgdGV4dE5vZGUgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIk5ldyBUZXh0Iik7Ci0gICAgICBlcmVm
Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBlbGVtZW50U3Ryb25nLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBlbGVtZW50U3Ryb25nLmFwcGVuZENoaWxkKGVyZWZOb2RlKTsKLSAgICAgIHRl
eHROb2RlID0gZWxlbWVudFN0cm9uZy5maXJzdENoaWxkOwotCi0gICAgICByZXBsYWNlZFRleHQg
PSB0ZXh0Tm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJOZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAg
IG5vZGVWYWx1ZSA9IHRleHROb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJ0
ZXh0cmVwbGFjZXdob2xldGV4dDA2IiwiTmV3IFRleHQgYW5kIENkYXRhIixub2RlVmFsdWUpOwot
ICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgdGV4dHJlcGxhY2V3
aG9sZXRleHQwNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi54aHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzk3MGI2MGIxMDkwOGEwYzc5ZmQ1N2M4MTM5YmQ5MThjMzcxZWMy
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InRleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hv
bGV0ZXh0MDctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDc1
ZWNiZDA4ZTY4NmY2OWZhZmU0YTYzN2FjOTY1NjIwYTJmNDljLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcKLVN0YXR1cwlTdWNjZXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9s
ZXRleHQwNy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFj
ZXdob2xldGV4dDA3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTY0ZDMyZGQz
MTMyOWQ2N2E5OTFhNzkxNDIxMDBmMDAxZjNlYjA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90
ZXh0cmVwbGFjZXdob2xldGV4dDA3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM5ICswLDAgQEAK
LQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVt
LCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNl
YXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBV
bml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25z
b3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQot
ICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICog
IEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJn
ZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNyI7Ci0gICB9Ci0KLXZhciBk
b2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8v
ICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBj
b25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50
IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlz
IHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAg
ICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0
aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRy
eSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1h
eSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3Vy
ZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFj
ZUF3YXJlIiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotQXBwZW5kIGFuIGVudGl0eSByZWZlcmVuY2UgYW5kIGEgdGV4dCBub2Rl
IGFmdGVyIHRvIHRoZSBjb250ZW50IG9mIHRoZQotZmlyc3Qgc3Ryb25nIGVsZW1lbnQuICBUaGVu
IGNhbGwgcmVwbGFjZVdob2xlVGV4dCBvbiBpbml0aWFsIGNvbnRlbnQKLW9mIHRoYXQgZWxlbWVu
dC4gIFNpbmNlIHRoZSBlbnRpdHkgcmVmZXJlbmNlIGRvZXMgbm90IGNvbnRhaW4gYW55IAotbG9n
aWNhbGx5LWFkamFjZW50IHRleHQgY29udGVudCwgb25seSB0aGUgaW5pdGlhbCB0ZXh0IGVsZW1l
bnQgc2hvdWxkCi1iZSByZXBsYWNlZC4gCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWls
IERlbGltYQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI1RleHQzLXJlcGxhY2VX
aG9sZVRleHQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5j
Z2k/aWQ9NDI1Ci0qLwotZnVuY3Rpb24gdGV4dHJlcGxhY2V3aG9sZXRleHQwNygpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBs
YWNld2hvbGV0ZXh0MDciKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZh
ciBpdGVtTGlzdDsKLSAgICAgIHZhciBlbGVtZW50TmFtZTsKLSAgICAgIHZhciB0ZXh0Tm9kZTsK
LSAgICAgIHZhciBlcmVmTm9kZTsKLSAgICAgIHZhciByZXBsYWNlZFRleHQ7Ci0gICAgICB2YXIg
YXBwZW5kZWRDaGlsZDsKLSAgICAgIHZhciBub2RlOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAg
ICAgIHZhciBub2RlVHlwZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3Ry
b25nIik7Ci0gICAgICBlbGVtZW50TmFtZSA9IGl0ZW1MaXN0Lml0ZW0oMCk7Ci0gICAgICBlcmVm
Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIHRleHROb2Rl
ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW1lbnROYW1lLmFwcGVuZENoaWxkKGVyZWZOb2RlKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtZW50TmFtZS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICB0ZXh0Tm9kZSA9IGVs
ZW1lbnROYW1lLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIHJlcGxhY2VkVGV4dCA9IHRleHROb2RlLnJl
cGxhY2VXaG9sZVRleHQoIk5ldyBUZXh0IGFuZCBDZGF0YSIpOwotICAgICAgdGV4dE5vZGUgPSBl
bGVtZW50TmFtZS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnRTYW1lKCJyZXR2YWxfc2FtZSIs
dGV4dE5vZGUscmVwbGFjZWRUZXh0KTsKLW5vZGVWYWx1ZSA9IHRleHROb2RlLm5vZGVWYWx1ZTsK
LQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlVmFsdWVTYW1lIiwiTmV3IFRleHQgYW5kIENkYXRh
Iixub2RlVmFsdWUpOwotICAgICAgIG5vZGUgPSB0ZXh0Tm9kZS5uZXh0U2libGluZzsKLQotICAg
ICAgYXNzZXJ0Tm90TnVsbCgic2Vjb25kQ2hpbGROb3ROdWxsIixub2RlKTsKLW5vZGVUeXBlID0g
bm9kZS5ub2RlVHlwZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJzZWNvbmRDaGlsZElzRW50UmVm
Iiw1LG5vZGVUeXBlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIHRleHRyZXBsYWNld2hvbGV0ZXh0MDcoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3LnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkMjk3N2JhMTg4YWExYjEzODg2NmVk
YWIzNTU1Yjc5N2MyNDE3ODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hv
bGV0ZXh0MDcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJz
aW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3Qu
ZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYj
OTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICIm
Izk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhh
ICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxl
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8
IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAg
ICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBl
bnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBk
YXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMg
Q0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08
aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6
eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZm
LnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0i
VVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA3
LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwv
ZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFb
VGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRh
YiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxs
YXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9n
ZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0g
IDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8
L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwg
RGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5u
aXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0
cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8
L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2Fk
LCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdo
b2xldGV4dDA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjQ1MWE0NjZiNjQzMWEyNGQ2YjdhNDkzMmE2ZGNkMzE0NDVlNjQyZS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4Ci1TdGF0
dXMJZmFpbHVyZQotTWVzc2FnZQl0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IGFz
c2VydFRydWUgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlMDg1NGIzMGYyZmZhNzRkNzNhNzE0YWZmN2RjN2JkMzBhMDU4OWMxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTI2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3Js
ZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFu
ZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBU
aGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5z
ZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlm
aWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAg
ICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRl
eHQwOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9
IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5n
IGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0v
LyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91
cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhl
IHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBp
cyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9m
IHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1
cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0
IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVp
bGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAw
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJiYXJmb28i
KTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsK
LSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5
Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5
IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUg
cGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2Yg
dGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAg
aWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLUFwcGVuZHMgYW4gZW50aXR5IHJlZmVyZW5j
ZSBjb250YWluaW5nIHRleHQgYW5kIGFuIGVsZW1lbnQgdG8gYW4gZXhpc3RpbmcKLXRleHQgbm9k
ZSwgdGhlbiBjYWxscyBUZXh0LnJlcGxhY2VXaG9sZVRleHQgb24gdGhlIGV4aXN0aW5nIHRleHQg
bm9kZS4KLUEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIHNob3VsZCBiZSB0aHJvd24uCi0K
LSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQv
UkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTQy
NQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD01
NDAKLSovCi1mdW5jdGlvbiB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCkgewotICAgdmFyIHN1Y2Nl
c3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAidGV4dHJlcGxhY2V3aG9s
ZXRleHQwOCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGl0ZW1M
aXN0OwotICAgICAgdmFyIHA7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIG5vZGU7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJiYXJmb28iKTsKLSAgICAgIGl0ZW1M
aXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7Ci0gICAgICBwID0gaXRlbUxpc3Qu
aXRlbSgwKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDIi
KTsKLSAgICAgIG5vZGUgPSBwLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBub2RlID0gcC5m
aXJzdENoaWxkOwotCi0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIG5vZGUgPSBub2RlLnJlcGxhY2VXaG9sZVRleHQoInlvIik7Ci0gICAgICAgIH0K
LQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRl
ZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIHRleHRyZXBsYWNld2hvbGV0ZXh0MDgoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4
dDA4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNl
d2hvbGV0ZXh0MDgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmYWU5OTY5
YWY4YzZkMTAyMzRmYTAwMzYyZDc4NTNlNjk3ZDBkMWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCww
IEBACi08IURPQ1RZUEUgaHRtbCBbCi08IUVOVElUWSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50
MiAnZm9vPGJyLz4nPgotPCFFTEVNRU5UIGh0bWwgKGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0
bWwgeG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+
Ci08IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KLTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNy
YyBDREFUQSAjSU1QTElFRAotICAgICB0eXBlIENEQVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQg
Q0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJv
ZHkgKHApPgotPCFBVFRMSVNUIGJvZHkgb25sb2FkIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5U
IHAgKCNQQ0RBVEF8YnIpKj4KLTwhRUxFTUVOVCBiciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hv
bGVUZXh0IHNhbXBsZTwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3Jj
PSdzZWxmeGh0bWwuanMnPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCcgc3JjPSd0ZXh0cmVwbGFjZXdob2xldGV4dDA4LmpzJz48L3NjcmlwdD48
c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBz
dGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotPHA+YmFyPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlvbnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2Vw
dGlvbnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYWMzZDlj
YmRmNzAwZTY5NmI2YTA3NDg1MGM2MjZjNDM4NjM2Nzk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVy
ZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDIzICswLDAgQEAKLVRlc3QgdG8gbWFrZSBzdXJlIEVudGl0eVJlZmVyZW5jZSBub2RlcyBhcmUg
YWx3YXlzIHRyZWF0ZWQgcmVhZG9ubHkKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LVBBU1MgeG1sRG9jMi5hZG9wdE5vZGUoZW50aXR5UmVmZXJlbmNlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1QQVNT
IGVudGl0eVJlZmVyZW5jZS5vd25lckRvY3VtZW50IGlzIHhtbERvYwotUEFTUyBlbnRpdHlSZWZl
cmVuY2Uubm9kZVZhbHVlID0gJ2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uu
bm9kZVZhbHVlIGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLnByZWZpeCA9ICdmb28nIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogTmFtZXNwYWNlRXJyb3I6IERPTSBFeGNlcHRpb24gMTQuCi1Q
QVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2Uu
dGV4dENvbnRlbnQgPSAnZm9vJyB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vTW9kaWZpY2F0aW9u
QWxsb3dlZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1GQUlMIGVudGl0eVJlZmVyZW5jZS50ZXh0
Q29udGVudCBzaG91bGQgYmUgPi4gV2FzIC4KLUZBSUwgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBl
bmQgc2hvdWxkIGJlIDEuIFdhcyAwLgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuYXBwZW5kQ2hpbGQo
dGV4dCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA3LgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGgg
aXMgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQKLUZBSUwgY2hpbGRyZW5CZWZvcmVGYWlsZWRB
cHBlbmQgc2hvdWxkIGJlIDEuIFdhcyAwLgotUEFTUyBlbnRpdHlSZWZlcmVuY2UuaW5zZXJ0QmVm
b3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENoaWxkKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1QQVNTIGVu
dGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCBpcyBjaGlsZHJlbkJlZm9yZUZhaWxlZEFw
cGVuZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25s
eS1leGNlcHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uv
cmVhZG9ubHktZXhjZXB0aW9ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
ZmIxNjQxYmVkNDQ3MzA3MGZiYzJlOWYzNDljMTljYjgxZDNlOGYyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0
eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uvc2Ny
aXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZl
cmVuY2Uvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRiZWVkOTNhNWUwNmQ4ODQxMjhkZjNiMzRkYjU0MmQ4NTA3MWUzNWQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNy
Yz0iWU9VUl9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0
cy9yZWFkb25seS1leGNlcHRpb25zLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVm
ZXJlbmNlL3NjcmlwdC10ZXN0cy9yZWFkb25seS1leGNlcHRpb25zLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZjI0NjU3ZDgyZGIzZThhN2ZiYmU0ODc3ZDNkM2Q2M2IxMDlkNDc3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhjZXB0
aW9ucy5qcworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLWRlc2NyaXB0aW9uKCJUZXN0
IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMgYXJlIGFsd2F5cyB0cmVhdGVkIHJl
YWRvbmx5IikKLQotdmFyIHhtbERvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURv
Y3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZh
ciB4bWxEb2MyID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoImh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiaHRtbCIsIG51bGwpOwotdmFyIGVudGl0eVJlZmVy
ZW5jZSA9IHhtbERvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci0KLXNob3VsZFRocm93
KCJ4bWxEb2MyLmFkb3B0Tm9kZShlbnRpdHlSZWZlcmVuY2UpIik7Ci1zaG91bGRCZSgiZW50aXR5
UmVmZXJlbmNlLm93bmVyRG9jdW1lbnQiLCAieG1sRG9jIikKLQotLy8gbm9kZVZhbHVlIGlzIGRl
ZmluZWQgdG8gYmUgbnVsbCBmb3IgRW50aXR5IFJlZmVyZW5jZSBub2RlcywgYW5kIHRodXMgc2hv
dWxkIHNpbGVudGx5IGZhaWwgdG8gbW9kaWZ5Ci0vLyBTcGVjIGlzIGFtYmlnaW91cyBhcyB0byBp
ZiB3ZSBzaG91bGQgdGhyb3cgaGVyZSBvciBub3QuICBJJ3ZlIHJlcXVlc3RlZCBjbGFyaWZpY2F0
aW9uOgotLy8gaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8yMDA4
SmFuTWFyLzAwMDkuaHRtbAotc2hvdWxkVGhyb3coImVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUg
PSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUiLCAibnVsbCIp
OwotCi1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLnByZWZpeCA9ICdmb28nIik7Ci1zaG91
bGRCZSgiZW50aXR5UmVmZXJlbmNlLnByZWZpeCIsICJudWxsIik7Ci0KLXNob3VsZFRocm93KCJl
bnRpdHlSZWZlcmVuY2UudGV4dENvbnRlbnQgPSAnZm9vJyIpOwotc2hvdWxkQmUoImVudGl0eVJl
ZmVyZW5jZS50ZXh0Q29udGVudCIsICInPiciKTsKLQotdmFyIGNoaWxkcmVuQmVmb3JlRmFpbGVk
QXBwZW5kID0gZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hvdWxkQmUoImNo
aWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIiwgIjEiKTsKLXZhciB0ZXh0ID0gZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoIkZBSUwiKTsKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2UuYXBwZW5k
Q2hpbGQodGV4dCkiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5n
dGgiLCAiY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQiKTsKLQotY2hpbGRyZW5CZWZvcmVGYWls
ZWRBcHBlbmQgPSBlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGg7Ci1zaG91bGRCZSgi
Y2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQiLCAiMSIpOwotc2hvdWxkVGhyb3coImVudGl0eVJl
ZmVyZW5jZS5pbnNlcnRCZWZvcmUodGV4dCwgZW50aXR5UmVmZXJlbmNlLmZpcnN0Q2hpbGQpIik7
Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoIiwgImNoaWxkcmVu
QmVmb3JlRmFpbGVkQXBwZW5kIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9O
b2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05v
ZGUvaW5pdGlhbC12YWx1ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDI2ZjBlYzJhM2RlYmZlN2E3ZWRl
YjA4ZTJkMTAxYTc0MTVkY2RmYjUuLjFjOTgxZmIzYjVkODkyN2Q1YTg0MzM4ZjM3MTI0NTNhNjBj
ZTgxZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvaW5pdGlhbC12YWx1
ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvaW5pdGlhbC12
YWx1ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMTMsMTIgKzExMyw2IEBAIFBBU1MgZWxlbWVudC5uYW1l
c3BhY2VVUkkgaXMgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCiBQQVNTIGVsZW1lbnQu
cHJlZml4IGlzICdodG1sJwogUEFTUyBlbGVtZW50Lm5vZGVWYWx1ZSBpcyBudWxsCiBQQVNTIGVs
ZW1lbnQuYXR0cmlidXRlcy50b1N0cmluZygpIGlzICdbb2JqZWN0IE5hbWVkTm9kZU1hcF0nCi1Q
QVNTIGRvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgnZ3QnKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCi1QQVNTIGVudGl0eVJl
ZmVyZW5jZS5ub2RlTmFtZSBpcyAnZ3QnCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5sb2NhbE5hbWUg
aXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2UubmFtZXNwYWNlVVJJIGlzIG51bGwKLVBBU1Mg
ZW50aXR5UmVmZXJlbmNlLnByZWZpeCBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5ub2Rl
VmFsdWUgaXMgbnVsbAogUEFTUyBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubm9kZU5hbWUgaXMgJ3ht
bC1zdHlsZXNoZWV0JwogUEFTUyBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubG9jYWxOYW1lIGlzIG51
bGwKIFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5hbWVzcGFjZVVSSSBpcyBudWxsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZh
bHVlcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwt
dmFsdWVzLmpzCmluZGV4IDczMWE4MDYzOTA4Njk4YjQ2OTViMjhjMzZiNzczYTdkZDFhMzAzNTQu
LjliMTJhOTc5MDFjMDM5NDMyMzMyZDMzZGZjYWRjOTgyN2ZiNmFhZmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwtdmFsdWVzLmpzCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwtdmFsdWVz
LmpzCkBAIC0xNTYsMTYgKzE1Niw2IEBAIHNob3VsZEJlKCJlbGVtZW50LnByZWZpeCIsICInaHRt
bCciKTsKIHNob3VsZEJlKCJlbGVtZW50Lm5vZGVWYWx1ZSIsICJudWxsIik7CiBzaG91bGRCZSgi
ZWxlbWVudC5hdHRyaWJ1dGVzLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgTmFtZWROb2RlTWFwXSci
KTsKIAotLy8gTm90IHBvc3NpYmxlIHRvIGNyZWF0ZSBFbnRpdHkgbm9kZXMgdmlhIHRoZSBET00s
IFdlYktpdCBkb2Vzbid0IGNyZWF0ZSB0aGVtIGZyb20gcGFyc2luZwotCi1zaG91bGRUaHJvdygi
ZG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCdndCcpIik7Ci12YXIgZW50aXR5UmVmZXJl
bmNlID0geG1sRG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZ3QiKTsKLXNob3VsZEJlKCJlbnRp
dHlSZWZlcmVuY2Uubm9kZU5hbWUiLCAiJ2d0JyIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5j
ZS5sb2NhbE5hbWUiLCAibnVsbCIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5uYW1lc3Bh
Y2VVUkkiLCAibnVsbCIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5wcmVmaXgiLCAibnVs
bCIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUiLCAibnVsbCIpOwotCiAv
LyBOb3QgcG9zc2libGUgdG8gY3JlYXRlIE5vdGF0aW9uIG5vZGVzIHZpYSB0aGUgRE9NLCBXZWJL
aXQgZG9lc24ndCBjcmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKIAogdmFyIHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiA9IGRvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigneG1sLXN0eWxl
c2hlZXQnLCAndHlwZT1cInRleHQveHNsXCIgaHJlZj1cIm1pc3NpbmcueHNsXCInKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGll
cy1leHBlY3RlZC50eHQKaW5kZXggNzcxM2ZjOWNmNDg3ZjY5Nzk4MTg3NDIyZTEyNzFhYTg2MmJl
NjI1Ny4uNzQ3Y2Q3ZTYyNTljZGRjYTBiZTI1Y2VlNGI1Y2MyYTAxZjcwY2YyMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGll
cy1leHBlY3RlZC50eHQKQEAgLTMzLDggKzMzLDYgQEAgUEFTUzogY2FuR2V0KCdEb2N1bWVudFR5
cGUnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhblNldCgnRG9jdW1lbnRUeXBl
Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ0VsZW1lbnQnKSBzaG91
bGQgYmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhblNldCgnRWxlbWVudCcpIHNob3VsZCBiZSAn
dHJ1ZScgYW5kIGlzLgotUEFTUzogY2FuR2V0KCdFbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQgYmUg
J3RydWUnIGFuZCBpcy4KLVBBU1M6IGNhblNldCgnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJl
ICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ0V2YWxFcnJvcicpIHNob3VsZCBiZSAndHJ1
ZScgYW5kIGlzLgogUEFTUzogY2FuU2V0KCdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ3RydWUnIGFu
ZCBpcy4KIFBBU1M6IGNhbkdldCgnRXZlbnQnKSBzaG91bGQgYmUgJ3RydWUnIGFuZCBpcy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRt
bAppbmRleCBmZmY1YzRhZDA4MTRhYjljMWNjMDQ2YWZlYmIxOGM5ZDc4YmM2NzQwLi40NDMxNmFj
NzhmMTM4NzgwNDkwZTRlNTYxMmFiMmFkOGZiN2UwOWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCkBAIC04NCw3ICs4NCw2
IEBAIHZhciB3aW5kb3dSZWFkV3JpdGVQcm9wZXJ0aWVzID0gWwogICAgICJEb2N1bWVudEZyYWdt
ZW50IiwgCiAgICAgIkRvY3VtZW50VHlwZSIsIAogICAgICJFbGVtZW50IiwgCi0gICAgIkVudGl0
eVJlZmVyZW5jZSIsIAogICAgICJFdmFsRXJyb3IiLCAKICAgICAiRXZlbnQiLCAKICAgICAiSFRN
TEFuY2hvckVsZW1lbnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9yZXNvdXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzCmluZGV4IGY5YzcwOTI5MjkyOThj
NzZmNzljZTVmNmE2YWU1MmZjOWNlYzBkZjUuLjlkNDMwZWNlYjJlYWM3YTU3MThiMzdmZDYzZGU3
Y2UyNGFiYTFiM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNv
dXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3Jlc291cmNlcy93aW5kb3ctcHJvcGVydGllcy5qcwpAQCAtNTYsNyArNTYsNiBAQCB2YXIg
cHJvcGVydHlJbmZvID0gWwogICAgIFsiRG9jdW1lbnRGcmFnbWVudCIsICJvYmplY3QiXSwKICAg
ICBbIkRvY3VtZW50VHlwZSIsICJvYmplY3QiXSwKICAgICBbIkVsZW1lbnQiLCAib2JqZWN0Il0s
Ci0gICAgWyJFbnRpdHlSZWZlcmVuY2UiLCAib2JqZWN0Il0sCiAgICAgWyJFdmVudCIsICJvYmpl
Y3QiXSwKICAgICBbIkV2ZW50RXhjZXB0aW9uIiwgIm9iamVjdCJdLAogICAgIFsiSFRNTEFuY2hv
ckVsZW1lbnQiLCAib2JqZWN0Il0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDY3ZDMwMmNlZWQ1MjA1NjNkZmUxZGJmN2Y3OTAwZDIwZmQ4NDg4YjAuLjExMjIxNGE3N2Jm
NTNmMGMxMmZmM2FiYTNlNzA3ZWYxMzA3ZTZhYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhw
ZWN0ZWQudHh0CkBAIC0xMTQsOCArMTE0LDYgQEAgUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09
ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0Rv
Y3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1
ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBp
cyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rv
cl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRp
dHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVu
Y2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBB
U1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQ
QVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQog
UEFTUyB3aW5bJ0V2ZW50RXhjZXB0aW9uJ10gPT0gJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25z
dHJ1Y3Rvcl0nIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dAppbmRl
eCAzMDJhMDliODZhNWJmMmU3OTlkMjRjOGU2OWUxMzA3ZTFhNGQyNmQxLi5hYmY2N2FkMmU5YWY2
MThjYWY4NTc3NzBiYTA5MTE0NGExNzI0NGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhw
ZWN0ZWQudHh0CkBAIC05Niw4ICs5Niw2IEBAIFBBU1M6IENvbW1lbnQgc3VjY2Vzc2Z1bGx5IHNo
YWRvd2VkCiBQQVNTOiBDREFUQVNlY3Rpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBE
b2N1bWVudFR5cGUgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBOb3RhdGlvbiBzdWNjZXNz
ZnVsbHkgc2hhZG93ZWQKLVBBU1M6IEVudGl0eSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKLVBBU1M6
IEVudGl0eVJlZmVyZW5jZSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IEhUTUxEb2N1bWVudCBzdWNj
ZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IEhUTUxFbGVtZW50IHN1Y2Nlc3NmdWxseSBzaGFkb3dl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
eS1zaGFkb3dpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydHktc2hhZG93aW5nLmh0bWwKaW5kZXggOWI0NmVhY2UwMTM3MGM1NTI2MmQwZWY2NGQ2ODFh
ZTU2ZWFiYzAyYy4uY2I3NGZiMDRhMDcyNTJmMTBiNWRjNjNmOWM2MDRiMTUxOTBjNWQ5YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFk
b3dpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LXNoYWRvd2luZy5odG1sCkBAIC0yMTUsMTAgKzIxNSw2IEBACiAgICAgICAgIGxvZyhEb2N1
bWVudFR5cGUgPT0gMSA/ICJQQVNTOiBEb2N1bWVudFR5cGUgc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
IiA6ICJGQUlMOiBEb2N1bWVudFR5cGUgd2FzIG5vdCBzaGFkb3dlZCIpOwogICAgICAgICB2YXIg
Tm90YXRpb24gPSAxOwogICAgICAgICBsb2coTm90YXRpb24gPT0gMSA/ICJQQVNTOiBOb3RhdGlv
biBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IE5vdGF0aW9uIHdhcyBub3Qgc2hhZG93
ZWQiKTsKLSAgICAgICAgdmFyIEVudGl0eSA9IDE7Ci0gICAgICAgIGxvZyhFbnRpdHkgPT0gMSA/
ICJQQVNTOiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBFbnRpdHkgd2Fz
IG5vdCBzaGFkb3dlZCIpOwotICAgICAgICB2YXIgRW50aXR5UmVmZXJlbmNlID0gMTsKLSAgICAg
ICAgbG9nKEVudGl0eVJlZmVyZW5jZSA9PSAxID8gIlBBU1M6IEVudGl0eVJlZmVyZW5jZSBzdWNj
ZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IEVudGl0eVJlZmVyZW5jZSB3YXMgbm90IHNoYWRv
d2VkIik7CiAgICAgICAgIHZhciBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSAxOwogICAgICAgICBs
b2coUHJvY2Vzc2luZ0luc3RydWN0aW9uID09IDEgPyAiUEFTUzogUHJvY2Vzc2luZ0luc3RydWN0
aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogUHJvY2Vzc2luZ0luc3RydWN0aW9u
IHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIEhUTUxEb2N1bWVudCA9IDE7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDRhMThhZGY3YmFmNjY5Yzc2MWQ1MTk3YjEzNGRhMGJmZWU4NzJlODYuLjM3YzM1NDE5Mzhm
MTEwN2Q2NmNjOTMxNTBjMWIxNDM2NWY1ZWE5MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNiBAQCBQQVNT
IFRyeUFsbG9jYXRlKCdDaGFyYWN0ZXJEYXRhJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxs
b2NhdGUoJ0NEQVRBU2VjdGlvbicpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdE
b2N1bWVudFR5cGUnKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRWxlbWVudCcp
IGlzICdleGNlcHRpb24nCi1QQVNTIFRyeUFsbG9jYXRlKCdFbnRpdHlSZWZlcmVuY2UnKSBpcyAn
ZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnRXZlbnRUYXJnZXQnKSBpcyAnZXhjZXB0aW9u
JwogUEFTUyBUcnlBbGxvY2F0ZSgnSFRNTERvY3VtZW50JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1Mg
VHJ5QWxsb2NhdGUoJ05vZGUnKSBpcyAnZXhjZXB0aW9uJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
ZG9tLWNvbnN0cnVjdG9ycy5odG1sCmluZGV4IGYyNDk5ZGMwNDY1Mzc3Mzc2ZmE4ODZiMmNiYjNi
ZDBhOWQ4NmU0MjEuLjc5NTNiNjFhMjVkMjEwNzM3YmJjZjZhNDA4MTZlMWFmYzUwY2RiZTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0bWwKQEAgLTE4LDcgKzE4
LDYgQEAgdmFyIG9iamVjdHNfZXhjZXB0aW9uID0gWwogICAgICdDREFUQVNlY3Rpb24nLAogICAg
ICdEb2N1bWVudFR5cGUnLAogICAgICdFbGVtZW50JywKLSAgICAnRW50aXR5UmVmZXJlbmNlJywK
ICAgICAnRXZlbnRUYXJnZXQnLAogICAgICdIVE1MRG9jdW1lbnQnLAogICAgICdOb2RlJywKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDc4OGNhYmU1ZDAzYjUxZmZiYzQwZmYzNjNjYWQ2Y2EwNmFiODVkNDkuLjY5MmJhNzA1ZmVk
ODNiMjk1YTI3MDhkNWU3MzYwNmIwZTZhMDFhMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dApAQCAtNDcsOSArNDcsNiBAQCBQQVNT
IGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpLmNvbnN0cnVj
dG9yKSBpcyAnQ0RBVEFTZWN0aQogUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVh
dGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykpIGlzICdFbGVtZW50JwogUEFTUyBqc1dyYXBwZXJD
bGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykuX19wcm90b19f
KSBpcyAnRWxlbWVudFByb3RvdHlwZScKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLmNvbnN0cnVjdG9yKSBpcyAnRWxlbWVudENv
bnN0cnVjdG9yJwotUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlS
ZWZlcmVuY2UoKSkgaXMgJ0VudGl0eVJlZmVyZW5jZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1s
RG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkuX19wcm90b19fKSBpcyAnRW50aXR5UmVm
ZXJlbmNlUHJvdG90eXBlJwotUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoKS5jb25zdHJ1Y3RvcikgaXMgJ0VudGl0eVJlZmVyZW5jZUNvbnN0cnVj
dG9yJwogUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oKSkgaXMgJ1Byb2Nlc3NpbmdJbnN0cnVjdGlvbicKIFBBU1MganNXcmFwcGVyQ2xh
c3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuX19wcm90b19fKSBp
cyAnUHJvY2Vzc2luZ0luc3RydWN0aW9uUHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJDbGFzcyh4
bWxEb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKS5jb25zdHJ1Y3RvcikgaXMg
J1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkNvbnN0cnVjdG9yJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93
cmFwcGVyLWNsYXNzZXMuaHRtbAppbmRleCA4YmU4ZmUzYmYwYzIzYzAzNGEwNzc4MjM1NTBkNjcz
ZGZlMTBlZGM3Li5mZjgxZDhmOTA1MDQ0MGRjMWUzMWQzMDgzMzU1YzY2MzEyOWM5NjMyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMuaHRtbApAQCAtOTAsNyArOTAsNiBA
QCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB0ZXN0KCJ4bWxEb2N1bWVudCIsICJEb2N1bWVudCIp
OwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpIiwgIkNEQVRBU2Vj
dGlvbiIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4Jywg
J3gnKSIsICJFbGVtZW50Iik7Ci0gICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCkiLCAiRW50aXR5UmVmZXJlbmNlIik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkiLCAiUHJvY2Vzc2luZ0luc3RydWN0aW9uIik7CiAK
ICAgICBkZWJ1ZygnJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAppbmRl
eCA2M2UyNDJhMmZiZTMyYjlkNmI4M2Q1OGNlYWQ1NjQ5YjQ5Njc0MWJiLi5kNTkzYTVlYWJhOGE4
ZTA4ZTAxYzA5YzIyNDMxOGRlOTA4NjBjZDhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1l
eHBlY3RlZC50eHQKQEAgLTE4Nyw3ICsxODcsNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcgog
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBC
bG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBh
Y2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJv
dG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIFRoaXMgdGVzdCBjaGVja3Mg
Y3Jvc3MtZnJhbWUgYWNjZXNzIHNlY3VyaXR5IChyZGFyOi8vcHJvYmxlbS81MjUxMzA5KS4KIAog
CkBAIC0yMzUsNyArMjM0LDYgQEAgUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRG9jdW1lbnRG
cmFnbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0
V2luZG93LkRvY3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNh
bkdldCgndGFyZ2V0V2luZG93LkVsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQ
QVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHknKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQg
aXMuCi1QQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQg
YmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FdmFsRXJyb3In
KSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5F
dmVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2lu
ZG93LkhUTUxBbmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
Z2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXQuaHRtbAppbmRleCAzODAwYTBiNWU4MTI0Yjk0NWQ4MTAzOTBjM2U5YjVmOTBlNTc4
MzhkLi5jY2U1ZjdhM2YyMzQxY2FiN2ZmMDljYmU3NWIzYjJlNjlkZWE2Y2Y5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXQuaHRtbApAQCAtMjAsNyArMjAsNiBAQAogICAgICAgICAgICAgIkRvY3VtZW50VHlw
ZSIsIAogICAgICAgICAgICAgIkVsZW1lbnQiLCAKICAgICAgICAgICAgICJFbnRpdHkiLCAKLSAg
ICAgICAgICAgICJFbnRpdHlSZWZlcmVuY2UiLCAKICAgICAgICAgICAgICJFdmFsRXJyb3IiLCAK
ICAgICAgICAgICAgICJFdmVudCIsIAogICAgICAgICAgICAgIkhUTUxBbmNob3JFbGVtZW50Iiwg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1l
LWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAppbmRleCBlNDU4NWFiZDUxNjA1YzFlMmQ5ZThiOWYyY2Q4
OGFiY2Q1Y2FkMmUwLi4xZWE1YmRjNmQ5NDk3NDZlMWU5YzI1MzU2NjQ2NWM0MGIzOWI4NWM5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5
RGVzY3JpcHRvci1leHBlY3RlZC50eHQKQEAgLTc4LDcgKzc4LDYgQEAgUEFTUzogY2FuR2V0RGVz
Y3JpcHRvcih0YXJnZXRXaW5kb3csICdEb2N1bWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBp
cy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRG9jdW1lbnRGcmFnbWVu
dCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFy
Z2V0V2luZG93LCAnRG9jdW1lbnRUeXBlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFT
UzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbGVtZW50Jykgc2hvdWxkIGJlICdm
YWxzZScgYW5kIGlzLgotUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFbnRp
dHlSZWZlcmVuY2UnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNj
cmlwdG9yKHRhcmdldFdpbmRvdywgJ0V2YWxFcnJvcicpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBp
cy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRXZlbnQnKSBzaG91bGQg
YmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywg
J0hUTUxBbmNob3JFbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbAppbmRl
eCBkZWEwMTdkNjc4YTE1ZmRkMTNjNzdhOTJhZTUxNWM3MDhlN2JkM2FjLi4zMDY2YjNhMmFmY2I1
ZDVkMjM5MWZjZjQ5OWQxZTM0OTQ2NTE1NDEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1l
LWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbApAQCAtMTksNyArMTksNiBAQAog
ICAgICAgICAgICAgIkRvY3VtZW50RnJhZ21lbnQiLCAKICAgICAgICAgICAgICJEb2N1bWVudFR5
cGUiLCAKICAgICAgICAgICAgICJFbGVtZW50IiwgCi0gICAgICAgICAgICAiRW50aXR5UmVmZXJl
bmNlIiwgCiAgICAgICAgICAgICAiRXZhbEVycm9yIiwgCiAgICAgICAgICAgICAiRXZlbnQiLCAK
ICAgICAgICAgICAgICJIVE1MQW5jaG9yRWxlbWVudCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1
dC1leHBlY3RlZC50eHQKaW5kZXggNDdmZDU0MzlkMzdkNzZkMTA2NTQ5YTcxOWJiNWFjOTIyOTIz
Y2JlYy4uODViMGFiYTFiMTViNDZlYWViYTA2MGZiZDU1ZTI5MjlmNDEyNTJkNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE1NDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTUyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQXR0ciBzaG91bGQgYmUgJ1tvYmplY3Qg
QXR0ckNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5DREFUQVNlY3Rp
b24gc2hvdWxkIGJlICdbb2JqZWN0IENEQVRBU2VjdGlvbkNvbnN0cnVjdG9yXScgYW5kIGlzLgog
QUxFUlQ6IFBBU1M6IHdpbmRvdy5DaGFyYWN0ZXJEYXRhIHNob3VsZCBiZSAnW29iamVjdCBDaGFy
YWN0ZXJEYXRhQ29uc3RydWN0b3JdJyBhbmQgaXMuCkBAIC0xNCw4ICsxNCw2IEBAIEFMRVJUOiBQ
QVNTOiB3aW5kb3cuRE9NRXhjZXB0aW9uIHNob3VsZCBiZSAnW29iamVjdCBET01FeGNlcHRpb25D
b25zdHJ1Y3Rvcl0nIGFuCiBBTEVSVDogUEFTUzogd2luZG93LkRPTUltcGxlbWVudGF0aW9uIHNo
b3VsZCBiZSAnW29iamVjdCBET01JbXBsZW1lbnRhdGlvbkNvbnN0cnVjdG9yXScgYW5kIGlzLgog
QUxFUlQ6IFBBU1M6IHdpbmRvdy5ET01QYXJzZXIgc2hvdWxkIGJlICdbb2JqZWN0IERPTVBhcnNl
ckNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FbGVtZW50IHNob3Vs
ZCBiZSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBhbmQgaXMuCi1BTEVSVDogUEFTUzog
d2luZG93LkVudGl0eSBzaG91bGQgYmUgJ3VuZGVmaW5lZCcgYW5kIGlzLgotQUxFUlQ6IFBBU1M6
IHdpbmRvdy5FbnRpdHlSZWZlcmVuY2Ugc2hvdWxkIGJlICdbb2JqZWN0IEVudGl0eVJlZmVyZW5j
ZUNvbnN0cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FdmFsRXJyb3Igc2hv
dWxkIGJlICdmdW5jdGlvbiBFdmFsRXJyb3IoKSB7ICAgIFtuYXRpdmUgY29kZV19JyBhbmQgaXMu
CiBBTEVSVDogUEFTUzogd2luZG93LkV2ZW50IHNob3VsZCBiZSAnW29iamVjdCBFdmVudENvbnN0
cnVjdG9yXScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCBz
aG91bGQgYmUgJ1tvYmplY3QgSFRNTEFuY2hvckVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4K
QEAgLTI3NCwxNSArMjcyLDE1IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMjA6IEJsb2NrZWQg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmCiBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTIxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4K
IENPTlNPTEUgTUVTU0FHRTogbGluZSAxMjI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyMzogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI0OiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Np
bmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xz
LCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
MzM6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEzNTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTMyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzNjogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM3
OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJv
bSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4g
UHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FH
RTogbGluZSAxMzg6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEzOTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3Qg
bWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQwOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQg
cG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNDE6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0Mjog
QmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20g
YWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFBy
b3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTQzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNP
TEUgTUVTU0FHRTogbGluZSAxNDQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ2OiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KQEAgLTMyMSw3ICszMTksNyBAQCBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTc4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3OTogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlu
cywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTgwOiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9j
b2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxODE6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE4MjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODU6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NjogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNz
aW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29s
cywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTg3OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIg
ZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
Ii4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KQEAgLTMzNyw3ICsz
MzUsNyBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk2OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5
NzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTk4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxOTk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMDogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjAyOiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMDM6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDIwNDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjA1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KQEAgLTM3MCw3ICszNjgsNiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjMxOiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDIzMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0
Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjMzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMzQ6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzNTogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3QgY2hlY2tzIGNy
b3NzLWZyYW1lIGFjY2VzcyBzZWN1cml0eSBvZiB3aW5kb3cgYXR0cmlidXRlIHNldHRlcnMgKHJk
YXI6Ly9wcm9ibGVtLzUzMjY3OTEpLgogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKaW5kZXggYWMw
MjRmODU1YWE4NjZlNjcxN2I5N2ZmYjFiNzQ5NTZiM2M1ZDczYy4uYTJiNmI4NzBhMThjNzM5MjU0
OGMxZWE5ZDg1OTIyNzgyOWNiNmUwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKQEAgLTUwLDcg
KzUwLDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJn
ZXRXaW5kb3csICJET01JbXBsZW1lbnRhdGlvbiIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5
KHRhcmdldFdpbmRvdywgIkRPTVBhcnNlciIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRh
cmdldFdpbmRvdywgIkVsZW1lbnQiKTsKLSAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRX
aW5kb3csICJFbnRpdHlSZWZlcmVuY2UiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJn
ZXRXaW5kb3csICJFdmFsRXJyb3IiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRX
aW5kb3csICJFdmVudCIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywg
IkhUTUxBbmNob3JFbGVtZW50Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1p
ZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwKaW5kZXggMzZmODI2YmQ5MDVmMDU3NzgwYjhiNjM4Njk2
Zjc5MzdlNWM0Yzg4Zi4uYjY3ZGZjMzlmYjAyM2IwYzk3N2VlYzgzYzk2NjYxYjhjMTk4ZTBkNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jv
c3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3Qu
aHRtbApAQCAtNTgsOCArNTgsNiBAQAogICAgICAgICB2YXIgRE9NSW1wbGVtZW50YXRpb25PbGQg
PSB3aW5kb3cuRE9NSW1wbGVtZW50YXRpb247CiAgICAgICAgIHZhciBET01QYXJzZXJPbGQgPSB3
aW5kb3cuRE9NUGFyc2VyOwogICAgICAgICB2YXIgRWxlbWVudE9sZCA9IHdpbmRvdy5FbGVtZW50
OwotICAgICAgICB2YXIgRW50aXR5T2xkID0gd2luZG93LkVudGl0eTsKLSAgICAgICAgdmFyIEVu
dGl0eVJlZmVyZW5jZU9sZCA9IHdpbmRvdy5FbnRpdHlSZWZlcmVuY2U7CiAgICAgICAgIHZhciBF
dmFsRXJyb3JPbGQgPSB3aW5kb3cuRXZhbEVycm9yOwogICAgICAgICB2YXIgRXZlbnRPbGQgPSB3
aW5kb3cuRXZlbnQ7CiAgICAgICAgIHZhciBIVE1MQW5jaG9yRWxlbWVudE9sZCA9IHdpbmRvdy5I
VE1MQW5jaG9yRWxlbWVudDsKQEAgLTI2MSw4ICsyNTksNiBAQAogICAgICAgICAgICAgc2hvdWxk
QmUoIndpbmRvdy5ET01JbXBsZW1lbnRhdGlvbiIsICJET01JbXBsZW1lbnRhdGlvbk9sZCIpOwog
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5ET01QYXJzZXIiLCAiRE9NUGFyc2VyT2xkIik7
CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkVsZW1lbnQiLCAiRWxlbWVudE9sZCIpOwot
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbnRpdHkiLCAiRW50aXR5T2xkIik7Ci0gICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LkVudGl0eVJlZmVyZW5jZSIsICJFbnRpdHlSZWZlcmVu
Y2VPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZhbEVycm9yIiwgIkV2YWxF
cnJvck9sZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FdmVudCIsICJFdmVudE9s
ZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCIsICJI
VE1MQW5jaG9yRWxlbWVudE9sZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4
cGVjdGVkLnR4dAppbmRleCA5YmVhMmEzZDY2NjZkMGQ5MzZjMTBjZmIxMTY5MWExOTZiNGFkYjgz
Li45YmFjODc2YjQwOWE0NzhkZGVmZWJiMDk1ZjY2NDBkNDQyZGMwM2I0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9oaXN0b3JpY2Fs
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dApAQCAtOSw3ICs5LDcgQEAgUEFTUyBI
aXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTUxvY2F0b3IKIFBBU1Mg
SGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01PYmplY3QgCiBQQVNT
IEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NVXNlckRhdGEgCiBQ
QVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRW50aXR5IAotRkFJ
TCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eVJlZmVyZW5j
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdIgorUEFT
UyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0eVJlZmVyZW5j
ZSAKIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFdmVudEV4
Y2VwdGlvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0i
CiBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogTmFtZUxpc3Qg
CiBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogTm90YXRpb24g
CkBAIC0xOSw5ICsxOSw3IEBAIFBBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSBy
ZW1vdmVkOiBSYW5nZUV4Y2VwdGlvbgogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0
IGJlIHJlbW92ZWQ6IGNyZWF0ZUNEQVRBU2VjdGlvbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAo
dW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biBjcmVhdGVDREFUQVNlY3Rpb24oKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIKLUZBSUwgSGlz
dG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBjcmVhdGVFbnRpdHlSZWZlcmVu
Y2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3Qg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkgewot
ICAgIFtuYXRpdmUgY29kZV0KLX0iCitQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3Qg
YmUgcmVtb3ZlZDogY3JlYXRlRW50aXR5UmVmZXJlbmNlIAogRkFJTCBIaXN0b3JpY2FsIERPTSBm
ZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IHhtbEVuY29kaW5nIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChvYmplY3QpIG51bGwKIEZBSUwgSGlz
dG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxTdGFuZGFsb25lIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChib29sZWFu
KSBmYWxzZQogRkFJTCBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IHht
bFZlcnNpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1
dCBnb3QgKG9iamVjdCkgbnVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAyZDhk
YzhlMTk4NTk3NDU4YzkzMTRkZWRiZWUyN2NmMzYxZDZlMzhkLi43OTg5NTgyYWIzZWI4YWMwNTBh
M2Q4YTc1ZGFlYzQyNjhiZGVkN2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAt
MzEzLDExICszMTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVy
ZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdn
ZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5j
ZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52
YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5o
YXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBiYWFiNDk4MjBmNGRhOWYzMzkzMGIyYjc5
OTQyZTkzMzEwNWU4ZjcwLi40NTdlOTkwMTRkNDM4OTMyY2E0NjMyNzg0YzliNmNhNTc4OWQyZTI3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CkBAIC0zMTMsMTEgKzMxMyw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0
cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVy
dHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVu
dCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNl
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVu
dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CmluZGV4IGVkYjc1NTA3NjI5Yzdj
MGRjNjIwN2JmMDQ5NDYwYTRkNTc4OTRhODIuLjgyYjAyNGE4NjZhNDBkMzI5MWM2NWM3M2FmY2Y5
YmMyNDNhOTc0NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2Vk
ZW5jZS1leHBlY3RlZC50eHQKQEAgLTExNCw4ICsxMTQsNiBAQCBQQVNTIHdpblsnRG9jdW1lbnRU
eXBlJ10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNT
IHdpblsnRG9jdW1lbnRUeXBlJ10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3Jd
JyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1
Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENv
bnN0cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVyZW5jZSddID09ICdbb2Jq
ZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0
eVJlZmVyZW5jZSddID09ICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMg
dHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBp
cyB0cnVlCiBQQVNTIHdpblsnRXZlbnRFeGNlcHRpb24nXSA9PSAnW29iamVjdCBFdmVudEV4Y2Vw
dGlvbkNvbnN0cnVjdG9yXScgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0
dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGEwYzZmZjRmODc5YzU5OWM2MDA3ZTY3ZTY5NWIy
MWE1NjJlMjY5OWYuLmU2ODFhNDZhNGY4ZTZlZDVlMjRiNzdhMTc5MzBhYzUxNWU4ZTY0ZDUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAg
LTMxOCwxMSArMzE4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUK
LVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZl
cmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgn
Z2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50Jyku
dmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50Jyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBjMTVi
NjY1YTBmZmFiNjc2YzBmZThkOTc1ZjgzOGI3N2Q4OTg5YmM4Li5lMTg0Mjk1YzBlYzEzYzgwM2Qz
YmY1OTUwNDE3OGFjZjUzY2E2ZWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4
LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1l
bnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVu
dCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1
ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlS
ZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJh
YmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJy
b3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vy
cm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVy
dHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
eW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMDBmYmM0YjAyOGQ5MmU2YWRm
YTY2Mzc2ZThlZTJiZjY3ZWM0ZmNmMy4uOTRkNzgxMjYyOTBkMGIzZjAzN2E0OTY1ZmE1ZGY3ZGEz
ZGMyODc1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICszMDgsNiBAQCBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3Bl
cnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vs
ZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVy
ZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVu
Y2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093
blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVk
LnR4dAppbmRleCA5M2RhZGMwMzFmNjJmMzY2M2E4OTY2MDNhM2RhYjE4ZWUyNjQzMmE0Li4xNjJm
NDhmYzU2Yjk4NzliM2E5YjEzNmI4YjcxYjJlZjlhODdhMmVlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5j
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CkBAIC0xMTQsOCArMTE0
LDYgQEAgUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNv
bnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0
IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9
PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVu
dCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydF
bnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0n
IGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlS
ZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2Jq
ZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29i
amVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50RXhjZXB0aW9u
J10gPT0gJ1tvYmplY3QgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0nIGlzIHRydWUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMt
b2JqYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3Jh
cHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CmluZGV4IGMyY2ZmZTE0YmQzZTIwY2FlNTMz
ZmM5MGNkN2E3NWRkZWY1NGFiMTcuLjdjMmIxNzMxMTQ0NWYzYzdkNDM3MGU4NGMwNzY4MWZkMzky
ZjJjZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFw
cGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dApAQCAtMjEsNyAr
MjEsNiBAQCBYTUwKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudCkgaXMgJ0RPTURv
Y3VtZW50JwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2Vj
dGlvbigpKSBpcyAnRE9NQ0RBVEFTZWN0aW9uJwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERv
Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKSkgaXMgJ0RPTUVsZW1lbnQnCi1Q
QVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCkp
IGlzICdET01FbnRpdHlSZWZlcmVuY2UnCiBQQVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1l
bnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkpIGlzICdET01Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24nCiAKIEV2ZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbAppbmRleCAwYmJiNDQ1YWNmNzVh
ODA5OTI0YmJjMjI4OTY4MjI4NDZjM2EzYzFiLi5mMzU5ZDk0M2QwOGQwYzAwOWNjYjY3YWI3MjJl
ODY4YmQ2MWJhZTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9k
b20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbApAQCAtMTAzLDcgKzEwMyw2IEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIHRlc3QoInhtbERvY3VtZW50IiwgIkRvY3VtZW50Iik7
CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlQ0RBVEFTZWN0aW9uKCkiLCAiQ0RBVEFTZWN0
aW9uIik7CiAgICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAn
eCcpIiwgIkVsZW1lbnQiKTsKLSAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZl
cmVuY2UoKSIsICJFbnRpdHlSZWZlcmVuY2UiKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKSIsICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iKTsKIAog
ICAgIGRlYnVnKCcnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dAppbmRleCAwNDRmMTRmMGU1Mjk2ZTY3NWQ4YjQzYzhiNDNkODAyZDI2OTc3MTE4
Li5jMWE0MjJmMGExNTU3NzE4YzFhN2VkOWYxMDRmODhjZDk1MGE1NjE0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMw
OCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1l
bnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFs
dWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVy
YWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVy
cm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
cnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDA4M2EwNzFmNmNlNmViNWVkMjFjZDA0NjAxYTNhYmU3NjE5
MzFmYmYuLjZlYmFhYWY2Y2NjYTAxMGE5MmZmNzA3ZjE5MjQxZGM4NTU3Y2VmOGEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTIzOCwx
MSArMjM4LDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2Un
KS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0Jykg
aXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUg
aXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261688</attachid>
            <date>2015-09-21 15:00:05 -0700</date>
            <delta_ts>2015-09-21 19:29:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150921145949.patch</filename>
            <type>text/plain</type>
            <size>450429</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY0OTYxNmNiMmI0NDVl
ODkwMTA5NTBhZjEwYTcxZDgxZTI0Y2M2NS4uOWUwM2FmMzNlZTE5YmJhMjQ2OGQ0Zjg2Y2MxNTk2
Mjg0ZWZmMzNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wOS0xOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0
dHI6OmNoaWxkVHlwZUFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5D
aGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aW1wb3J0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYW5BY2NlcHRDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RW50aXR5UmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6
RW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAg
ICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmR1bXBTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmNoaWxkTm9kZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2Nl
bmRhbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2Yp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Omhhc2hQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6Tm9kZUl0ZXJhdG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpjaGVja0RlbGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVu
Z3RoT2ZDb250ZW50c0luTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmFuZ2U6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6
OmNoZWNrTm9kZVdPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNo
ZWNrTm9kZUJBKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2U6OnBhc3RMYXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVCb3VuZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZTo6YWJzb2x1dGVUZXh0UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5n
ZS5oOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2
ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlSXRlcmF0b3JCYXNlOjpleHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBk
b20vVHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fs
a2VyKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVdhbGtlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAg
ICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHht
bC9YUGF0aFV0aWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0
Tm9kZSk6IERlbGV0ZWQuCisKIDIwMTUtMDktMjEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBDbGVhbiB1cCBNZWRpYVN0cmVh
bSBwcml2YXRlIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmNjdkNTZjMTgzYmFjNWY0NmM3ZDAy
OGRjYTA1YmQ0ZjE1NmMwNmI0Li42NDYzNWEwYTk5MWIwNThhM2E3ZDczODQ0N2ZjYjgxMTJkZjE3
Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDktMTkgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBF
bnRpdHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRHJvcCBoYW5kbGluZyBFbnRpdHlSZWZlcmVuY2UgTm9kZXMu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRl
cm5hbHMubW06CisgICAgICAgIChXZWJLaXQ6OldLRE9NTm9kZUNsYXNzKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OmlzQXNzaXN0YWJsZUVsZW1lbnQpOgorCiAyMDE1LTA5LTIxICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCB0aGUgYWJpbGl0eSBmb3Ig
dGVzdHMgdG8gcnVuIHNjcmlwdCBpbiB0aGUgVUkgcHJvY2VzcyBpbiBXZWJLaXRUZXN0UnVubmVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGI1YWNiNDExODE4OTY2NGZiODU4MzJmNGY3NDIzMjA4
ZWUzNTA0ZDIuLjZhNjU1ZGQyODI0NGY3ZDUwNDY4ZmE2ZjFhMWE4YTgyMmFjYTgzNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0zOTEsNyArMzkxLDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19J
RExfRklMRVMKICAgICBkb20vRG9jdW1lbnRGcmFnbWVudC5pZGwKICAgICBkb20vRG9jdW1lbnRU
eXBlLmlkbAogICAgIGRvbS9FbGVtZW50LmlkbAotICAgIGRvbS9FbnRpdHlSZWZlcmVuY2UuaWRs
CiAgICAgZG9tL0Vycm9yRXZlbnQuaWRsCiAgICAgZG9tL0V2ZW50LmlkbAogICAgIGRvbS9FdmVu
dEV4Y2VwdGlvbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCBkM2ViNTE3MzFl
MDYwMDJlMTM0MzhkYWNiZjU3ZWE0N2FkZGM0MzFjLi4zNDNhODAxMjVmNDJmOGQ5ODI4NzBjMzdi
NDUyNDE0YmY4OGY1Yzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0xNDksNyAr
MTQ5LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5jcHAiCiAjaW5jbHVkZSAiSlNET01XaW5k
b3dDU1MuY3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudC5jcHAiCi0jaW5jbHVkZSAiSlNFbnRpdHlS
ZWZlcmVuY2UuY3BwIgogI2luY2x1ZGUgIkpTRXJyb3JFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNF
dmVudC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEV4Y2VwdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA3NzRjYTA2NDhhN2I1
YjkwMGRmNGEwMGUzZjZlMzFiZjljMDcyYzA4Li4zMmZhMTZmMDMxMDU5OWI4OGUwOTAyOWJhMzFj
YmE5MGUyNGZkZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKQEAgLTE4MzIsMjAgKzE4MzIsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8
Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3Jt
QXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVy
ZW5jZS5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk4NDUsNyArMTk4MzEsNiBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRE9NVVJMLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0
Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01XaW5k
b3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU0VsZW1lbnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXJyb3JFdmVudC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRXZlbnQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0V2ZW50RXhj
ZXB0aW9uLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggMjYzMzM3N2E5N2UxZDI3MzRjMGJlNmIwYTBh
OGMwMWVmNTE2ODYzZi4uYjUwNWYyNDNlN2Y5OTk1OTVkYmY0YWQ5MTQ0ZWQ4OWM3MjI2NGFiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycwpAQCAtNTI1NCw5ICs1MjU0LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuY3BwIj4KICAgICAgIDxGaWx0
ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0
ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5jZS5j
cHAiPgotICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgotICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
aiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
RXJyb3JFdmVudC5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgpAQCAtMTI2NDMsOSArMTI2NDAsNiBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1
cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRWxlbWVudC5oIj4KICAgICAgIDxG
aWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJj
aGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VudGl0eVJlZmVyZW5j
ZS5oIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5j
bHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U0Vycm9yRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMTA1ZWEwZDExM2Q1NWY3ZGVlMjYzNGI1ZGNmYWExMzc2YjM0
NTgzYy4uMGUwMDBkNjNmYzFhMTFmNGU4YTZiY2YyMDY0NjcyMjFiNjlmZGRhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzU4
OSw4ICszNTg5LDYgQEAKIAkJOTNGOUI2NTgwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52
YXNFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRjlCNjU1MEJBMEYzNUUwMDg1NDA2NCAvKiBET01IVE1MQ2FudmFzRWxlbWVu
dEludGVybmFsLmggKi87IH07CiAJCTkzRjlCNkUwMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNG
OUI2REUwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5jcHAgKi87IH07CiAJCTkzRjlCNkUx
MEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1l
bnQuaCAqLzsgfTsKLQkJOTNGOUI3NzQwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJl
bmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RjlCNzcyMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAgKi87IH07Ci0J
CTkzRjlCNzc1MEJBNUZEREQwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3NzMwQkE1RkREQzAw
ODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi87IH07CiAJCTkzRjlCN0EwMEJBNjAzMjYw
MDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNl
Y3Rpb24uY3BwICovOyB9OwogCQk5M0Y5QjdBMTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNl
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RjlCNzlGMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5oICovOyB9OwogCQk5M0ZE
QUZDQTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0
NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwOTYwLDggKzEwOTU4LDYgQEAKIAkJOTNGOUI2NTUwQkEw
RjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5QjZERTBCQTBGQjcyMDA4NTQwNjQgLyog
SlNDb21tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29t
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjlCNkRGMEJBMEZCNzIw
MDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNDb21tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjlCNzcyMEJBNUZE
REMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0VudGl0eVJlZmVyZW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTkzRjlCNzczMEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5j
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGl0eVJlZmVyZW5jZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQg
LyogSlNDREFUQVNlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNDREFUQVNlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5
Qjc5RjBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNDREFUQVNlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNGREFGQzkwQjExMzA3NDAwRTI3NDZGIC8qIEVkaXRvckluc2VydEFjdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDA0Nyw4ICsyMDA0Myw2IEBACiAJCQkJ
QkM2NDY0OTYxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9NU3RyaW5nTWFwLmggKi8sCiAJCQkJNjVE
RjMxRTUwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5jcHAgKi8sCiAJCQkJNjVERjMxRTYw
OUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5oICovLAotCQkJCTkzRjlCNzcyMEJBNUZEREMw
MDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5jcHAgKi8sCi0JCQkJOTNGOUI3NzMwQkE1RkRE
QzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi8sCiAJCQkJRkU4MERBNUYwRTlDNDcw
MzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwICovLAogCQkJCUZFODBEQTYwMEU5QzQ3MDMw
MDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggKi8sCiAJCQkJRkU4MERBNjEwRTlDNDcwMzAwMEQ2
Rjc1IC8qIEpTR2VvcG9zaXRpb24uY3BwICovLApAQCAtMjU1NzUsNyArMjU1NjksNiBAQAogCQkJ
CUZENzg2OEJBMTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTY1REYzMUZBMDlEMUNDNjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUFERUM3OEY4MThFRTUzMDgwMDEzMTVDMiAvKiBKU0VsZW1l
bnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAotCQkJCTkzRjlCNzc1MEJBNUZEREQwMDg1NDA2NCAv
KiBKU0VudGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVDRjdBREQxMDE2MkIz
ODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNENDYxNDkx
MTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NEU4Mzc4RTA5Rjg1RDRGMDBCODVBRTQgLyogSlNFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
OTEzNyw3ICsyOTEzMCw2IEBACiAJCQkJRkQ3ODY4QjkxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHlu
YW1pY3NDb21wcmVzc29yTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGOTA5RDFD
QzYwMDAwQkUzMjUgLyogSlNFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMkVENTU1
MEM2QjlCRDMwMDkyMEJGRiAvKiBKU0VsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJOTNGOUI3NzQwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJFQ0Y3QURDMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjNENDYxNDgxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJy
b3JIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RTgzNzg0MDlGODVEMUMwMEI4NUFF
NCAvKiBKU0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAKaW5kZXggNTljZjY4YzEyOTBh
N2FiMDI2ZTMxZTMyNjFiMDY4YTQzZDM2NjA5My4uYWNhMWY5OGFjOTk0ODkwYzcwMjg3NmIxYThj
ZWI3MGI5N2JmYWJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVj
dC9XZWJLaXRET01Qcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCkBAIC00Nyw3ICs0Nyw2IEBACiAjaW5jbHVkZSAiV2Vi
S2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRUeXBl
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUVsZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVk
ZSAiV2ViS2l0RE9NRW50aXR5UmVmZXJlbmNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERP
TUV2ZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUV2ZW50VGFyZ2V0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdERPTUZpbGVQcml2YXRlLmgiCkBAIC05Myw4ICs5Miw2IEBAIFdl
YktpdERPTU5vZGUqIHdyYXAoTm9kZSogbm9kZSkKICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01f
Tk9ERSh3cmFwVGV4dChkb3duY2FzdDxUZXh0Pihub2RlKSkpOwogICAgIGNhc2UgTm9kZTo6Q0RB
VEFfU0VDVElPTl9OT0RFOgogICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBDREFU
QVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpKTsKLSAgICBjYXNlIE5v
ZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9E
RSh3cmFwRW50aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUp
KSk7CiAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAg
IHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcFByb2Nlc3NpbmdJbnN0cnVjdGlvbihzdGF0aWNf
Y2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2RlKSkpOwogICAgIGNhc2UgTm9kZTo6Q09N
TUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAK
aW5kZXggZGVlZTY3NWE5MjUxMjEwNTRmMTcyMzI3ZTUzNmFhNGRmOGU1Zjc1OS4uNzNiMjEwYWE4
ZDFlYTA1Y2YxZTE5ZjVlNGYzNTFmMWUwNWViOTkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiRG9j
dW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVu
dGl0eS5oIgotI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKICNpbmNsdWRlICJIVE1MQXVkaW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENh
bnZhc0VsZW1lbnQuaCIKQEAgLTUxLDcgKzUwLDYgQEAKICNpbmNsdWRlICJKU0RvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiSlNEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudFR5
cGUuaCIKLSNpbmNsdWRlICJKU0VudGl0eVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkpTRXZlbnRM
aXN0ZW5lci5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxF
bGVtZW50V3JhcHBlckZhY3RvcnkuaCIKQEAgLTIwOSw5ICsyMDcsNiBAQCBzdGF0aWMgQUxXQVlT
X0lOTElORSBKU1ZhbHVlIGNyZWF0ZVdyYXBwZXJJbmxpbmUoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iagogI2VuZGlmCiAgICAgICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
V1JBUFBFUihnbG9iYWxPYmplY3QsIERvY3VtZW50RnJhZ21lbnQsIG5vZGUpOwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAg
ICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIEVudGl0
eVJlZmVyZW5jZSwgbm9kZSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoK
ICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBO
b2RlLCBub2RlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCmluZGV4IDhl
MWZiZTFmY2Q3YzM3YzQ2ZTkwYzMzY2MwNDQyMzRhMWFlNDg3ODIuLmU4Mzk2NWRiYzM0ZjIxYzNj
ZTMxMTYwZDQ3NWE2ZDI4MmNhM2ZiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1t
CkBAIC0zMTEsOCArMzExLDYgQEAgQ2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkK
ICAgICAgICAgICAgIHJldHVybiBbRE9NVGV4dCBjbGFzc107CiAgICAgICAgIGNhc2UgV2ViQ29y
ZTo6Tm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICAgICAgcmV0dXJuIFtET01DREFU
QVNlY3Rpb24gY2xhc3NdOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkVOVElUWV9SRUZF
UkVOQ0VfTk9ERToKLSAgICAgICAgICAgIHJldHVybiBbRE9NRW50aXR5UmVmZXJlbmNlIGNsYXNz
XTsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05P
REU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBjbGFzc107
CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6Q09NTUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3Bw
CmluZGV4IGFjN2I2NmY5OTcwNWQ4OTllZWNlM2MyODk0Zjg5ZTFmODA5ZDE1ZjguLjk2ZDdlZWQz
YjBmZjIxNTU5YWRjMzM1ZTIwYTRjNDU5ZGYyMWJkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAgLTE0
OCwxMyArMTQ4LDcgQEAgUmVmPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50
JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIC8vIERPTSBTZWN0aW9uIDEuMS4x
CiBib29sIEF0dHI6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBURVhUX05PREU6Ci0gICAgICAgIGNhc2Ug
RU5USVRZX1JFRkVSRU5DRV9OT0RFOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIHJldHVybiB0
eXBlID09IFRFWFRfTk9ERTsKIH0KIAogdm9pZCBBdHRyOjpjaGlsZHJlbkNoYW5nZWQoY29uc3Qg
Q2hpbGRDaGFuZ2UmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKaW5kZXggMTI0YzZkN2EyYWEyODY4MzBmY2JhMjk2Mjg4
ODhiNzIwMjI5OTI4Ni4uZjZmMzYyMDc3MTdhMzVjMmIyNDNmYWFhOTY1ZGMzYWI3MmYyNmJjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQXR0ci5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOwogCi0v
LyBBdHRyIGNhbiBoYXZlIFRleHQgYW5kIEVudGl0eVJlZmVyZW5jZSBjaGlsZHJlbgorLy8gQXR0
ciBjYW4gaGF2ZSBUZXh0IGNoaWxkcmVuCiAvLyB0aGVyZWZvcmUgaXQgaGFzIHRvIGJlIGEgZnVs
bGJsb3duIE5vZGUuIFRoZSBwbGFuCiAvLyBpcyB0byBkeW5hbWljYWxseSBhbGxvY2F0ZSBhIHRl
eHRjaGlsZCBhbmQgc3RvcmUgdGhlCiAvLyByZXN1bHRpbmcgbm9kZXZhbHVlIGluIHRoZSBhdHRy
aWJ1dGUgdXBvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGM5NjM0YjBj
ZTEwMDM0ZTkyYjVjNTE2ZTEzMmQwYzQzNDMxN2E1MGQuLjNmNGZlMGY4MDM3NGM4MzcwMDk5MGVk
NGI0NWE0YTlkMjE5NDliYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAg
LTE4MCw3ICsxODAsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRD
aGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogewogICAgIC8vIFVzZSBj
b21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUuCiAgICAgaWYgKChuZXdDaGlsZC5pc0Vs
ZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQuaXNUZXh0Tm9kZSgpKSAmJiBuZXdQYXJlbnQuaXNFbGVt
ZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkp
OwogICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAg
ICAgIEFTU0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpOwogICAg
ICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFy
ZW50KSkKQEAgLTE5Myw4ICsxOTIsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hl
Y2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogICAgIGlm
IChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9S
RVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSkKLSAgICAg
ICAgcmV0dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICBpZiAoY29udGFpbnND
b25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKICAgICAgICAgcmV0
dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIApAQCAtMjA5LDcgKzIwNiw2IEBAIHN0YXRpYyBp
bmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUmIG5ld1Bh
cmVudCwgTm9kZSYgbmV3CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3Vh
cmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxk
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlQoIW5ld1BhcmVudC5pc1JlYWRPbmx5
Tm9kZSgpKTsKICAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAg
ICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7CiAgICAg
aWYgKG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7CkBAIC01MjEsMTIgKzUxNyw2IEBA
IGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogCiAgICAgZWMgPSAwOwogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FMTE9X
RURfRVJSOiBSYWlzZWQgaWYgdGhpcyBub2RlIGlzIHJlYWRvbmx5LgotICAgIGlmIChpc1JlYWRP
bmx5Tm9kZSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFp
c2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZS4KICAgICBpZiAob2xk
Q2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJS
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDhkOWRjZDljMjQzYTdlNjcwZjVmMjdhZGY3
NTM0NzNlZjZiMjY0My4uYjkzZTA1MzU3MmNlOTEyMTc1YzNjM2VmYjkzYjllOTM1OTNkNmFmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC05MDksMTcgKzkwOSwxMCBAQCBSZWZQdHI8UHJv
Y2Vzc2luZ0luc3RydWN0aW9uPiBEb2N1bWVudDo6Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9u
KGNvbnN0IFN0cmluZwogICAgIHJldHVybiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNyZWF0ZSgq
dGhpcywgdGFyZ2V0LCBkYXRhKTsKIH0KIAotUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9jdW1l
bnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJl
ZmVyZW5jZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIWlz
VmFsaWROYW1lKG5hbWUpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9DSEFSQUNURVJfRVJSOwot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgaWYgKGlzSFRNTERvY3VtZW50KCkp
IHsKLSAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgfQotICAgIHJldHVybiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0ZSgqdGhpcywgbmFt
ZSk7CisgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAogUmVmPFRleHQ+IERvY3VtZW50OjpjcmVhdGVFZGl0aW5nVGV4dE5vZGUoY29uc3QgU3RyaW5n
JiB0ZXh0KQpAQCAtOTQ0LDcgKzkzNyw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6aW1wb3J0
Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wgZGVlcCwgRXhjZXB0aW9uQ29kZSYKICAgICBj
YXNlIEVMRU1FTlRfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIENEQVRBX1NF
Q1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFBS
T0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICBjYXNlIENPTU1FTlRfTk9ERToKICAgICBj
YXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC05NzQsMTEgKzk2Niw2IEBAIFJlZlB0cjxO
b2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNlcHRp
b25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKHNv
dXJjZS0+aXNSZWFkT25seU5vZGUoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCiAgICAgRXZlbnRR
dWV1ZVNjb3BlIHNjb3BlOwogCiAgICAgc3dpdGNoIChzb3VyY2UtPm5vZGVUeXBlKCkpIHsKQEAg
LTE3MTAsNTIgKzE2OTcsNTIgQEAgUmVmPFJhbmdlPiBEb2N1bWVudDo6Y3JlYXRlUmFuZ2UoKQog
ICAgIHJldHVybiBSYW5nZTo6Y3JlYXRlKCp0aGlzKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRv
cj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRp
dHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2RlSXRlcmF0b3I+IERv
Y3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0
VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywg
V1RGOjptb3ZlKGZpbHRlciksIGVjKTsKK30KKworUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1l
bnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJuIE5vZGVJdGVyYXRvcjo6Y3JlYXRlKHJvb3QsIHdo
YXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAg
ICByZXR1cm4gTm9kZUl0ZXJhdG9yOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3Zl
KGZpbHRlcikpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9k
ZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5v
ZGVGaWx0ZXI+JiYgZmlsdGVyLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2RlSXRlcmF0
b3I+IERvY3VtZW50OjpjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlTm9k
ZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBmYWxzZSwgZWMp
OworICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0
ciwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0
ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29k
ZSYgZWMpCitSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9y
KE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVOb2Rl
SXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1
cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIDB4RkZGRkZGRkYsIG51bGxwdHIsIGVjKTsKIH0K
IAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2Rl
KiByb290LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6
Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJl
ZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0g
ICAgcmV0dXJuIGNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBm
YWxzZSwgZWMpOworICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3cs
IFdURjo6bW92ZShmaWx0ZXIpLCBlYyk7CiB9CiAKLVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVu
dDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cs
IFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRl
VHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxO
b2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFyb290
KSB7CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9Ci0gICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6
Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7Ci19Ci0KLVJlZlB0cjxUcmVl
V2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29k
ZSYgZWMpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywg
V1RGOjptb3ZlKGZpbHRlciksIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNy
ZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSk7CiB9CiAKIFJlZlB0cjxU
cmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25l
ZCBsb25nIHdoYXRUb1Nob3csIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVh
dGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIG51bGxwdHIsIGZhbHNlLCBlYyk7CisgICAg
cmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZWMpOwog
fQogCiBSZWZQdHI8VHJlZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSog
cm9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIo
cm9vdCwgMHhGRkZGRkZGRiwgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRl
VHJlZVdhbGtlcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBlYyk7CiB9CiAKIHZvaWQgRG9j
dW1lbnQ6OnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKQpAQCAtMzM1Nyw3ICszMzQ0LDYgQEAg
Ym9vbCBEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAg
IGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfRlJBR01FTlRfTk9E
RToKICAgICBjYXNlIERPQ1VNRU5UX05PREU6Ci0gICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05P
REU6CiAgICAgY2FzZSBURVhUX05PREU6CiAgICAgY2FzZSBYUEFUSF9OQU1FU1BBQ0VfTk9ERToK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzM4NSw3ICszMzcxLDYgQEAgYm9vbCBEb2N1bWVu
dDo6Y2FuQWNjZXB0Q2hpbGQoY29uc3QgTm9kZSYgbmV3Q2hpbGQsIGNvbnN0IE5vZGUqIHJlZkNo
aWxkLCBBY2NlcHQKICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VD
VElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZF
UkVOQ0VfTk9ERToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIFhQQVRIX05BTUVTUEFD
RV9OT0RFOgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDNh
Yzk1MTc5MzlhYjRlZDY0YWNhMTQzMTcyNTcwMzBhOTEzNDI5ZWMuLjc4MWVmMjBiZDMzNzc5M2Nj
ODMzYzNjMWNhYmE1MGEwYzFiODhlMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01MzYsMTIg
KzUzNiwxMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8UmFuZ2U+IGNyZWF0
ZVJhbmdlKCk7CiAKLSAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3Io
Tm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4m
JiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVm
UHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNv
ZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3Jl
YXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVm
UHRyPE5vZGVGaWx0ZXI+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8Tm9kZUl0ZXJh
dG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9k
ZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFJlZlB0cjxUcmVl
V2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRv
U2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywg
RXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2Vy
KE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+
JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAgUmVm
UHRyPFRyZWVXYWxrZXI+IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fsa2Vy
PiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsCmluZGV4IDFjYzAwMDczY2MwNDk3NWYyOTcxZmZkZDAzZjBlNjVmMGY1MDk1
ZWIuLmYyNmVjZWY4NmJjMzNhNWZlNjI4MTY1YmQ0ZDQwNDg5NzVjZjVjNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbApAQCAtMzksNyArMzksMTAgQEAKICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQ
YXJhbWV0ZXJzLCBOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gUHJvY2Vzc2luZ0luc3RydWN0
aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlv
bmFsIERPTVN0cmluZyB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1V
bmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBkYXRhKTsKICAgICBbTmV3T2JqZWN0LCBSYWlz
ZXNFeGNlcHRpb25dIEF0dHIgY3JlYXRlQXR0cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0
aW9uYWwgRE9NU3RyaW5nIG5hbWUpOwotICAgIFtOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0g
RW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVsdD1VbmRlZmluZWRd
IG9wdGlvbmFsIERPTVN0cmluZyBuYW1lKTsKKworI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNU
SVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVD
VCkgJiYgTEFOR1VBR0VfR09CSkVDVAorICAgIFtSYWlzZXNFeGNlcHRpb25dIEVudGl0eVJlZmVy
ZW5jZSBjcmVhdGVFbnRpdHlSZWZlcmVuY2UoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBE
T01TdHJpbmcgbmFtZSk7CisjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZF
X0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgW0ltcGxlbWVudGVkQXM9Z2V0RWxlbWVu
dHNCeVRhZ05hbWVGb3JPYmpDXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShbRGVmYXVs
dD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB0YWduYW1lKTsKQEAgLTkyLDE0ICs5NSwy
MyBAQAogCiAgICAgLy8gRE9NIExldmVsIDIgVHJhbnZlcnNhbCBhbmQgUmFuZ2UgKERvY3VtZW50
VHJhdmVyc2FsIGludGVyZmFjZSkKIAotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMs
IFJhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBOb2RlSXRlcmF0b3IgY3JlYXRlTm9kZUl0ZXJh
dG9yKE5vZGUgcm9vdCwKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5H
VUFHRV9PQkpFQ1RJVkVfQyB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdVQUdF
X0dPQkpFQ1QKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRp
b25dIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAogICAgICAgICBv
cHRpb25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cgPSAweEZGRkZGRkZGLAogICAgICAgICBv
cHRpb25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIsCiAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gZXhw
YW5kRW50aXR5UmVmZXJlbmNlcyk7Ci0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywg
UmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3RdIFRyZWVXYWxrZXIgY3JlYXRlVHJlZVdhbGtlcihO
b2RlIHJvb3QsCisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0
aW9uXSBUcmVlV2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSByb290LAogICAgICAgICBvcHRp
b25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cgPSAweEZGRkZGRkZGLAogICAgICAgICBvcHRp
b25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIsCiAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gZXhwYW5k
RW50aXR5UmVmZXJlbmNlcyk7CisjZWxzZQorICAgIFtSYWlzZXNFeGNlcHRpb24sIE5ld09iamVj
dF0gTm9kZUl0ZXJhdG9yIGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlIHJvb3QsCisgICAgICAgIG9w
dGlvbmFsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCisgICAgICAgIG9w
dGlvbmFsIE5vZGVGaWx0ZXI/IGZpbHRlcik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbiwgTmV3T2Jq
ZWN0XSBUcmVlV2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSByb290LAorICAgICAgICBvcHRp
b25hbCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cgPSAweEZGRkZGRkZGLAorICAgICAgICBvcHRp
b25hbCBOb2RlRmlsdGVyPyBmaWx0ZXIpOworI2VuZGlmCiAKICAgICAvLyBET00gTGV2ZWwgMiBB
YnN0cmFjdCBWaWV3cyAoRG9jdW1lbnRWaWV3IGludGVyZmFjZSkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4IGY5YjM4YTBiZDI4ZThlM2M2MDkzNGFmZjFhNjAw
NTkyNzA5MDNmZWMuLmE2NzAwMmM0YmY5ODc0NGEyOTUzZjQ5ZTI2ZTYxYmEwY2FkMzcxYTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTYwLDcgKzYwLDYgQEAg
Ym9vbCBEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNv
bnN0CiAgICAgICAgIGNhc2UgQ09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIFRFWFRfTk9ERToK
ICAgICAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgICAgIGNhc2UgRU5USVRZX1JF
RkVSRU5DRV9OT0RFOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYmQz
MDc0ZDFlODM3NGIwYjc3N2I2ZTcwNDNiNDc5YmI1Njg0NmU1NC4uNThmYzgwNDY3ODI0MmY0ZGRi
NjI2Y2JhYTY5ODQ4MGYxYTQ4ZmNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTc1NSw3
ICsxNzU1LDYgQEAgYm9vbCBFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUp
IGNvbnN0CiAgICAgY2FzZSBDT01NRU5UX05PREU6CiAgICAgY2FzZSBQUk9DRVNTSU5HX0lOU1RS
VUNUSU9OX05PREU6CiAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgY2FzZSBFTlRJ
VFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVy
ZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcAppbmRleCA3
ZTkxYTQ2MmRhODIwOWQ5MjJjNDVkYzg0YzQxYTA4NTVhZDZiZTFhLi5lNTgyNGYxMDhiYjZmNTQz
YjVhMDc2N2FmZTFmYTg0YTJkNDgxZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RW50aXR5UmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJl
bmNlLmNwcApAQCAtMjUsMzAgKzI1LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxp
bmUgRW50aXR5UmVmZXJlbmNlOjpFbnRpdHlSZWZlcmVuY2UoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdHJpbmcmIGVudGl0eU5hbWUpCitpbmxpbmUgRW50aXR5UmVmZXJlbmNlOjpFbnRpdHlS
ZWZlcmVuY2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmKQogICAgIDogQ29udGFp
bmVyTm9kZShkb2N1bWVudCkKLSAgICAsIG1fZW50aXR5TmFtZShlbnRpdHlOYW1lKQogewogfQog
Ci1SZWY8RW50aXR5UmVmZXJlbmNlPiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZW50aXR5TmFtZSkKLXsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBFbnRpdHlSZWZlcmVuY2UoZG9jdW1lbnQsIGVudGl0eU5hbWUpKTsKLX0KLQotU3Ry
aW5nIEVudGl0eVJlZmVyZW5jZTo6bm9kZU5hbWUoKSBjb25zdAotewotICAgIHJldHVybiBtX2Vu
dGl0eU5hbWU7Ci19Ci0KLU5vZGU6Ok5vZGVUeXBlIEVudGl0eVJlZmVyZW5jZTo6bm9kZVR5cGUo
KSBjb25zdAotewotICAgIHJldHVybiBFTlRJVFlfUkVGRVJFTkNFX05PREU7Ci19Ci0KLVJlZjxO
b2RlPiBFbnRpdHlSZWZlcmVuY2U6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXRE
b2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKLXsKLSAgICByZXR1cm4gY3JlYXRlKHRhcmdldERv
Y3VtZW50LCBtX2VudGl0eU5hbWUpOwotfQotCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VudGl0eVJlZmVyZW5jZS5oCmluZGV4IDg2ZGZlYjM5ODI1YjM0NTBlNzUzNTkyNTA2ODUxMTBi
M2FmMGNhOGYuLjE4YzJlYzFhZmNlNTcwZTgwZTg2NWEwODQ1YmFiZDg4NjZmOTYxMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKQEAgLTI2LDE4ICsyNiw5IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRW50aXR5UmVmZXJlbmNlIGZpbmFsIDogcHVibGljIENv
bnRhaW5lck5vZGUgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8RW50aXR5UmVmZXJlbmNlPiBj
cmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGVudGl0eU5hbWUpOwotCitjbGFzcyBFbnRp
dHlSZWZlcmVuY2UgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7CiBwcml2YXRlOgogICAgIEVudGl0
eVJlZmVyZW5jZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgZW50aXR5TmFtZSk7Ci0KLSAgICB2
aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgTm9k
ZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZjxOb2RlPiBj
bG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwot
Ci0gICAgU3RyaW5nIG1fZW50aXR5TmFtZTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKaW5kZXggNmQwNTM1ZjliYzFkYWE3OTE3ODMxZWZk
YmU2YWJkMDdhZTliN2RiYS4uZWZmOTVhMDNlM2E0ZTJmZDM2YjJlMjE4YzYwOTY0ODM4Y2M2ZTdm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKQEAgLTE3LDggKzE3LDEy
IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MgfHwgZGVmaW5lZChM
QU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNUCisKIFsKKyAgICBOb0ludGVyZmFj
ZU9iamVjdCwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAogXSBpbnRlcmZhY2UgRW50aXR5UmVm
ZXJlbmNlIDogTm9kZSB7CiB9OwogCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA0MzYyZDY1
NmRjNDdmZDY0MzM1YjQ2ODYxNGJlNzM2NTg4MTMwMmJhLi5kZWYyNGNlNjcwOTU1NjY0YmNiYTEz
NTA0NzE2ZmM0MTdjYWY2MzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMDMsNyArMTAzLDYgQEAg
dm9pZCBOb2RlOjpkdW1wU3RhdGlzdGljcygpCiAgICAgc2l6ZV90IHRleHROb2RlcyA9IDA7CiAg
ICAgc2l6ZV90IGNkYXRhTm9kZXMgPSAwOwogICAgIHNpemVfdCBjb21tZW50Tm9kZXMgPSAwOwot
ICAgIHNpemVfdCBlbnRpdHlSZWZlcmVuY2VOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGVudGl0eU5v
ZGVzID0gMDsKICAgICBzaXplX3QgcGlOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGRvY3VtZW50Tm9k
ZXMgPSAwOwpAQCAtMTY4LDEwICsxNjcsNiBAQCB2b2lkIE5vZGU6OmR1bXBTdGF0aXN0aWNzKCkK
ICAgICAgICAgICAgICAgICArK2NvbW1lbnROb2RlczsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOiB7
Ci0gICAgICAgICAgICAgICAgKytlbnRpdHlSZWZlcmVuY2VOb2RlczsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgRU5USVRZX05PREU6IHsK
ICAgICAgICAgICAgICAgICArK2VudGl0eU5vZGVzOwogICAgICAgICAgICAgICAgIGJyZWFrOwpA
QCAtMjExLDcgKzIwNiw2IEBAIHZvaWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgIHByaW50
ZigiICBOdW1iZXIgb2YgVGV4dCBub2RlczogJXp1XG4iLCB0ZXh0Tm9kZXMpOwogICAgIHByaW50
ZigiICBOdW1iZXIgb2YgQ0RBVEFTZWN0aW9uIG5vZGVzOiAlenVcbiIsIGNkYXRhTm9kZXMpOwog
ICAgIHByaW50ZigiICBOdW1iZXIgb2YgQ29tbWVudCBub2RlczogJXp1XG4iLCBjb21tZW50Tm9k
ZXMpOwotICAgIHByaW50ZigiICBOdW1iZXIgb2YgRW50aXR5UmVmZXJlbmNlIG5vZGVzOiAlenVc
biIsIGVudGl0eVJlZmVyZW5jZU5vZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIEVudGl0
eSBub2RlczogJXp1XG4iLCBlbnRpdHlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbm9kZXM6ICV6dVxuIiwgcGlOb2Rlcyk7CiAgICAgcHJpbnRm
KCIgIE51bWJlciBvZiBEb2N1bWVudCBub2RlczogJXp1XG4iLCBkb2N1bWVudE5vZGVzKTsKQEAg
LTM4NCwxNCArMzc4LDggQEAgU3RyaW5nIE5vZGU6Om5vZGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0
dXJuIFN0cmluZygpOwogfQogCi12b2lkIE5vZGU6OnNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcm
IC8qbm9kZVZhbHVlKi8sIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBOb2RlOjpzZXROb2RlVmFs
dWUoY29uc3QgU3RyaW5nJiAvKm5vZGVWYWx1ZSovLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICAv
LyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJhaXNlZCB3aGVuIHRoZSBub2RlIGlzIHJl
YWRvbmx5Ci0gICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBC
eSBkZWZhdWx0LCBzZXR0aW5nIG5vZGVWYWx1ZSBoYXMgbm8gZWZmZWN0LgogfQogCkBAIC04OTAs
MTEgKzg3OCw2IEBAIHZvaWQgTm9kZTo6Y2hlY2tTZXRQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5n
JiBwcmVmaXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKGlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05f
QUxMT1dFRF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBGSVhNRTogUmFp
c2UgTkFNRVNQQUNFX0VSUiBpZiBwcmVmaXggaXMgbWFsZm9ybWVkIHBlciB0aGUgTmFtZXNwYWNl
cyBpbiBYTUwgc3BlY2lmaWNhdGlvbi4KIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbm9kZU5h
bWVzcGFjZVVSSSA9IG5hbWVzcGFjZVVSSSgpOwpAQCAtMTQyMiw3ICsxNDA1LDYgQEAgc3RhdGlj
IHZvaWQgYXBwZW5kVGV4dENvbnRlbnQoY29uc3QgTm9kZSogbm9kZSwgYm9vbCBjb252ZXJ0QlJz
VG9OZXdsaW5lcywgYm9vbCYKICAgICAgICAgfQogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBj
YXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5D
RV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAg
aXNOdWxsU3RyaW5nID0gZmFsc2U7CiAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CkBAIC0x
NDU4LDcgKzE0NDAsNiBAQCB2b2lkIE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYg
dGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNh
c2UgRUxFTUVOVF9OT0RFOgogICAgICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgotICAgICAgICBj
YXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVO
VF9OT0RFOiB7CiAgICAgICAgICAgICBSZWY8Q29udGFpbmVyTm9kZT4gY29udGFpbmVyKGRvd25j
YXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKSk7CiAgICAgICAgICAgICBDaGlsZExpc3RNdXRhdGlv
blNjb3BlIG11dGF0aW9uKGNvbnRhaW5lcik7CkBAIC0xNDc4LDcgKzE0NTksNiBAQCB2b2lkIE5v
ZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAKIEVsZW1lbnQqIE5vZGU6OmFuY2VzdG9yRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgLy8gSW4g
dGhlb3J5LCB0aGVyZSBjYW4gYmUgRW50aXR5UmVmZXJlbmNlIG5vZGVzIGJldHdlZW4gZWxlbWVu
dHMsIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLgogICAgIGZvciAoQ29udGFp
bmVyTm9kZSogYW5jZXN0b3IgPSBwYXJlbnROb2RlKCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFu
Y2VzdG9yLT5wYXJlbnROb2RlKCkpIHsKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCphbmNlc3Rv
cikpCiAgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8RWxlbWVudD4oYW5jZXN0b3IpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgKaW5kZXggMDRlMzhkMjViNDNiNDBmYmQ1YjM2NGNmNDMzZTc3YzNjMTA3MzVjNC4uYTJm
YzQzODg5NDBlMjJjZjc1YmY1OTViNzQ4OWRkODM5MmQ1MDFkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0x
MjUsNyArMTI1LDYgQEAgcHVibGljOgogICAgICAgICBBVFRSSUJVVEVfTk9ERSA9IDIsCiAgICAg
ICAgIFRFWFRfTk9ERSA9IDMsCiAgICAgICAgIENEQVRBX1NFQ1RJT05fTk9ERSA9IDQsCi0gICAg
ICAgIEVOVElUWV9SRUZFUkVOQ0VfTk9ERSA9IDUsCiAgICAgICAgIFBST0NFU1NJTkdfSU5TVFJV
Q1RJT05fTk9ERSA9IDcsCiAgICAgICAgIENPTU1FTlRfTk9ERSA9IDgsCiAgICAgICAgIERPQ1VN
RU5UX05PREUgPSA5LApAQCAtMTM0LDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgWFBBVEhf
TkFNRVNQQUNFX05PREUgPSAxMywKICAgICB9OwogICAgIGVudW0gRGVwcmVjYXRlZE5vZGVUeXBl
IHsKKyAgICAgICAgRU5USVRZX1JFRkVSRU5DRV9OT0RFID0gNSwKICAgICAgICAgRU5USVRZX05P
REUgPSA2LAogICAgICAgICBOT1RBVElPTl9OT0RFID0gMTIsCiAgICAgfTsKQEAgLTQxNyw3ICs0
MTcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luU2hhZG93VHJlZSgpIGNvbnN0IHsgcmV0dXJu
IGdldEZsYWcoSXNJblNoYWRvd1RyZWVGbGFnKTsgfQogICAgIGJvb2wgaXNJblRyZWVTY29wZSgp
IGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoc3RhdGljX2Nhc3Q8Tm9kZUZsYWdzPihJbkRvY3VtZW50
RmxhZyB8IElzSW5TaGFkb3dUcmVlRmxhZykpOyB9CiAKLSAgICBib29sIGlzUmVhZE9ubHlOb2Rl
KCkgY29uc3QgeyByZXR1cm4gbm9kZVR5cGUoKSA9PSBFTlRJVFlfUkVGRVJFTkNFX05PREU7IH0K
ICAgICBib29sIGlzRG9jdW1lbnRUeXBlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG5vZGVUeXBlKCkg
PT0gRE9DVU1FTlRfVFlQRV9OT0RFOyB9CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93
ZWQoTm9kZVR5cGUpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdW5zaWduZWQgY291bnRD
aGlsZE5vZGVzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0
ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IDQ4
YTBhMTkyYTdiZWUwY2ZmMjA5ZDVlYTRkODljOWMzMWEwNGM3MDkuLmRhOWQwMjNiMjVlOGY5ZjJi
ZjU3YWM4ODEwMzhkNzI1ZDVlMWM2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3Bw
CkBAIC03Niw4ICs3Niw4IEBAIGJvb2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRv
UHJldmlvdXMoTm9kZSogcm9vdCkKICAgICByZXR1cm4gbm9kZTsKIH0KIAotTm9kZUl0ZXJhdG9y
OjpOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3
aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3cs
IFdURjo6bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9y
OjpOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3
aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCisgICAgOiBOb2RlSXRlcmF0
b3JCYXNlKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkKICAgICAsIG1f
cmVmZXJlbmNlTm9kZShyb290KCksIHRydWUpCiB7CiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmF0
dGFjaE5vZGVJdGVyYXRvcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAppbmRleCA5
NzE5Mjc0YTNkYTFiOTc1NDA2YWE3MWNjNWU5ZWFlNWYzYzdkMzM1Li40ZjE1MDdkZTAzYWMzMDNl
NWYxODBiMzMxMTI2ODA3NGM2OTgwODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCkBA
IC0zNyw5ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE5vZGVJdGVy
YXRvciA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPE5vZGVJdGVy
YXRvcj4sIHB1YmxpYyBOb2RlSXRlcmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0
YXRpYyBSZWY8Tm9kZUl0ZXJhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJv
b2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKKyAgICAgICAgc3RhdGljIFJlZjxOb2RlSXRlcmF0
b3I+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRU
b1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93
LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93
LCBXVEY6Om1vdmUoZmlsdGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIH5Ob2RlSXRlcmF0b3Io
KTsKIApAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQg
bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTm9kZUl0
ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRy
PE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIE5v
ZGVJdGVyYXRvcihQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJl
ZlB0cjxOb2RlRmlsdGVyPiYmKTsKIAogICAgICAgICBzdHJ1Y3QgTm9kZVBvaW50ZXIgewogICAg
ICAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZUl0ZXJhdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRs
CmluZGV4IDEyMDI1ZGU2YjhiNDk0NzNlZmQ3Zjc4NDAxMWY0MWY3NjEzMDdiNjcuLjIzMTEyZDk5
NDNmNTkzMzdhZmYxNWRhY2M3YzFlZTViN2E1Zjc5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRl
cmF0b3IuaWRsCkBAIC0yNiw3ICsyNiw5IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUg
cm9vdDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93Owog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlRmlsdGVyIGZpbHRlcjsKKyNpZiBkZWZpbmVkKExB
TkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXM7CisjZW5kaWYKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByZWZlcmVuY2VOb2RlOwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIHBvaW50ZXJCZWZvcmVSZWZlcmVuY2VOb2RlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNw
cAppbmRleCAwYWY3YTE3YWQxZGE3MjA3MDUwMGJlN2NmM2E5ZGZiOTgxZjljYzMwLi40MWJlMzNl
Y2Y1MGQzNGZkYjI5NzMzMzgwYzVmMTVhMTI5YjYxY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAg
LTQ4OSwxMCArNDg5LDYgQEAgYm9vbCBSYW5nZTo6Ym91bmRhcnlQb2ludHNWYWxpZCgpIGNvbnN0
CiAKIHZvaWQgUmFuZ2U6OmRlbGV0ZUNvbnRlbnRzKEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IGNoZWNrRGVsZXRlRXh0cmFjdChlYyk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm47Ci0K
ICAgICBwcm9jZXNzQ29udGVudHMoRGVsZXRlLCBlYyk7CiB9CiAKQEAgLTU3Miw3ICs1NjgsNiBA
QCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxlbmd0aE9mQ29udGVudHNJbk5vZGUoTm9kZSogbm9k
ZSkKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENoYXJhY3RlckRhdGE+KCpub2RlKS5sZW5ndGgo
KTsKICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVU
RV9OT0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToK
ICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC03MzMsNyArNzI4LDYg
QEAgUmVmUHRyPE5vZGU+IFJhbmdlOjpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rp
b25UeXBlIGFjdGlvbiwgUGFzc1JlZlB0cjwKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2Rl
OjpFTEVNRU5UX05PREU6CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNl
IE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05P
REU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgY2FzZSBOb2RlOjpE
T0NVTUVOVF9GUkFHTUVOVF9OT0RFOgpAQCAtODM5LDEwICs4MzMsNiBAQCBSZWZQdHI8Tm9kZT4g
UmFuZ2U6OnByb2Nlc3NBbmNlc3RvcnNBbmRUaGVpclNpYmxpbmdzKEFjdGlvblR5cGUgYWN0aW9u
LCBOb2RlKiBjbwogCiBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUmFuZ2U6OmV4dHJhY3RDb250
ZW50cyhFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBjaGVja0RlbGV0ZUV4dHJhY3QoZWMpOwot
ICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gcHJvY2Vz
c0NvbnRlbnRzKEV4dHJhY3QsIGVjKTsKIH0KIApAQCAtODYxLDEzICs4NTEsNiBAQCB2b2lkIFJh
bmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05f
QUxMT1dFRF9FUlI6IFJhaXNlZCBpZiBhbiBhbmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVyIGJv
dW5kYXJ5LXBvaW50IG9mCi0gICAgLy8gdGhlIFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBpZiAo
Y29udGFpbmVkQnlSZWFkT25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gSElFUkFSQ0hZX1JF
UVVFU1RfRVJSOiBSYWlzZWQgaWYgdGhlIGNvbnRhaW5lciBvZiB0aGUgc3RhcnQgb2YgdGhlIFJh
bmdlIGlzIG9mIGEgdHlwZSB0aGF0CiAgICAgLy8gZG9lcyBub3QgYWxsb3cgY2hpbGRyZW4gb2Yg
dGhlIHR5cGUgb2YgbmV3Tm9kZSBvciBpZiBuZXdOb2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBj
b250YWluZXIuCiAKQEAgLTEwMjcsNyArMTAxMCw2IEBAIE5vZGUqIFJhbmdlOjpjaGVja05vZGVX
T2Zmc2V0KE5vZGUqIG4sIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAg
ICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAg
ICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6
OlhQQVRIX05BTUVTUEFDRV9OT0RFOiB7CiAgICAgICAgICAgICBpZiAoIW9mZnNldCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTEwNTcsNyArMTAzOSw2IEBAIHZvaWQgUmFu
Z2U6OmNoZWNrTm9kZUJBKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAg
ICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9U
WVBFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNl
IE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNT
SU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAg
ICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTA3Nyw3ICsxMDU4LDYg
QEAgdm9pZCBSYW5nZTo6Y2hlY2tOb2RlQkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNv
bnN0CiAgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6
OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0g
ICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5v
ZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhU
X05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTU0
LDcgKzExMzQsNiBAQCB2b2lkIFJhbmdlOjpzZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9O
T0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAg
Y2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9S
RUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVD
VElPTl9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAg
ICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTE3MCw3ICsxMTQ5LDYgQEAg
dm9pZCBSYW5nZTo6c2VsZWN0Tm9kZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykK
ICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9D
VU1FTlRfVFlQRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAg
ICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6
UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9E
RToKICAgICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyMDksNyAr
MTE4Nyw2IEBAIHZvaWQgUmFuZ2U6OnNlbGVjdE5vZGVDb250ZW50cyhOb2RlKiByZWZOb2RlLCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01F
TlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAg
ICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJ
VFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5T
VFJVQ1RJT05fTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAg
ICAgICAgY2FzZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyNDgsMjAgKzEyMjUs
MTIgQEAgdm9pZCBSYW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NO
ZXdQYXJlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NF
Q1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNh
c2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVO
Q0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6
CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRI
X05BTUVTUEFDRV9OT0RFOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgLy8gTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVy
IG9mIGVpdGhlciBib3VuZGFyeS1wb2ludCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9u
bHkuCi0gICAgaWYgKGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8v
IFJhaXNlIGEgSElFUkFSQ0hZX1JFUVVFU1RfRVJSIGlmIHN0YXJ0Q29udGFpbmVyKCkgZG9lc24n
dCBhY2NlcHQgY2hpbGRyZW4gbGlrZSBuZXdQYXJlbnQuCiAgICAgTm9kZSogcGFyZW50T2ZOZXdQ
YXJlbnQgPSAmc3RhcnRDb250YWluZXIoKTsKIApAQCAtMTMyOSwzOSArMTI5OCw2IEBAIHZvaWQg
UmFuZ2U6OnNldFN0YXJ0QmVmb3JlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgIHNldFN0YXJ0KHJlZk5vZGUtPnBhcmVudE5vZGUoKSwgcmVmTm9kZS0+Y29tcHV0ZU5vZGVJ
bmRleCgpLCBlYyk7CiB9CiAKLXZvaWQgUmFuZ2U6OmNoZWNrRGVsZXRlRXh0cmFjdChFeGNlcHRp
b25Db2RlJiBlYykKLXsKLSAgICBlYyA9IDA7Ci0gICAgaWYgKCFjb21tb25BbmNlc3RvckNvbnRh
aW5lcigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBOb2RlKiBwYXN0TGFzdCA9IHBhc3RMYXN0
Tm9kZSgpOwotICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Tm9kZSgpOyBuICE9IHBhc3RMYXN0OyBu
ID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbikpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlO
b2RlKCkpIHsKLSAgICAgICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGNvbnRhaW5l
ZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQotYm9vbCBSYW5nZTo6Y29udGFpbmVkQnlS
ZWFkT25seSgpIGNvbnN0Ci17Ci0gICAgZm9yIChOb2RlKiBuID0gJnN0YXJ0Q29udGFpbmVyKCk7
IG47IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2Rl
KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgZm9yIChOb2RlKiBuID0g
JmVuZENvbnRhaW5lcigpOyBuOyBuID0gbi0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgIGlmIChu
LT5pc1JlYWRPbmx5Tm9kZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAg
IHJldHVybiBmYWxzZTsKLX0KLQogTm9kZSogUmFuZ2U6OmZpcnN0Tm9kZSgpIGNvbnN0CiB7CiAg
ICAgaWYgKHN0YXJ0Q29udGFpbmVyKCkub2Zmc2V0SW5DaGFyYWN0ZXJzKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5o
CmluZGV4IDI0YTFlMjZkMmNiMTFmYTRlODE3ZGU5ZDBlY2U0NDI1NjA3NWZhMDEuLjc3NzMzZjZj
MmI3NTRhOTEwYzJkMDNjMTI3NDFlM2Y5M2I5MzI3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC0xNjEs
MTAgKzE2MSw4IEBAIHByaXZhdGU6CiAKICAgICBOb2RlKiBjaGVja05vZGVXT2Zmc2V0KE5vZGUq
LCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCBjaGVja05vZGVC
QShOb2RlKiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwotICAgIGJvb2wgY29udGFpbmVkQnlSZWFk
T25seSgpIGNvbnN0OwogCiAgICAgZW51bSBBY3Rpb25UeXBlIHsgRGVsZXRlLCBFeHRyYWN0LCBD
bG9uZSB9OwotICAgIHZvaWQgY2hlY2tEZWxldGVFeHRyYWN0KEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gcHJvY2Vzc0NvbnRlbnRzKEFjdGlvblR5cGUsIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBzdGF0aWMgUmVmUHRyPE5vZGU+IHByb2Nlc3NDb250ZW50c0Jl
dHdlZW5PZmZzZXRzKEFjdGlvblR5cGUsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIE5v
ZGUqLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBFeGNlcHRpb25D
b2RlJik7CiAgICAgc3RhdGljIHZvaWQgcHJvY2Vzc05vZGVzKEFjdGlvblR5cGUsIFZlY3RvcjxS
ZWZQdHI8Tm9kZT4+JiwgUGFzc1JlZlB0cjxOb2RlPiBvbGRDb250YWluZXIsIFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Q29udGFpbmVyLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5jcHAKaW5kZXggMDRjZWY1Y2ExZDE0ODM3YjI3YWY3Zjc0MjlkNjdkMmZjYjcwZjM4Ni4uNDU1
NDdmZWIyNGUyYmJjNTEyYzUyNGRmM2UzNjI3ZWQyZWVmMDc0NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcApAQCAtMTA5LDcgKzEwOSw2IEBAIGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBl
QWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09NTUVOVF9OT0RFOgogICAg
IGNhc2UgVEVYVF9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgIGNhc2Ug
RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0
OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCmluZGV4IDc0
YTkyOGY3Y2MwMjliNmYzM2NmZGNlNTFhMWYyYTNhMzFmZWRiNTIuLjNjNGE5NTViMTExMDZjZGEy
MjI4NWE5ZjUyNzE3MDdiMWQ5Yzc3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCkBAIC0z
MCwxOCArMzAsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Ob2RlSXRlcmF0b3JCYXNl
OjpOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZpbHRlciwgYm9vbCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQ
YXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0
cjxOb2RlRmlsdGVyPiYmIG5vZGVGaWx0ZXIpCiAgICAgOiBtX3Jvb3Qocm9vdE5vZGUpCiAgICAg
LCBtX3doYXRUb1Nob3cod2hhdFRvU2hvdykKICAgICAsIG1fZmlsdGVyKFdURjo6bW92ZShub2Rl
RmlsdGVyKSkKLSAgICAsIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlcyhleHBhbmRFbnRpdHlSZWZl
cmVuY2VzKQogewogfQogCiBzaG9ydCBOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2RlKE5vZGUq
IG5vZGUpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IFRvIGhhbmRsZSBYTUwgcHJvcGVybHkgd2Ug
d291bGQgaGF2ZSB0byBjaGVjayBtX2V4cGFuZEVudGl0eVJlZmVyZW5jZXMuCi0KICAgICAvLyBU
aGUgYml0IHR3aWRkbGluZyBoZXJlIGlzIGRvbmUgdG8gbWFwIERPTSBub2RlIHR5cGVzLCB3aGlj
aCBhcmUgZ2l2ZW4gYXMgaW50ZWdlcnMgZnJvbQogICAgIC8vIDEgdGhyb3VnaCAxNCwgdG8gd2hh
dFRvU2hvdyBiaXQgbWFza3MuCiAgICAgaWYgKCEoKCgxIDw8IChub2RlLT5ub2RlVHlwZSgpIC0g
MSkpICYgbV93aGF0VG9TaG93KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJh
dmVyc2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgKaW5kZXggZWQ2ZThkZGJk
MGMyNjYxNWUzMzdhMmU0MmM5YjlkOTM1OGY4ZmRkYS4uZmZiZDU0OWIxZGU4NDg2MDQzZWU0ZDBi
NDIwYTdkZGNhNzQ4ZmE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNh
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaApAQCAtMzgsMTcgKzM4LDE2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9kZSogcm9vdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcm9vdC5nZXQoKTsgfQogICAgICAgICB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3coKSBj
b25zdCB7IHJldHVybiBtX3doYXRUb1Nob3c7IH0KICAgICAgICAgTm9kZUZpbHRlciogZmlsdGVy
KCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXIuZ2V0KCk7IH0KLSAgICAgICAgYm9vbCBleHBhbmRF
bnRpdHlSZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbmRFbnRpdHlSZWZlcmVuY2Vz
OyB9CisgICAgICAgIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIE5vZGVJdGVyYXRvckJhc2UoUGFz
c1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRl
cj4mJiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAgICAgTm9kZUl0ZXJhdG9y
QmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxO
b2RlRmlsdGVyPiYmKTsKICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7CiAK
ICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290OwogICAgICAgICB1bnNp
Z25lZCBsb25nIG1fd2hhdFRvU2hvdzsKICAgICAgICAgUmVmUHRyPE5vZGVGaWx0ZXI+IG1fZmls
dGVyOwotICAgICAgICBib29sIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKICAgICB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKaW5kZXggYWQw
YWNlMTk5YjdkYTY5ZWVjYjIwNDNhMjhjOWVmNDRmYzA2M2Q0Ni4uODc3NDgyYWZmNDdhM2M1NDM0
YWY3NTMyZTZkYzA1M2QxNTEzY2QxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcApAQCAt
MzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRyZWVXYWxrZXI6OlRyZWVX
YWxrZXIoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93
LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNl
cykKLSAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92
ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorVHJlZVdhbGtlcjo6VHJlZVdhbGtl
cihQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJl
ZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlcikKKyAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5v
ZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpKQogICAgICwgbV9jdXJyZW50KHJvb3Qo
KSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCmluZGV4IGJmNjliZGVjZTA5OWJjZDE0ZGJh
ZmQ1OGYwMTdjZmJkODdiNTE1NjMuLjIyOGYyM2Q0NzQ2YTIxNTliYjUwYmY2YWE2Mjc4OGI3MzM2
NGZiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUcmVlV2Fsa2VyIDogcHVibGljIFNjcmlwdFdyYXBw
YWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8VHJlZVdhbGtlcj4sIHB1YmxpYyBOb2RlSXRlcmF0b3JC
YXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRl
KFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVm
UHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCisg
ICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9v
dE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmls
dGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUcmVlV2Fs
a2VyKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHJlZVdhbGtl
cihyb290Tm9kZSwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpKTsKICAgICAgICAgfSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICBOb2RlKiBjdXJyZW50Tm9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQpAQCAtNTQsNyArNTQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUqIG5leHROb2RlKCk7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hh
dFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNl
cyk7CisgICAgICAgIFRyZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3
aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAgIAogICAgICAgICBOb2Rl
KiBzZXRDdXJyZW50KFBhc3NSZWZQdHI8Tm9kZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5p
ZGwKaW5kZXggNDgwOWVlM2Q0ZjFkMWZkNDA4NWUxYTExOTczYThkZjQwMjBlNDcxNS4uYWQ1Y2I1
ZDY0MDMxMGY4YzAzODk2MWY1MTMyZDViZGRkMjM2NmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fs
a2VyLmlkbApAQCAtMjYsNyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJv
b3Q7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdzsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7Ci0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAgICAgIAorI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKKyNlbmRpZgog
ICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2RlIGN1cnJlbnROb2RlOwog
CiAgICAgTm9kZSBwYXJlbnROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3Vw
QWNjdW11bGF0b3IuY3BwCmluZGV4IDgzNDU1NzIwNDk2YTBkMTBkZDA2ZmMwZWE0ZWViZjQzOGNi
NGVjMjYuLjcxMmFiZmFmOGNlY2NjOGYyNzc2ZWE1MDU4NmRjM2EwMTBhY2Y1N2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC01NzMsNyArNTcz
LDYgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXAoU3RyaW5nQnVp
bGRlciYgcmVzdWx0LCBjb25zdCBOb2RlJiBub2QKICAgICAgICAgYXBwZW5kQ0RBVEFTZWN0aW9u
KHJlc3VsdCwgZG93bmNhc3Q8Q0RBVEFTZWN0aW9uPihub2RlKS5kYXRhKCkpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9kZTo6RU5U
SVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFV0aWwuY3BwIGIvU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoVXRpbC5jcHAKaW5kZXggNmY2NjRkODQwMWZmNzE3MDUyNjg2MDNlMDQxZWJmNzdiNThm
M2M0NC4uYmVhZGI0ZGYyMGZlOGU0NDBhMjUzNGMyMTk0Y2M4ODdhNjQ3NjY5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hQYXRoVXRpbC5jcHAKQEAgLTcxLDcgKzcxLDYgQEAgYm9vbCBpc1ZhbGlkQ29udGV4dE5v
ZGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIE5v
ZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
VFlQRV9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAg
ICAgICAgICAgICByZXR1cm4gIShub2RlLT5wYXJlbnROb2RlKCkgJiYgbm9kZS0+cGFyZW50Tm9k
ZSgpLT5pc0F0dHJpYnV0ZU5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMu
bW0KaW5kZXggZTVjNmYwMmZjOGRjODExMDg4ODNlYWI3NTAyYzUyMzg4OGZlN2VlMy4uZDU3ZGZj
ZDNlYmEwZDI3NTQ2OTUxZmVmNGU0ODA0ZGJhMjI3ZTg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9X
S0RPTUludGVybmFscy5tbQpAQCAtNzYsNyArNzYsNiBAQCBzdGF0aWMgQ2xhc3MgV0tET01Ob2Rl
Q2xhc3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKICAgICAgICAgcmV0dXJuIFtXS0RPTVRleHQgY2xh
c3NdOwogICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6QVRUUklCVVRFX05PREU6CiAgICAgY2FzZSBX
ZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgY2FzZSBXZWJDb3JlOjpOb2Rl
OjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9DRVNT
SU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDT01NRU5UX05P
REU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5k
ZXggODcxMDVhOGI2Y2Y2ZGE5OTkwMWMxMWQ3YWJhMDRhZmVkMmVmODNkMS4uODYzYTg1NGU5NmU0
ZmIyNWM0ZjQwOGE0NTZmMjFjZmI4OTllNGIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjMyNCwxMSArMjMyNCwx
MSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBc3Npc3RhYmxlRWxlbWVudChFbGVtZW50JiBub2Rl
KQogICAgIGlmIChpczxIVE1MU2VsZWN0RWxlbWVudD4obm9kZSkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIGlmIChpczxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKSkKLSAgICAgICAgcmV0
dXJuICFkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKS5pc1JlYWRPbmx5Tm9kZSgp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4obm9k
ZSkpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8
SFRNTElucHV0RWxlbWVudD4obm9kZSk7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGxhdW5kcnkg
bGlzdCBvZiB0eXBlcyBpcyBub3QgYSBnb29kIHdheSB0byBmYWN0b3IgdGhpcy4gTmVlZCBhIHN1
aXRhYmxlIGZ1bmN0aW9uIG9uIEhUTUxJbnB1dEVsZW1lbnQgaXRzZWxmLgotICAgICAgICByZXR1
cm4gIWlucHV0RWxlbWVudC5pc1JlYWRPbmx5Tm9kZSgpICYmIChpbnB1dEVsZW1lbnQuaXNUZXh0
RmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNE
YXRlVGltZUxvY2FsRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNNb250aEZpZWxkKCkgfHwgaW5w
dXRFbGVtZW50LmlzVGltZUZpZWxkKCkpOworICAgICAgICByZXR1cm4gaW5wdXRFbGVtZW50Lmlz
VGV4dEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZUZpZWxkKCkgfHwgaW5wdXRFbGVtZW50
LmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzTW9udGhGaWVsZCgpIHx8
IGlucHV0RWxlbWVudC5pc1RpbWVGaWVsZCgpOwogICAgIH0KICAgICByZXR1cm4gbm9kZS5pc0Nv
bnRlbnRFZGl0YWJsZSgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZlYTQ2OGU1YWM4YzcyMDQ1MGZlNzk2YzdlMTY2
YjRjODFkNDE5NmMuLmIxZGI1MjA1NjZjZDRkODAzMjFiOWE2YWJiNzY5YThiY2M3ZjBmYjkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wOS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5IEVudGl0eVJlZmVyZW5j
ZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEcm9wIHNldmVyYWwgb3V0ZGF0ZWQgRE9NIGNvbXBsaWFuY2UgdGVzdHMuIFVwZGF0
ZSAvIFJlYmFzZWxpbmUgb3RoZXJzLgorCiAyMDE1LTA5LTIxICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzb21lIHRlc3RzIGZvciBzaGFkb3cgRE9NIHJl
bmRlcmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYThlYmUwMGI2NmFjOGFm
NDA2MGY1OTRmNTUwZWQwYjVmMmViMTI5Ni4uMTQ0MmFjODM1Y2RkZGYwNDY1ZWFiNDk1NTUzMTE2
MjU4ZmJjMzg3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTUtMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGlu
ZSBXM0MgRE9NIHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0OgorCiAy
MDE1LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmFu
Z2UuY2xvbmVDb250ZW50cygpIC8gZXh0cmFjdENvbnRlbnRzIHNob3VsZCB0aHJvdyBhIEhpZXJh
cmNoeVJlcXVlc3RFcnJvciB3aGVuIGVuY291bnRlcmluZyBhIGRvY3R5cGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20vaHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMmE4ZTQ2NjEy
NGIxOGZmNGM1YjY0N2VhYmZhNzcwMTU0NGQ4MWQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3Q6CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmCi1TdGF0dXM6CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlv
bmNyZWF0ZWVudHJlZi5odG1sIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9j
dW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiNTlhYzM2NjlhMGNkNjc2YjQ2ZTRkOWZjYjc0ZmI2MTZi
MTgzYTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhj
ZXB0aW9uY3JlYXRlZW50cmVmLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi08
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iIAotICAgICJo
dHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIiA+Ci08IS0tIFRoaXMgaXMgY29t
bWVudCBudW1iZXIgMS4tLT4KLTxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+aGNfc3RhZmY8
L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZodG1sLmpzIj48
L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIj48L3Nj
cmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxz
dXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4K
LSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMg
aXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQy
OwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBh
IHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+
Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+
Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMgYi9MYXlvdXRUZXN0cy9kb20v
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlN2UxMjc4NDFlZjk4NmQ2
MTY4NjlhMjI0MTQ4MTYxYTM5MTcwMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMTQzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRl
IFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5
LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRo
ZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdv
cmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0g
aW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8v
d3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIx
MjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRo
ZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1m
dW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAw
MDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxs
ZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0
ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0
aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVk
LiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFu
ZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50
ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewot
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAg
Ly8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgot
ICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAg
ICBjaGVja0ZlYXR1cmUoIlhNTCIsIG51bGwpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAg
ICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1l
dGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hy
b25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5
bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFn
ZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhl
IHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYg
KCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLSAgICBUaGUgImNyZWF0ZUVudGl0eVJlZmVyZW5j
ZSh0YWdOYW1lKSIgbWV0aG9kIHJhaXNlcyBhbgotICAgSU5WQUxJRF9DSEFSQUNURVJfRVJSIERP
TUV4Y2VwdGlvbiBpZiB0aGUgc3BlY2lmaWVkCi0gICB0YWdOYW1lIGNvbnRhaW5zIGFuIGludmFs
aWQgY2hhcmFjdGVyLiAKLQotKiBAYXV0aG9yIE5JU1QKLSogQGF1dGhvciBNYXJ5IEJyYWR5Ci0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEv
bGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTI1OEEwMEFGJykvY29uc3RhbnRbQG5hbWU9
J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5
OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELTM5MkI3NUFFCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEv
bGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTM5MkI3NUFFJykvcmFpc2VzL2V4Y2VwdGlv
bltAbmFtZT0nRE9NRXhjZXB0aW9uJ10vZGVzY3IvcFtzdWJzdHJpbmctYmVmb3JlKC4sJzonKT0n
SU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9Q
dWJsaWMvc2hvd19idWcuY2dpP2lkPTI0OQotKi8KLWZ1bmN0aW9uIGRvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIGJhZEVudGl0eVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAi
dGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZm9v
Iik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4
LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1
ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxz
ZSB7Ci0JCQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJh
ZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImludmFsaWReTmFtZSIpOwot
ICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2Rl
KSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDUpOwotCQl9Ci0JCWFzc2VydFRydWUoInRo
cm93X0lOVkFMSURfQ0hBUkFDVEVSX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JCX0KLQkKLX0KLQot
Ci0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0
bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50
cmVmMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDlhZWJlNDA0NDc4ZDhiMDI1YjUxYzZhZTNj
MzY2NWQ1YTM3MDM5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIgKzAsMCBAQAotVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYxCi1TdGF0dXM6CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEu
aHRtbCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2I2ZDA5Y2RhYmMyMGMxNzI2NWFhZjI1OTc2ZTMzMjQ5ZjVkMWI5NC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVl
bnRyZWYxLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iIAotICAgICJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIiA+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZodG1sLmpzIj48L3NjcmlwdD48c2Ny
aXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcyI+PC9zY3JpcHQ+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5v
cnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0
YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4K
LSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAg
PGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAg
PHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8g
Qm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0
aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmlu
ZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcyBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ZDFlYzk3NTMyOWIxN2Q3MjNjZTNjMGU5
NzllNWQ1ZjkwZjQwYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hh
cmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0MCAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlv
bmNyZWF0ZWVudHJlZjEiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFy
IGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0
aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3Vp
dGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBh
c3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhl
cndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBl
eGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0
aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRV
cFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNy
ZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8v
Ci0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNoZWNr
RmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotQ3JlYXRpbmcgYW4gZW50aXR5IHJlZmVyZW5jZSB3aXRoIGFu
IGVtcHR5IG5hbWUgc2hvdWxkIGNhdXNlIGFuIElOVkFMSURfQ0hBUkFDVEVSX0VSUi4KLQotKiBA
YXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMt
RE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTI1OEEw
MEFGJykvY29uc3RhbnRbQG5hbWU9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0
dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9u
ZS1jb3JlI0lELTM5MkI3NUFFCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMt
RE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTM5MkI3
NUFFJykvcmFpc2VzL2V4Y2VwdGlvbltAbmFtZT0nRE9NRXhjZXB0aW9uJ10vZGVzY3IvcFtzdWJz
dHJpbmctYmVmb3JlKC4sJzonKT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0
cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTUyNQotKi8KLWZ1bmN0
aW9uIGRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEoKSB7Ci0g
ICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxIikgIT0gbnVsbCkgcmV0
dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAg
ICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRl
ZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9j
ID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShi
dWlsZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNj
ZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKCJmb28iKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAg
ICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9
PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vz
cyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsKLQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgiIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlw
ZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJYXNz
ZXJ0VHJ1ZSgidGhyb3dfSU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQkJ
fQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzEwODJjYmVhZTRmNmQ4OGRm
ZDA2NGVkYjRjMmQ5YWFiOTYxNWMzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0
dmFsdWUyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdDoJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19hdHRy
Z2V0dmFsdWUyCi1TdGF0dXM6CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9o
dG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRtbCBiL0xheW91dFRlc3RzL2RvbS9o
dG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGJiN2JiOGM4MTA5Y2Y1OTNkZmVmODViYzljZDM0YWU0Y2IyODhkMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwg
NC4wMS8vRU4iIAotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIiA+
Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sPjxoZWFkPjxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04
Ij48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9InNlbGZodG1sLmpzIj48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iaGNfYXR0cmdldHZhbHVlMi5qcyI+PC9zY3JpcHQ+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5v
cnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0
YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4K
LSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAg
PGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAg
PHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8g
Qm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0
aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmlu
ZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcyBi
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0Y2MyYWUzNWUyN2I0OTQ0OGQwN2Q2MTY0YjQ5
YjBhOTgzMGNjZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDE0NiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAx
LTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZv
cm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBS
ZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3
YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdo
dC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRo
YXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9m
IHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX2F0dHJn
ZXR2YWx1ZTIiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNoZWNrRmVhdHVy
ZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotQ2hlY2tzIHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUgdGhhdCBjb250
YWlucyBlbnRpdHkgcmVmZXJlbmNlcy4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwt
b25lLWNvcmUjSUQtMjIxNjYyNDc0Ci0qLwotZnVuY3Rpb24gaGNfYXR0cmdldHZhbHVlMigpIHsK
LSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImhj
X2F0dHJnZXR2YWx1ZTIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZh
ciBhY3JvbnltTGlzdDsKLSAgICAgIHZhciB0ZXN0Tm9kZTsKLSAgICAgIHZhciBhdHRyaWJ1dGVz
OwotICAgICAgdmFyIHRpdGxlQXR0cjsKLSAgICAgIHZhciB2YWx1ZTsKLSAgICAgIHZhciB0ZXh0
Tm9kZTsKLSAgICAgIHZhciByZXR2YWw7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsKLSAgICAgIHZh
ciBhbHBoYVJlZjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBhY3JvbnltTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYWNyb255
bSIpOwotICAgICAgdGVzdE5vZGUgPSBhY3JvbnltTGlzdC5pdGVtKDMpOwotICAgICAgYXR0cmli
dXRlcyA9IHRlc3ROb2RlLmF0dHJpYnV0ZXM7Ci0KLSAgICAgIHRpdGxlQXR0ciA9IGF0dHJpYnV0
ZXMuZ2V0TmFtZWRJdGVtKCJjbGFzcyIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29u
dGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxz
ZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGFscGhhUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgiYWxwaGEiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9
ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQot
CQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0J
fQotCQotCQllbHNlIHsKLQkJCWFscGhhUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
YWxwaGEiKTsKLSAgICAgIGZpcnN0Q2hpbGQgPSB0aXRsZUF0dHIuZmlyc3RDaGlsZDsKLQotICAg
ICAgcmV0dmFsID0gdGl0bGVBdHRyLmluc2VydEJlZm9yZShhbHBoYVJlZixmaXJzdENoaWxkKTsK
LSAgICAgIHZhbHVlID0gdGl0bGVBdHRyLnZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImF0
dHJWYWx1ZTEiLCLOsVnOsSIsdmFsdWUpOwotICAgICAgIAotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19hdHRyZ2V0dmFsdWUyKCk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MGM3YzNkYjFkZmU3
OGQ4N2E1MWM0YmFkMTE2ZDI5ODM4ZjFjMGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9k
ZXZhbHVlMDMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0
OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25v
ZGV2YWx1ZTAzCi1TdGF0dXM6CVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9o
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRt
bC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiODA0NmYxMmZiODhiMmViOWNlNjZmOTYwZjJiMmJkMTlhNDc3YTlkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9o
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0
OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8v
RU4iIAotICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIiA+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0
bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNl
bGZodG1sLmpzIj48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iaGNfbm9kZXZhbHVlMDMuanMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0n
dGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9
PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUu
IERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAw
MjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ry
b25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5F
TVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRl
cGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRl
bHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJ
cnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8
L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwg
RGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4g
RGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMg
OTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzIGIvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGU2MTY3MWFhNGIzOGE2NWExY2VkNGY5NTlhOGIxNDYzNWYzMTI1ODUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMyI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotQW4gZW50aXR5IHJlZmVyZW5jZSBpcyBjcmVhdGVkLCBzZXRO
b2RlVmFsdWUgaXMgY2FsbGVkIHdpdGggYSBub24tbnVsbCBhcmd1bWVudCwgYnV0IGdldE5vZGVW
YWx1ZQotc2hvdWxkIHN0aWxsIHJldHVybiBudWxsLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQK
LSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAw
MS9sZXZlbC1vbmUtY29yZSNJRC1GNjhEMDgwCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMTFDOTg0OTAK
LSovCi1mdW5jdGlvbiBoY19ub2RldmFsdWUwMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImhjX25vZGV2YWx1ZTAzIikgIT0gbnVsbCkg
cmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgbmV3Tm9kZTsKLSAgICAgIHZhciBuZXdW
YWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQot
CSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgbmV3
Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9S
VEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsKLQkJCW5ld05vZGUgPSBk
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICBhc3NlcnROb3ROdWxsKCJj
cmVhdGVkRW50UmVmTm90TnVsbCIsbmV3Tm9kZSk7Ci1uZXdWYWx1ZSA9IG5ld05vZGUubm9kZVZh
bHVlOwotCi0gICAgICBhc3NlcnROdWxsKCJpbml0aWFsbHlOdWxsIixuZXdWYWx1ZSk7Ci0gICAg
bmV3Tm9kZS5ub2RlVmFsdWUgPSAiVGhpcyBzaG91bGQgaGF2ZSBubyBlZmZlY3QiOwotCi0gICAg
ICBuZXdWYWx1ZSA9IG5ld05vZGUubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnROdWxsKCJudWxs
QWZ0ZXJBdHRlbXB0ZWRDaGFuZ2UiLG5ld1ZhbHVlKTsKLSAgICAKLQkJfQotCQotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgaGNfbm9kZXZhbHVlMDMoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1
YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9zdmcv
bGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM4Y2VjMGE4OWQ0YTVm
YWNlNmIzY2IyNDAzNjk4N2Q3OThiNmY4Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2
YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSArMCwwIEBACi1YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVE
X0VSUjogU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBh
dGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuanMgYi9MYXlvdXRU
ZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQ
UE9SVEVEX0VSUi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJlMDE4YzhhNjYz
MDU0OTY3ODNkMWI3NWFjMGU3NGJmMjIzN2RmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0
aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcworKysgL2Rldi9udWxsCkBA
IC0xLDExOSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lk
ZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9n
eSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0
aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3
b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFd
IGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDov
L3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAy
MTIzMQotKi8KLQotCi0vLyBleHBvc2UgdGVzdCBmdW5jdGlvbiBuYW1lcwotZnVuY3Rpb24gZXhw
b3NlVGVzdEZ1bmN0aW9uTmFtZXMoKQotewotcmV0dXJuIFsnWFBhdGhFdmFsdWF0b3JfZXZhbHVh
dGVfTk9UX1NVUFBPUlRFRF9FUlInXTsKLX0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsK
LXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
YnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0
IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9u
cywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAg
T3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0
aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJp
bmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAg
c2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8g
ICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAg
ICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAg
ZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAi
ZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAg
IH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4
KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
Ci0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0v
LyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwot
Ly8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVk
LAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0v
LyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAgICAgICAKLSAgICAg
IFRlc3QgaWYgWFBhdGhFdmFsdWF0b3IuZXZhbHVhdGUgcHJvcGVybHkgdGhyb3dzIE5PVF9TVVBQ
T1JURURfRVJST1IKLSAgICAKLSogQGF1dGhvciBQaGlsaXBwZSBMZSBIw6lnYXJldAotKiBAYXV0
aG9yIEJvYiBDbGFyeQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDMvQ1ItRE9NLUxl
dmVsLTMtWFBhdGgtMjAwMzAzMzEveHBhdGgjWFBhdGhFdmFsdWF0b3ItZXZhbHVhdGUKLSovCi1m
dW5jdGlvbiBYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpIHsKLSAg
IHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIlhQYXRo
RXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSIikgIT0gbnVsbCkgcmV0dXJuOwot
ICAgIHZhciBkb2M7Ci0gICAgICB2YXIgeHBFdmFsdWF0b3I7Ci0gICAgICB2YXIgcmVzdWx0Owot
ICAgICAgdmFyIG51bGxOU1Jlc29sdmVyID0gbnVsbDsKLQotICAgICAgdmFyIG51bGxSZXN1bHQg
PSBudWxsOwotCi0gICAgICB2YXIgY29udGV4dE5vZGU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRv
Y1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICB4cEV2YWx1YXRvciA9IGNyZWF0ZVhQYXRo
RXZhbHVhdG9yKGRvYyk7Ci1jb250ZXh0Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImVudGl0eW5hbWUiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVzdWx0ID0geHBFdmFsdWF0b3IuZXZhbHVhdGUoIi8vZm9vOmJhciIsY29u
dGV4dE5vZGUsbnVsbE5TUmVzb2x2ZXIsMCxudWxsUmVzdWx0KTsKLSAgICAgICAgfQotCQljYXRj
aChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcg
JiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVE
X0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBYUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUigpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZh
bHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnIGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2I4YmRjMWM2ZDQwOTU5NmUyYWU0ODQyMGQ3YmU3
Y2U5MTgyZThmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRl
X05PVF9TVVBQT1JURURfRVJSLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOm5pc3Q9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+
DQotPHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJYUGF0
aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcyIvPg0KLTxzY3JpcHQgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHNyYz0ic3ZndW5pdC5qcyIvPg0KLTwv
c3ZnPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRo
RXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxMGE3ZGNjNmE2NDBmN2Y2ZjA2Y2NiZjRiZTA3MDYwNTI1NTk0NzgwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2
ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1YUGF0aEV4cHJlc3Npb25fZXZh
bHVhdGVfTk9UX1NVUFBPUlRFRF9FUlI6IFN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9S
VEVEX0VSUi5qcyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVz
c2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYWNmNjE0NjYxMDkzY2NmY2M1MTc4Yjg2NGE2YTJjMGIyOWRmODY5NS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
c3ZnL2xldmVsMy94cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9F
UlIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOC
wqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMg
SW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1m
b3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1S
aWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LC
riBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQg
d2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9j
b3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotLy8gZXhwb3NlIHRlc3QgZnVuY3Rp
b24gbmFtZXMKLWZ1bmN0aW9uIGV4cG9zZVRlc3RGdW5jdGlvbk5hbWVzKCkKLXsKLXJldHVybiBb
J1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUiddOwotfQotCi12YXIg
ZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0v
LyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8g
Y29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVu
dCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBp
cyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAg
ICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5j
dGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0
cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBt
YXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1
cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2Fk
ZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAic3RhZmZOUyIpOwotICAgICAgICAKLSAgICAg
ICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxp
emF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBv
biB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0
ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVk
IGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFu
Z2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVj
dXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotLyoqCi0qICAgICAgIAotICAgICAgVGVzdCBpZiBYUGF0aEV4cHJlc3Npb24uZXZhbHVhdGUg
cHJvcGVybHkgdGhyb3dzIE5PVF9TVVBQT1JURURfRVJST1IKLSAgICAKLSogQGF1dGhvciBQaGls
aXBwZSBMZSBIw6lnYXJldAotKiBAYXV0aG9yIEJvYiBDbGFyeQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzIwMDMvQ1ItRE9NLUxldmVsLTMtWFBhdGgtMjAwMzAzMzEveHBhdGgjWFBhdGhF
eHByZXNzaW9uLWV2YWx1YXRlCi0qLwotZnVuY3Rpb24gWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRl
X05PVF9TVVBQT1JURURfRVJSKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0
aWFsaXphdGlvbihidWlsZGVyLCAiWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JU
RURfRVJSIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgeHBFdmFs
dWF0b3I7Ci0gICAgICB2YXIgcmVzdWx0OwotICAgICAgdmFyIG51bGxOU1Jlc29sdmVyID0gbnVs
bDsKLQotICAgICAgdmFyIG51bGxSZXN1bHQgPSBudWxsOwotCi0gICAgICB2YXIgY29udGV4dE5v
ZGU7Ci0gICAgICB2YXIgeHBhdGhFeHByZXNzaW9uOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NS
ZWYsICJkb2MiLCAic3RhZmZOUyIpOwotICAgICAgeHBFdmFsdWF0b3IgPSBjcmVhdGVYUGF0aEV2
YWx1YXRvcihkb2MpOwoteHBhdGhFeHByZXNzaW9uID0geHBFdmFsdWF0b3IuY3JlYXRlRXhwcmVz
c2lvbigiLy9mb28iLG51bGxOU1Jlc29sdmVyKTsKLSAgICAgIGNvbnRleHROb2RlID0gZG9jLmNy
ZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50aXR5bmFtZSIpOwotICAgICAgCi0JewotCQlzdWNjZXNz
ID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXN1bHQgPSB4cGF0aEV4cHJlc3Npb24u
ZXZhbHVhdGUoY29udGV4dE5vZGUsMCxudWxsUmVzdWx0KTsKLSAgICAgICAgfQotCQljYXRjaChl
eCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYg
ZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VS
UiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBY
UGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFs
dWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcgYi9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94
cGF0aC9YUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjg2ZDc1MGEzOWRhYWY0NmNiMDRkOWYxM2EyNzBj
ZjI1NWNjY2Y2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLTxz
dmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpuaXN0PSJodHRwOi8v
d3d3Lm5pc3QuZ292Ij48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIv
Pg0KLTxzY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHNyYz0iWFBh
dGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIi8+DQotPHNjcmlwdCB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJzdmd1bml0LmpzIi8+DQot
PC9zdmc+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFj
dGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDJkNmQxNzcwYTEyNzg5OWEyMmFhY2YzNmZjZjk4NjEyNjA3NzNhZi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZgotU3RhdHVzCVN1Y2Nlc3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRl
ZW50cmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTdlMTI3ODQxZWY5ODZk
NjE2ODY5YTIyNDE0ODE2MWEzOTE3MDAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxNDMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAw
MDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhl
IHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNl
cHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0
ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUg
YW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBl
bnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7
Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAg
ICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9u
Ci0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAg
ICAgIGNoZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIp
OwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewot
ICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMg
bWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3lj
aHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkg
c3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBw
YWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0
aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBp
ZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotICAgIFRoZSAiY3JlYXRlRW50aXR5UmVmZXJl
bmNlKHRhZ05hbWUpIiBtZXRob2QgcmFpc2VzIGFuCi0gICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIg
RE9NRXhjZXB0aW9uIGlmIHRoZSBzcGVjaWZpZWQKLSAgIHRhZ05hbWUgY29udGFpbnMgYW4gaW52
YWxpZCBjaGFyYWN0ZXIuIAotCi0qIEBhdXRob3IgTklTVAotKiBAYXV0aG9yIE1hcnkgQnJhZHkK
LSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAw
MS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFt
ZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIv
MTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUK
LSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAw
MS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0
aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicp
PSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdz
L1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAg
aWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0g
ICAgICB2YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09
ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7
Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJm
b28iKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2Yo
ZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRU
cnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQotCQll
bHNlIHsKLQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAg
YmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiaW52YWxpZF5OYW1lIik7
Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNv
ZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgi
dGhyb3dfSU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQkJfQotCQotfQot
Ci0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRl
ZW50cmVmLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50
aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi54aHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDgxMDk4MzMyMTA0ZjEwYTlhMDczYWQwMWU0ZTRhMTNiOGExZTM4
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAot
ICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEt
c3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBi
ZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBk
ZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRp
b24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUi
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBp
cyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFy
c2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50aW52YWxpZGNo
YXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZh
c2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+
PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAw
MTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291
bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0g
IDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRB
U2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMs
ICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9l
bT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQg
TWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBU
ZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAg
PHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlz
dDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29y
ZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGYzYmM5OTg1YjVjMmI3ZjYwMWEx
MGY4NGUzOWU2NTM2ODEzNDY4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYxCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVu
dHJlZjEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZh
bGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjRkMWVjOTc1MzI5YjE3ZDcyM2NlM2MwZTk3OWU1ZDVmOTBmNDBhMi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0KLS8qCi1Db3B5
cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2Fj
aHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29y
dGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSku
IEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUg
aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdh
bC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAg
ICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVy
aSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewot
ICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNoZWNrRmVhdHVyZSgiWE1MIiwgbnVs
bCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotQ3JlYXRpbmcgYW4gZW50aXR5IHJlZmVyZW5jZSB3aXRoIGFuIGVtcHR5IG5hbWUgc2hvdWxk
IGNhdXNlIGFuIElOVkFMSURfQ0hBUkFDVEVSX0VSUi4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xk
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEw
MDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTI1OEEwMEFGJykvY29uc3RhbnRbQG5h
bWU9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RS
LzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELTM5MkI3NUFF
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEw
MDEvbGV2ZWwtb25lLWNvcmUjeHBvaW50ZXIoaWQoJ0lELTM5MkI3NUFFJykvcmFpc2VzL2V4Y2Vw
dGlvbltAbmFtZT0nRE9NRXhjZXB0aW9uJ10vZGVzY3IvcFtzdWJzdHJpbmctYmVmb3JlKC4sJzon
KT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvQnVn
cy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTUyNQotKi8KLWZ1bmN0aW9uIGRvY3VtZW50aW52YWxp
ZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7
Ci0gICAgICB2YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBl
ID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJmb28iKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBl
b2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3Nl
cnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQot
CQllbHNlIHsKLQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAg
ICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiIik7Ci0gICAgICAg
IH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1
bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfSU5W
QUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQkJfQotCQotfQotCi0KLQotCi1m
dW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjgzYmFiOTg0YWU3Y2EyYWZlYmNhMDI0ZWMzZDgwYjg3ZDQ4ZmU4NC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBhY3JvbnltIGRpciBDREFUQSAibHRyIj4KLV0+Ci08IS0tIFRoaXMgaXMgY29t
bWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sJz48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCAgY2hhcnNldD0i
VVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hl
YWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVm
ZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0
aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdh
bW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJv
bmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29k
ZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjIwOWMzZTQzNjRlZGM0NTVkNTRkNDE1MjA5
NGUyZTY2YWFkNzYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIK
LVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWF0dHJWYWx1ZTE6IGFzc2VydEVxdWFscyBmYWlsZWQs
IGFjdHVhbCBZzrEsIGV4cGVjdGVkIM6xWc6xLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuanMgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTRjYzJhZTM1ZTI3YjQ5NDQ4ZDA3ZDYxNjRiNDliMGE5ODMwY2NmMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcworKysgL2Rldi9udWxsCkBA
IC0xLDE0NiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lk
ZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9n
eSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0
aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3
b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFd
IGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDov
L3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAy
MTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0
aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwot
ZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIiOwotICAg
fQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0v
LwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsg
YmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVy
ZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAg
ICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8v
ICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRl
bHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4K
LS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmlu
Zyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBi
dWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVh
dGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIGNoZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
Q2hlY2tzIHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUgdGhhdCBjb250YWlucyBlbnRpdHkgcmVm
ZXJlbmNlcy4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5v
cmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMjIx
NjYyNDc0Ci0qLwotZnVuY3Rpb24gaGNfYXR0cmdldHZhbHVlMigpIHsKLSAgIHZhciBzdWNjZXNz
OwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImhjX2F0dHJnZXR2YWx1ZTIi
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBhY3JvbnltTGlzdDsK
LSAgICAgIHZhciB0ZXN0Tm9kZTsKLSAgICAgIHZhciBhdHRyaWJ1dGVzOwotICAgICAgdmFyIHRp
dGxlQXR0cjsKLSAgICAgIHZhciB2YWx1ZTsKLSAgICAgIHZhciB0ZXh0Tm9kZTsKLSAgICAgIHZh
ciByZXR2YWw7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsKLSAgICAgIHZhciBhbHBoYVJlZjsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBhY3Jv
bnltTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYWNyb255bSIpOwotICAgICAgdGVz
dE5vZGUgPSBhY3JvbnltTGlzdC5pdGVtKDMpOwotICAgICAgYXR0cmlidXRlcyA9IHRlc3ROb2Rl
LmF0dHJpYnV0ZXM7Ci0KLSAgICAgIHRpdGxlQXR0ciA9IGF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVt
KCJjbGFzcyIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRl
eHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIGFscGhhUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsK
LSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29k
ZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0
aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi0JfQotCQotCQllbHNlIHsK
LQkJCWFscGhhUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAg
IGZpcnN0Q2hpbGQgPSB0aXRsZUF0dHIuZmlyc3RDaGlsZDsKLQotICAgICAgcmV0dmFsID0gdGl0
bGVBdHRyLmluc2VydEJlZm9yZShhbHBoYVJlZixmaXJzdENoaWxkKTsKLSAgICAgIHZhbHVlID0g
dGl0bGVBdHRyLnZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImF0dHJWYWx1ZTEiLCLOsVnO
sSIsdmFsdWUpOwotICAgICAgIAotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICBoY19hdHRyZ2V0dmFsdWUyKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi54aHRtbCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnhodG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwYTJlNDAxMzhjNTUwODQ5ZDc5ZDE3YTg0YTllNDI3YjI4NWVl
ZmI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnhodG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNU
WUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRN
TCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkg
Z2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZ
IGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5v
dGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGly
IENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0
bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+
PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9ImhjX2F0dHJnZXR2YWx1ZTIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAw
MDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2Nv
dW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMs
IFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgot
ICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAg
PGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFz
LCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwv
ZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50
IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0
ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywg
VGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0g
IDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxp
c3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9h
Y3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA3YjFhMjYyZmE4ODE2ZTk3MWVjMzA3OTZk
NzY1OTk0ZWY5OGU1Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMKLVN0
YXR1cwllcnJvcgotTWVzc2FnZQlFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERP
TSBFeGNlcHRpb24gNwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9j
b3JlL2hjX25vZGV2YWx1ZTAzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3Jl
L2hjX25vZGV2YWx1ZTAzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjE2NzFh
YTRiMzhhNjVhMWNlZDRmOTU5YThiMTQ2MzVmMzEyNTg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29y
ZS9oY19ub2RldmFsdWUwMy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8q
Ci1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0o
TWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2gg
Q29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVy
c2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
Ci10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1
bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8q
KgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0
dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJ
KCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAt
MTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5n
IHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24g
ZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBz
dGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBs
ZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdo
ZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdl
KCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8K
LSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2Vw
dGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1B
biBlbnRpdHkgcmVmZXJlbmNlIGlzIGNyZWF0ZWQsIHNldE5vZGVWYWx1ZSBpcyBjYWxsZWQgd2l0
aCBhIG5vbi1udWxsIGFyZ3VtZW50LCBidXQgZ2V0Tm9kZVZhbHVlCi1zaG91bGQgc3RpbGwgcmV0
dXJuIG51bGwuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMu
b3JnL1RSLzE5OTgvUkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELUY2
OEQwODAKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0x
OTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0xMUM5ODQ5MAotKi8KLWZ1bmN0aW9uIGhjX25vZGV2
YWx1ZTAzKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihi
dWlsZGVyLCAiaGNfbm9kZXZhbHVlMDMiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsK
LSAgICAgIHZhciBuZXdOb2RlOwotICAgICAgdmFyIG5ld1ZhbHVlOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0g
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWls
ZGVyLmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNz
ID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBuZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNj
ZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwot
CQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9
Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJbmV3Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVu
Y2UoImVudDEiKTsKLSAgICAgIGFzc2VydE5vdE51bGwoImNyZWF0ZWRFbnRSZWZOb3ROdWxsIixu
ZXdOb2RlKTsKLW5ld1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51
bGwoImluaXRpYWxseU51bGwiLG5ld1ZhbHVlKTsKLSAgICBuZXdOb2RlLm5vZGVWYWx1ZSA9ICJU
aGlzIHNob3VsZCBoYXZlIG5vIGVmZmVjdCI7Ci0KLSAgICAgIG5ld1ZhbHVlID0gbmV3Tm9kZS5u
b2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51bGwoIm51bGxBZnRlckF0dGVtcHRlZENoYW5nZSIs
bmV3VmFsdWUpOwotICAgIAotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICBoY19ub2RldmFsdWUwMygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxMjc2NTFlYzg5ZmE4ODBiYjUyNGNhMjRiYWY5ZTFjNTI4MWZkMmU0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy54aHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDYwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/
PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmlj
dC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0
NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0
NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICIm
Izk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0
aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lT
VEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBhY3JvbnltIGRpciBDREFUQSAibHRy
Ij4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCAgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJoY19ub2RldmFsdWUwMy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFy
dGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBu
dW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRh
cnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5
ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkg
T2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxz
dXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2Jl
cnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAg
PHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9w
PgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM3OTNlMDRjYjY0ZDliZThhZjVmMDZiN2U1Mzg2
Y2YyNDZhYmM2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3
dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9k
ZTA2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODA0Yjk0ODE1MjhmZTIwODFmYjNhNGRjM2Q0OWQyNWQwNTVhOGYyMy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcworKysgL2Rldi9udWxsCkBA
IC0xLDE3NSArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lk
ZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9n
eSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0
aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3
b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFd
IGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDov
L3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAy
MTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0
aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwot
ZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlJbnZva2UgYWRvcHROb2RlIG9uIGEgbmV3IGRvY3Vt
ZW50IHRvIGFkb3B0IHRoZSBhIG5ldyBBdHRyaWJ1dGUgbm9kZSBoYXZpbmcgYSBUZXh0IGFuZCBh
biBFbnRpdHlSZWZlcmVuY2UgCi0JY2hpbGQuICBDaGVjayBpZiB0aGlzIGF0dHJpYnV0ZSBoYXMg
YmVlbiBhZG9wdGVkIHN1Y2Nlc3NmdWxseSBieSB2ZXJpZnlpbmcgdGhlIG5vZGVOYW1lLCBuYW1l
c3BhY2VVUkksIHByZWZpeCwgCi0Jc3BlY2lmaWVkIGFuZCBvd25lckVsZW1lbnQgYXR0cmlidXRl
cyBvZiB0aGUgYWRvcHRlZCBub2RlLiAgQWxzbyB2ZXJpZnkgdGhlIG93bmVyRG9jdW1lbnQgYXR0
cmlidXRlCi0Jb2YgdGhlIGFkb3B0ZWQgbm9kZSBhbmQgdGhlIGFkb3B0ZWQgY2hpbGRyZW4gb2Yg
dGhlIGF0dHJpYnV0ZSBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjRG9jdW1lbnQzLWFkb3B0Tm9kZQotKi8KLWZ1bmN0aW9uIGRvY3VtZW50
YWRvcHRub2RlMDYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0
aW9uKGJ1aWxkZXIsICJkb2N1bWVudGFkb3B0bm9kZTA2IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgbmV3RG9jOwotICAgICAgdmFyIGRvbUltcGw7Ci0gICAgICB2
YXIgbmV3QXR0cjsKLSAgICAgIHZhciBuZXdUZXh0OwotICAgICAgdmFyIG5ld0VudFJlZjsKLSAg
ICAgIHZhciBhZG9wdGVkQXR0cjsKLSAgICAgIHZhciBhZG9wdFRleHQ7Ci0gICAgICB2YXIgYWRv
cHRFbnRSZWY7Ci0gICAgICB2YXIgbm9kZUxpc3Q7Ci0gICAgICB2YXIgbm9kZU5hbWU7Ci0gICAg
ICB2YXIgbm9kZU5hbWVzcGFjZVVSSTsKLSAgICAgIHZhciBub2RlUHJlZml4OwotICAgICAgdmFy
IGF0dHJPd25lckVsZW07Ci0gICAgICB2YXIgaXNTcGVjaWZpZWQ7Ci0gICAgICB2YXIgYWRvcHRl
ZFRleHROb2RlVmFsdWU7Ci0gICAgICB2YXIgYWRvcHRlZEVudFJlZk5vZGVWYWx1ZTsKLSAgICAg
IHZhciBudWxsRG9jVHlwZSA9IG51bGw7Ci0KLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgdmFyIGRvY0VsZW07Ci0gICAgICB2YXIgcm9vdE5TOwotICAgICAgdmFyIHJvb3ROYW1lOwot
ICAgICAgdmFyIHhtbE5TID0gImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSI7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAgIHJvb3ROYW1lID0gZG9jRWxl
bS50YWdOYW1lOwotCi0gICAgICByb290TlMgPSBkb2NFbGVtLm5hbWVzcGFjZVVSSTsKLQotICAg
ICAgZG9tSW1wbCA9IGRvYy5pbXBsZW1lbnRhdGlvbjsKLW5ld0RvYyA9IGRvbUltcGwuY3JlYXRl
RG9jdW1lbnQocm9vdE5TLHJvb3ROYW1lLG51bGxEb2NUeXBlKTsKLSAgICAgIG5ld0F0dHIgPSBk
b2MuY3JlYXRlQXR0cmlidXRlTlMoeG1sTlMsInhtbDpsYW5nIik7Ci0gICAgICBuZXdUZXh0ID0g
ZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0IE5vZGUiKTsKLSAgICAgIG5ld0VudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gbmV3
QXR0ci5hcHBlbmRDaGlsZChuZXdUZXh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBuZXdBdHRy
LmFwcGVuZENoaWxkKG5ld0VudFJlZik7Ci0gICAgICBhZG9wdGVkQXR0ciA9IG5ld0RvYy5hZG9w
dE5vZGUobmV3QXR0cik7Ci0gICAgICAKLQlpZigKLQkKLQkoYWRvcHRlZEF0dHIgIT0gbnVsbCkK
LQotCSkgewotCW5vZGVOYW1lID0gYWRvcHRlZEF0dHIubm9kZU5hbWU7Ci0KLSAgICAgIG5vZGVO
YW1lc3BhY2VVUkkgPSBhZG9wdGVkQXR0ci5uYW1lc3BhY2VVUkk7Ci0KLSAgICAgIG5vZGVQcmVm
aXggPSBhZG9wdGVkQXR0ci5wcmVmaXg7Ci0KLSAgICAgIGF0dHJPd25lckVsZW0gPSBhZG9wdGVk
QXR0ci5vd25lckVsZW1lbnQ7Ci0KLSAgICAgIGlzU3BlY2lmaWVkID0gYWRvcHRlZEF0dHIuc3Bl
Y2lmaWVkOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfbm9kZU5h
bWUiLCJ4bWw6bGFuZyIsbm9kZU5hbWUpOwotICAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRh
ZG9wdG5vZGUwNl9uYW1lc3BhY2VVUkkiLHhtbE5TLG5vZGVOYW1lc3BhY2VVUkkpOwotICAgICAg
IGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9wcmVmaXgiLCJ4bWwiLG5vZGVQcmVm
aXgpOwotICAgICAgIGFzc2VydE51bGwoImRvY3VtZW50YWRvcHRub2RlMDZfb3duZXJEb2MiLGF0
dHJPd25lckVsZW0pOwotICAgIGFzc2VydFRydWUoImRvY3VtZW50YWRvcHRub2RlMDZfc3BlY2lm
aWVkIixpc1NwZWNpZmllZCk7Ci1ub2RlTGlzdCA9IGFkb3B0ZWRBdHRyLmNoaWxkTm9kZXM7Ci0K
LSAgICAgIGFkb3B0VGV4dCA9IG5vZGVMaXN0Lml0ZW0oMCk7Ci0gICAgICBhZG9wdEVudFJlZiA9
IG5vZGVMaXN0Lml0ZW0oMSk7Ci0gICAgICBhZG9wdGVkVGV4dE5vZGVWYWx1ZSA9IGFkb3B0VGV4
dC5ub2RlVmFsdWU7Ci0KLSAgICAgIGFkb3B0ZWRFbnRSZWZOb2RlVmFsdWUgPSBhZG9wdEVudFJl
Zi5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X1Rl
eHROb2RlVmFsdWUiLCJUZXh0IE5vZGUiLGFkb3B0ZWRUZXh0Tm9kZVZhbHVlKTsKLSAgICAgICBh
c3NlcnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMDZfRW50UmVmTm9kZVZhbHVlIiwiYWxwaGEi
LGFkb3B0ZWRFbnRSZWZOb2RlVmFsdWUpOwotICAgICAgIAotCX0KLQkKLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIGRvY3VtZW50YWRvcHRub2RlMDYoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2
LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRu
b2RlMDYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5MmQ4OTBkYWRiNWE4
NzM1OWY0OWZlZDQxOTk0NzM1ODRkMjE3MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3Vt
ZW50YWRvcHRub2RlMDYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0g
ICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1z
dHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJl
dGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRl
bHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZ
IGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlv
bjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+
Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6
ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAg
ICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAg
ICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9u
eW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVO
VElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxl
bWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4g
eG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEu
LS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAg
eG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhj
X3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hh
cnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGFkb3B0bm9k
ZTA2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2Fk
Q29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNv
ZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RB
VEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RB
VEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBh
IHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+
MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBE
YWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+
Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+
Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAw
MDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25u
ZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFz
LCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3
dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8
L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCww
MDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBS
b2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFk
b3B0bm9kZTE2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjhhYjE4ODYxZmJlOGE1MGY1OWM4MTJhZWJkMDUzMzllYTU3Y2Y1ZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2Ci1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50
YWRvcHRub2RlMTYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1l
bnRhZG9wdG5vZGUxNi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZkNmUyZmRj
MzQ3YTM0MTEwNTViZGEyZWRlOWEyMjI5YmU5ZWZlNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
ZG9jdW1lbnRhZG9wdG5vZGUxNi5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3MCArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAg
IC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBA
cmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0
VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYiOwotICAgfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0g
cHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYg
KGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlv
bkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhl
IGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGlu
IHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1
bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3
aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQu
Ci1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8q
KgotKiAKLUNyZWF0ZSBhIGRvY3VtZW50IGZyYWdtZW50IHdpdGggYW4gZW50aXR5IHJlZmVyZW5j
ZSwgYWRvcHQgdGhlIG5vZGUgYW5kIGNoZWNrCi10aGF0IHRoZSBlbnRpdHkgcmVmZXJlbmNlIHZh
bHVlIGNvbWVzIGZyb20gdGhlIGFkb3B0aW5nIGRvY3VtZW50cyBEVEQuCi0KLSogQGF1dGhvciBJ
Qk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIw
MDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNEb2N1bWVudDMtYWRvcHROb2Rl
Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRhZG9wdG5vZGUxNigpIHsKLSAgIHZhciBzdWNjZXNzOwot
ICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50YWRvcHRub2RlMTYi
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnbWVudDsK
LSAgICAgIHZhciBjaGlsZExpc3Q7Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIGNoaWxk
OwotICAgICAgdmFyIGNoaWxkc0F0dHI7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIHRl
eHROb2RlOwotICAgICAgdmFyIGFkb3B0ZWQ7Ci0gICAgICB2YXIgcGFyZW50SW1wOwotICAgICAg
dmFyIGNoaWxkSW1wOwotICAgICAgdmFyIGF0dHJpYnV0ZXM7Ci0gICAgICB2YXIgY2hpbGRBdHRy
SW1wOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgdmFyIGF0dHJOb2RlOwotICAgICAgdmFyIGZpcnN0Q2hpbGQ7Ci0gICAgICB2YXIgZmlyc3RD
aGlsZFR5cGU7Ci0gICAgICB2YXIgZmlyc3RDaGlsZE5hbWU7Ci0gICAgICB2YXIgZmlyc3RDaGls
ZFZhbHVlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGRvY0ZyYWdtZW50ID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAg
IHBhcmVudCA9IGRvYy5jcmVhdGVFbGVtZW50KCJwYXJlbnQiKTsKLSAgICAgIGNoaWxkID0gZG9j
LmNyZWF0ZUVsZW1lbnQoImNoaWxkIik7Ci0gICAgICBjaGlsZHNBdHRyID0gZG9jLmNyZWF0ZUF0
dHJpYnV0ZSgic3RhdGUiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVu
Y2UoImdhbW1hIik7Ci0gICAgICB0ZXh0Tm9kZSA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGVzdCIp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGNoaWxkc0F0dHIuYXBwZW5kQ2hpbGQoZW50UmVmKTsK
LSAgICAgIGF0dHJOb2RlID0gY2hpbGQuc2V0QXR0cmlidXRlTm9kZShjaGlsZHNBdHRyKTsKLSAg
ICAgIGFwcGVuZGVkQ2hpbGQgPSBjaGlsZC5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKGNoaWxkKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBkb2NGcmFnbWVudC5hcHBlbmRDaGlsZChwYXJlbnQpOwotICAgICAgYWRvcHRlZCA9
IGRvYy5hZG9wdE5vZGUoZG9jRnJhZ21lbnQpOwotICAgICAgCi0JaWYoCi0JCi0JKGFkb3B0ZWQg
IT0gbnVsbCkKLQotCSkgewotCXBhcmVudEltcCA9IGFkb3B0ZWQuZmlyc3RDaGlsZDsKLQotICAg
ICAgY2hpbGRJbXAgPSBwYXJlbnRJbXAuZmlyc3RDaGlsZDsKLQotICAgICAgYXR0cmlidXRlcyA9
IGNoaWxkSW1wLmF0dHJpYnV0ZXM7Ci0KLSAgICAgIGNoaWxkQXR0ckltcCA9IGF0dHJpYnV0ZXMu
Z2V0TmFtZWRJdGVtKCJzdGF0ZSIpOwotICAgICAgZmlyc3RDaGlsZCA9IGNoaWxkQXR0ckltcC5m
aXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJmaXJzdENoaWxkTm90TnVsbCIsZmly
c3RDaGlsZCk7Ci1maXJzdENoaWxkTmFtZSA9IGZpcnN0Q2hpbGQubm9kZU5hbWU7Ci0KLSAgICAg
IGZpcnN0Q2hpbGRWYWx1ZSA9IGZpcnN0Q2hpbGQubm9kZVZhbHVlOwotCi0gICAgICBmaXJzdENo
aWxkVHlwZSA9IGZpcnN0Q2hpbGQubm9kZVR5cGU7Ci0KLSAgICAgIAotCWlmKAotCSg1ID09IGZp
cnN0Q2hpbGRUeXBlKQotCSkgewotCWFzc2VydEVxdWFscygiZmlyc3RDaGlsZEVudDNSZWYiLCJn
YW1tYSIsZmlyc3RDaGlsZE5hbWUpOwotICAgICAgIAotCX0KLQkKLQkJZWxzZSB7Ci0JCQlhc3Nl
cnRFcXVhbHMoImRvY3VtZW50YWRvcHRub2RlMTYiLCJUZXhhcyIsZmlyc3RDaGlsZFZhbHVlKTsK
LSAgICAgICAKLQkJfQotCQotCX0KLQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIGRvY3VtZW50YWRvcHRub2RlMTYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LnhodG1sIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2YmI5ZGUxZmI5MzhiMDc5NzUzMGYxMTMwYzg3MTg2
ZTc2MzdkMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGFkb3B0bm9kZTE2LmpzIi8+PHNjcmlwdCB0
eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0
KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAg
PHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29k
ZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0
aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+
TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50
aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGph
Y2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ry
b25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5
ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVy
by5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ry
b25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwv
c3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
Tm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJv
eCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0i
aHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25n
PkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+
Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxl
bT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+
Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5t
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMg
OTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVu
b2RlMjctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzczNDQx
ZDQzMDIxNDkyZjk0MzdkZmI2NjBkYzBlNGZhMzYzODJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9kb2N1bWVudHJlbmFtZW5vZGUyNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhy
b3dfTk9UX1NVUFBPUlRFRF9FUlJfMTogYXNzZXJ0VHJ1ZSBmYWlsZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTY3M2NhY2JjNjg5NmM2NmNhMjMzMDJm
NmEyMWFiNjljZTNkODRhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVu
b2RlMjcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxODkgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0
IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0
dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0g
Ci1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwg
Ci1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzND
w4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
Mi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBH
ZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRl
bnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAg
IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29y
ZS9kb2N1bWVudHJlbmFtZW5vZGUyNyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAw
MDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUg
dGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2Vw
dGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRl
ZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBh
bmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVu
dGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsK
LSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAg
IC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24K
LSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAg
ICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAg
ICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1Jl
ZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1Jl
ZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9
Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRl
ciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0K
LQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBv
ZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4K
LS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21w
bGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0
aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0
VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9r
ZSB0aGUgcmVuYW1lTm9kZSBtZXRob2QgdG8gYXR0ZW1wdCB0byByZW5hbWUgbmV3IFRleHQsIENv
bW1lbnQsIENEYXRhU2VjdGlvbiwKLQlQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gYW5kIEVudGl0eVJl
ZmVyZW5jZSBub2RlcyBvZiBhIG5ldyBEb2N1bWVudC4KLQlDaGVjayBpZiBhIE5PVF9TVVBQT1JU
RURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1h
Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0y
MDA0MDQwNy9jb3JlI0RvY3VtZW50My1yZW5hbWVOb2RlCi0qLwotZnVuY3Rpb24gZG9jdW1lbnRy
ZW5hbWVub2RlMjcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0
aW9uKGJ1aWxkZXIsICJkb2N1bWVudHJlbmFtZW5vZGUyNyIpICE9IG51bGwpIHJldHVybjsKLSAg
ICB2YXIgZG9jOwotICAgICAgdmFyIG5ld0RvYzsKLSAgICAgIHZhciBkb21JbXBsOwotICAgICAg
dmFyIHRleHQ7Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZh
ciBwaTsKLSAgICAgIHZhciBlbnRyZWY7Ci0gICAgICB2YXIgcmVuYW1lZFR4dDsKLSAgICAgIHZh
ciByZW5hbWVkQ29tbWVudDsKLSAgICAgIHZhciByZW5hbWVkQ2RhdGE7Ci0gICAgICB2YXIgcmVu
YW1lZFBpOwotICAgICAgdmFyIHJlbmFtZWRFbnRSZWY7Ci0gICAgICB2YXIgbnVsbERvY1R5cGUg
PSBudWxsOwotCi0gICAgICB2YXIgZG9jRWxlbTsKLSAgICAgIHZhciByb290TlM7Ci0gICAgICB2
YXIgcm9vdE5hbWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYg
KHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhp
cy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAgIHJvb3RO
UyA9IGRvY0VsZW0ubmFtZXNwYWNlVVJJOwotCi0gICAgICByb290TmFtZSA9IGRvY0VsZW0udGFn
TmFtZTsKLQotICAgICAgZG9tSW1wbCA9IGRvYy5pbXBsZW1lbnRhdGlvbjsKLW5ld0RvYyA9IGRv
bUltcGwuY3JlYXRlRG9jdW1lbnQocm9vdE5TLHJvb3ROYW1lLG51bGxEb2NUeXBlKTsKLSAgICAg
IHRleHQgPSBuZXdEb2MuY3JlYXRlVGV4dE5vZGUoInRleHQiKTsKLSAgICAgIGNvbW1lbnQgPSBu
ZXdEb2MuY3JlYXRlQ29tbWVudCgiY29tbWVudCIpOwotICAgICAgY2RhdGEgPSBuZXdEb2MuY3Jl
YXRlQ0RBVEFTZWN0aW9uKCJjZGF0YSIpOwotICAgICAgcGkgPSBuZXdEb2MuY3JlYXRlUHJvY2Vz
c2luZ0luc3RydWN0aW9uKCJwaXQiLCJwaWQiKTsKLSAgICAgIGVudHJlZiA9IG5ld0RvYy5jcmVh
dGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxz
ZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbmFtZWRUeHQgPSBuZXdEb2MucmVuYW1lTm9kZSh0
ZXh0LCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsInRleHQiKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9S
VEVEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIHJlbmFtZWRDb21tZW50ID0gbmV3RG9jLnJlbmFtZU5vZGUoY29tbWVu
dCwiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJjb21tZW50Iik7Ci0gICAgICAgIH0KLQkJ
Y2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmlu
ZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBP
UlRFRF9FUlJfMiIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICByZW5hbWVkQ2RhdGEgPSBuZXdEb2MucmVuYW1lTm9kZShjZGF0YSwi
aHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJjZGF0YSIpOwotICAgICAgICB9Ci0JCWNhdGNo
KGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAm
JiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURf
RVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVuYW1lZFBpID0gbmV3RG9jLnJlbmFtZU5vZGUocGksImh0dHA6Ly93d3cu
dzMub3JnL0RPTS9UZXN0IiwicGkiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAg
c3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5
KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl80IixzdWNjZXNz
KTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJl
bmFtZWRFbnRSZWYgPSBuZXdEb2MucmVuYW1lTm9kZShlbnRyZWYsImh0dHA6Ly93d3cudzMub3Jn
L0RPTS9UZXN0IiwiZW50cmVmIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1
Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7
Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9FUlJfNSIsc3VjY2Vzcyk7
Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudHJlbmFt
ZW5vZGUyNygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkZTc4MTFiNDJkZTJjNDY3ZTVhMmE2MGUxODI5MWQyZDEwOGY4M2M5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHJlbmFtZW5vZGUyNy54aHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQ
SURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhh
ICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1h
ICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNp
bG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBD
REFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRh
dGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9ImRvY3VtZW50cmVuYW1lbm9kZTI3LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2ph
dmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Njcmlw
dD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJn
YXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41
NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxh
cywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5v
bGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNl
IG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNl
Y3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29k
ZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1
NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcs
IHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5h
bHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5v
cjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUs
MDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9l
bT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3Bl
Y2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9u
eW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yMC54aHRtbCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yMC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc4ZTRlNjY0NjZmYmRj
MTQwNzY3NTUzODdhOWEzNWYwZjFlYTk2ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjAueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb24yMC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0
Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFk
Pjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFy
dGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFz
IDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2Eu
Y29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFb
Q0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIg
MiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdp
dGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0
YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5
ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3Rh
LmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9u
Zz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZh
bHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3
IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxz
dHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8
L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwv
cD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bjI2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTAyNDM3Mzhm
NjBhMDg4NDY0ZGFkODQ4MjdlYTZjMTRlYjAxM2Y3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYKLVN0YXR1cwlmYWls
dXJlCi1NZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDNlOGIzZmFlODg3OWEwYTM0ZGYwMWI2NDVkYzM3NjBhYmUwMjczMWMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTMzICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBX
b3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBU
ZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNz
IGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVk
LiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGlj
ZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsx
XSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3
YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVu
dGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAot
ICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFy
IGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0
aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3Vp
dGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBh
c3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhl
cndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBl
eGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0
aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRV
cFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNy
ZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8v
Ci0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2Nz
TG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0g
Y2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsK
LSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0v
LwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAg
ICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8g
ICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAot
Ly8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAg
ICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxl
dGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBjb21wYXJl
RG9jdW1lbnRQb3NpdGlvbiBjaGVjayBpZiB0aGUgRW50aXR5UmVmZXJlbmNlIG5vZGUgY29udGFp
bnMgYW5kIHByZWNlZGVzIGl0J3MgZmlyc3QKLQljaGlsZEVsZW1lbnQsIGFuZCB0aGF0IHRoZSBj
aGlsZEVsZW1lbnQgaXMgY29udGFpbmVkIGFuZCBmb2xsb3dzIHRoZSBFbnRpdHlSZWZlcmVuY2Ug
bm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIEplbm55IEhzdQotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNO
b2RlMy1jb21wYXJlRG9jdW1lbnRQb3NpdGlvbgotKi8KLWZ1bmN0aW9uIG5vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFs
aXphdGlvbihidWlsZGVyLCAibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYiKSAhPSBudWxs
KSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB2YXJMaXN0OwotICAgICAgdmFyIHZh
ckVsZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsKLSAgICAg
IHZhciBlbnRSZWZQb3NpdGlvbjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlp
ZigKLQkoZ2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMi
KSA9PSBmYWxzZSkKLQkpIHsKLQl2YXJMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ2
YXIiKTsKLSAgICAgIHZhckVsZW0gPSB2YXJMaXN0Lml0ZW0oMik7Ci0gICAgICBhc3NlcnROb3RO
dWxsKCJ2YXJFbGVtTm90TnVsbCIsdmFyRWxlbSk7Ci1lbnRSZWYgPSB2YXJFbGVtLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZk5vdE51bGwiLGVudFJlZik7Ci0KLQl9
Ci0JCi0JCWVsc2UgewotCQkJZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50
NCIpOwotICAgICAgCi0JCX0KLQllbnRSZWZDaGlsZDEgPSBlbnRSZWYuZmlyc3RDaGlsZDsKLQot
ICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQxKTsK
LWVudFJlZlBvc2l0aW9uID0gZW50UmVmLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZkNo
aWxkMSk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbklz
Q29udGFpbmVkRm9sbG93aW5nMjYiLDIwLGVudFJlZlBvc2l0aW9uKTsKLSAgICAgICBlbnRSZWZD
aGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRS
ZWYpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Db250
YWluc1BSRUNFRElORzI2IiwxMCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0gICAgICAgCi19Ci0K
LQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yNigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzMzZTBkMDY1OGJiZmJmNGZhNTA4M2UwYTIzOTcz
MmE0NGMxZTk0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNp
b249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5k
dGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5
NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYj
OTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwh
QVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAg
ICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVu
dDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRh
dGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBD
REFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxo
dG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4
c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYu
eHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJV
VEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjI2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRD
b21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJs
b2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0g
IDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAg
PGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1Q
MDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEg
Q0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFb
Q0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0
byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxz
dXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRh
OyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJv
bmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2Nv
ZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVN
UDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJz
b25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1
NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFs
bGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDov
L3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXll
cnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45
MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGlj
LiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29t
cGFyZWRvY3VtZW50cG9zaXRpb24yNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjctZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzI5YjRjZDgwNThhM2M3NWNhODEyYjQy
NTI3NWIzNmY4ZTQyOWZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9u
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZW50
UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0Tm90TnVsbCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24y
Ny5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yNy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDFlMTliNzY3
MDJiMzRhOTg1ZTgyNGY4MWVhY2FhZjNlZTRiZTBmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNyI7
Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7
Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1l
d29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElm
IHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8g
ICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1
cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1l
ZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0
ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdy
dW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3Vt
ZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9
IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAg
ICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2Mp
ICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQot
ICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwot
ICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAg
IAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0
aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJv
bm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3lu
Y2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdl
IHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUg
dGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAo
Kytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9u
IHRvIGNoZWNrIGlmIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBjb250YWlucyBhbmQgcHJlY2Vk
ZXMgaXQncyBsYXN0Ci0JY2hpbGRFbGVtZW50LCBhbmQgdGhhdCB0aGlzIGNoaWxkRWxlbWVudCBp
cyBjb250YWluZWQgYW5kIGZvbGxvd3MgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlLgotCi0qIEBh
dXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVE
b2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNyIpICE9IG51bGwpIHJldHVybjsKLSAg
ICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2YXIgdmFyRWxlbTsKLSAgICAg
IHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwotICAgICAgdmFyIGVudFJlZlBv
c2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0aW9uOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0g
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCShnZXRJbXBs
ZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIpID09IGZhbHNlKQot
CSkgewotCXZhckxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInZhciIpOwotICAgICAg
dmFyRWxlbSA9IHZhckxpc3QuaXRlbSgyKTsKLSAgICAgIGFzc2VydE5vdE51bGwoInZhckVsZW1O
b3ROdWxsIix2YXJFbGVtKTsKLWVudFJlZiA9IHZhckVsZW0uZmlyc3RDaGlsZDsKLQotICAgICAg
YXNzZXJ0Tm90TnVsbCgiZW50UmVmTm90TnVsbCIsZW50UmVmKTsKLQotCX0KLQkKLQkJZWxzZSB7
Ci0JCQllbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICAK
LQkJfQotCWVudFJlZkNoaWxkMSA9IGVudFJlZi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5v
dE51bGwoImVudFJlZkNoaWxkMU5vdE51bGwiLGVudFJlZkNoaWxkMSk7Ci1lbnRSZWZQb3NpdGlv
biA9IGVudFJlZi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWZDaGlsZDEpOwotICAgICAg
YXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Jc0NvbnRhaW5lZEZvbGxv
d2luZzI3IiwyMCxlbnRSZWZQb3NpdGlvbik7Ci0gICAgICAgZW50UmVmQ2hpbGQxUG9zaXRpb24g
PSBlbnRSZWZDaGlsZDEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVmKTsKLSAgICAgIGFz
c2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uQ29udGFpbnNQUkVDRURJTkci
LDEwLGVudFJlZkNoaWxkMVBvc2l0aW9uKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3KCk7Ci19CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDMxYWJlMDFiZjliZDg5ZDFhMWVhZjZlY2JjMDFiMDkzZTZlYmZiMTMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LnhodG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNU
LVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBY
SFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJ
VFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5U
SVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAg
ICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhz
aSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFy
Z2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgot
XT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53
My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
bj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVU
Ri04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjcuanMiLz48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2Vt
PgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50
PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMw
IE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0
aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFu
IGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+
PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1h
OwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5u
ZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVz
PC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAs
MDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
Om5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxz
dHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rvcjwv
Y29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4K
LSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8
Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8
dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBU
ZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjI4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDczZDMyNDlkODRiYjNjMjYxNjc1ZTNlNGU4Y2FkMzYyOThhM2Y4NWEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1l
bnRwb3NpdGlvbjI4Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQllbnRSZWZDaGlsZDFOb3ROdWxs
OiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LmpzIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4Lmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjJiMjhlODNjMzA1NDRkYWFhODQxZjE3
ZmQxNWQ3YjhkYmM1MmVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3Vt
ZW50cG9zaXRpb24yOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4IjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi0JVXNpbmcgY29tcGFyZURvY3VtZW50UG9zaXRpb24gY2hlY2sgdGhlIGRvY3Vt
ZW50IHBvc2l0aW9uIG9mIHRoZSBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBlbnQ0J3MKLQlmaXJzdCBj
aGlsZCBhbmQgbGFzdCBjaGlsZC4gIEludm9rZSBjb21wYXJlRG9jdW1lbnRQb3NpdG9uIG9uIGZp
cnN0IGNoaWxkIHdpdGggbGFzdCBjaGlsZCBhcyBhIHBhcmFtZXRlcgotCXNob3VsZCByZXR1cm4g
Rk9MTE9XSU5HLCBhbmQgc2hvdWxkIHJldHVybiBQUkVDRURJTkcgdmljZSB2ZXJzYS4KLQotKiBA
YXV0aG9yIElCTQotKiBAYXV0aG9yIEplbm55IEhzdQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy1jb21wYXJl
RG9jdW1lbnRQb3NpdGlvbgotKi8KLWZ1bmN0aW9uIG5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bjI4KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWls
ZGVyLCAibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgiKSAhPSBudWxsKSByZXR1cm47Ci0g
ICAgdmFyIGRvYzsKLSAgICAgIHZhciB2YXJMaXN0OwotICAgICAgdmFyIHZhckVsZW07Ci0gICAg
ICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVudFJlZkNoaWxkMTsKLSAgICAgIHZhciBlbnRSZWZD
aGlsZDI7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0gICAgICB2YXIgZW50UmVm
Q2hpbGQyUG9zaXRpb247Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgCi0JaWYoCi0JKGdldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBh
bmRFbnRpdHlSZWZlcmVuY2VzIikgPT0gZmFsc2UpCi0JKSB7Ci0JdmFyTGlzdCA9IGRvYy5nZXRF
bGVtZW50c0J5VGFnTmFtZSgidmFyIik7Ci0gICAgICB2YXJFbGVtID0gdmFyTGlzdC5pdGVtKDIp
OwotICAgICAgYXNzZXJ0Tm90TnVsbCgidmFyRWxlbU5vdE51bGwiLHZhckVsZW0pOwotZW50UmVm
ID0gdmFyRWxlbS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZOb3RO
dWxsIixlbnRSZWYpOwotCi0JfQotCQotCQllbHNlIHsKLQkJCWVudFJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAgIAotCQl9Ci0JZW50UmVmQ2hpbGQxID0gZW50
UmVmLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMU5vdE51
bGwiLGVudFJlZkNoaWxkMSk7Ci1lbnRSZWZDaGlsZDIgPSBlbnRSZWYubGFzdENoaWxkOwotCi0g
ICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDJOb3ROdWxsIixlbnRSZWZDaGlsZDIpOwot
ZW50UmVmQ2hpbGQxUG9zaXRpb24gPSBlbnRSZWZDaGlsZDEuY29tcGFyZURvY3VtZW50UG9zaXRp
b24oZW50UmVmQ2hpbGQyKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVu
dHBvc2l0aW9uRm9sbG93aW5nMjgiLDQsZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIGVu
dFJlZkNoaWxkMlBvc2l0aW9uID0gZW50UmVmQ2hpbGQyLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9u
KGVudFJlZkNoaWxkMSk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvblBSRUNFRElORzI4IiwyLGVudFJlZkNoaWxkMlBvc2l0aW9uKTsKLSAgICAgICAKLX0K
LQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjI4KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyNTA4MjlmMTJjMjk2YjYxOTU2YjgxZmM2NjY1
ODJlMzYzMjI5ZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRw
b3NpdGlvbjI4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVy
c2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0
LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICIm
Izk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAi
JiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBo
YSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmls
ZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAg
PCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3Rj
IENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAg
IHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAg
ICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkg
ZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQg
ZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5z
IENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgot
PGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5z
OnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAg
IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFm
Zi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9
IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjguanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9
ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMg
YSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08
IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNl
IHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAg
PHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0
cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwv
Y29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4
NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBE
YWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRw
Oi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3Jk
aWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyY2E3ODE3YzgxNDg1ZWViMWZkNGJl
NGY4NWJkMWVlMjE3ZjQ5NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQll
bnRSZWZDaGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bjI5LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI5LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDlmZDQ1
ZmE5MTVjNGY1MmEwYzA4NzdhMTZiOTVlYTdhMmQ4OTE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS5qcworKysgL2Rldi9udWxsCkBAIC0xLDEy
OCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIg
Q29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVy
b3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRp
Y3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlz
IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRo
ZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53
My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQot
Ki8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVz
dC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rp
b24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5
IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVs
bDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJh
bWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAg
SWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0v
LyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3Rh
dHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGlt
bWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhl
IHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0g
J3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9j
dW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVy
ID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7
Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0g
ICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBt
ZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNo
cm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBz
eW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBh
Z2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRo
ZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlm
ICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JQ3JlYXRlIHR3byBlbnRpdHkgcmVmZXJlbmNl
IG5vZGVzLiBVc2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiB0byBjaGVjayBpZiB0aGUgY2hp
bGQgb2YgdGhlIGZpcnN0IEVudGl0eSAKLQlSZWYgbm9kZSBwcmVjZWRlcyB0aGUgY2hpbGQgb2Yg
dGhlIHNlY29uZCBFbnRpdHkgUmVmIG5vZGUsIGFuZCB0aGF0IHRoZSBjaGlsZCBvZiB0aGUgc2Vj
b25kIEVudGl0eSBSZWYgbm9kZQotCWZvbGxvd3MgdGhlIGNoaWxkIG9mIHRoZSBmaXJzdCBFbnRp
dHkgUmVmIG5vZGUuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIEplbm55IEhzdQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNOb2RlMy1jb21wYXJlRG9jdW1lbnRQb3NpdGlvbgotKi8KLWZ1bmN0aW9uIG5vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hl
Y2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjki
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NFbGVtOwotICAg
ICAgdmFyIGVudFJlZjE7Ci0gICAgICB2YXIgZW50UmVmMjsKLSAgICAgIHZhciBlbnRSZWZDaGls
ZDE7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQyOwotICAgICAgdmFyIGVudFJlZkNoaWxkMVBvc2l0
aW9uOwotICAgICAgdmFyIGVudFJlZkNoaWxkMlBvc2l0aW9uOwotICAgICAgdmFyIGFwcGVuZGVk
Q2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwot
ICAgICAgZW50UmVmMSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQiKTsKLSAgICAg
IGVudFJlZjIgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICBkb2NF
bGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0Vs
ZW0uYXBwZW5kQ2hpbGQoZW50UmVmMSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRWxlbS5h
cHBlbmRDaGlsZChlbnRSZWYyKTsKLSAgICAgIGVudFJlZkNoaWxkMSA9IGVudFJlZjEuZmlyc3RD
aGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVm
Q2hpbGQxKTsKLWVudFJlZkNoaWxkMiA9IGVudFJlZjIubGFzdENoaWxkOwotCi0gICAgICBhc3Nl
cnROb3ROdWxsKCJlbnRSZWZDaGlsZDJOb3ROdWxsIixlbnRSZWZDaGlsZDIpOwotZW50UmVmQ2hp
bGQxUG9zaXRpb24gPSBlbnRSZWZDaGlsZDEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZW50UmVm
Q2hpbGQyKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
Rm9sbG93aW5nMjkiLDQsZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIGVudFJlZkNoaWxk
MlBvc2l0aW9uID0gZW50UmVmQ2hpbGQyLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJlZkNo
aWxkMSk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvblBS
RUNFRElORzI5IiwyLGVudFJlZkNoaWxkMlBvc2l0aW9uKTsKLSAgICAgICAKLX0KLQotCi0KLQot
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5KCk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjkueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkueGh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGVhM2QyYTliNzIxMWQ0ZGY2MzVjNDY1YmI1OTZkMDViYTkxMmJi
MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjku
anMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21w
bGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5B
Y2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFy
PgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNl
Y3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtU
aGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFi
ICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxh
cywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dl
cgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAg
PHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwv
ZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBE
aXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRl
eGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5p
c3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ry
b25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwv
c3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQs
IElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJl
MDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
N2E5NWExZjYyY2UxNDc0OGYzNDYwNDIwNGM3MzI4Yjc2OTQ0YmVhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlMaW5lIDEw
MTogVHlwZUVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWdldGZlYXR1cmUwNC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlZ2V0ZmVhdHVyZTA0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOWY1
ZDIwZjc3YmZiOWRjYTBhMTBlODBlMWRmNTVlYmZiMjNjNGRhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlZ2V0ZmVhdHVyZTA0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjAyICswLDAgQEAK
LQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVt
LCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNl
YXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBV
bml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25z
b3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQot
ICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICog
IEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJn
ZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9h
ZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAg
cnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1
cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRp
bmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0
byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJh
aXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNl
dFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0g
ICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJv
dyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWls
ZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBw
cmVsb2FkKGRvY1JlZiwgImRvYyIsICJiYXJmb28iKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLUNoZWNrIGltcGxlbWVudGF0aW9uIG9mIE5vZGUuZ2V0RmVhdHVyZSBvbiBFbnRpdHlSZWZl
cmVuY2UuCi0KLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy1nZXRGZWF0
dXJlCi0qLwotZnVuY3Rpb24gbm9kZWdldGZlYXR1cmUwNCgpIHsKLSAgIHZhciBzdWNjZXNzOwot
ICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXRmZWF0dXJlMDQiKSAh
PSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBub2RlOwotICAgICAgdmFy
IG51bGxWZXJzaW9uID0gbnVsbDsKLQotICAgICAgdmFyIGZlYXR1cmVJbXBsOwotICAgICAgdmFy
IGlzU3VwcG9ydGVkOwotICAgICAgdmFyIGRvbUltcGw7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRv
Y1JlZiwgImRvYyIsICJiYXJmb28iKTsKLSAgICAgIGRvbUltcGwgPSBkb2MuaW1wbGVtZW50YXRp
b247Ci1ub2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgZmVh
dHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIkNvcmUiLG51bGxWZXJzaW9uKTsKLSAgICAgIGFz
c2VydFNhbWUoImNvcmVVbnNwZWNpZmllZFZlcnNpb24iLG5vZGUsZmVhdHVyZUltcGwpOwotZmVh
dHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoImNPckUiLG51bGxWZXJzaW9uKTsKLSAgICAgIGFz
c2VydFNhbWUoImNPckVVbnNwZWNpZmllZFZlcnNpb24iLG5vZGUsZmVhdHVyZUltcGwpOwotZmVh
dHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIitjT3JFIixudWxsVmVyc2lvbik7Ci0gICAgICBh
c3NlcnRTYW1lKCJQbHVzQ29yZVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxmZWF0dXJlSW1wbCk7
Ci1mZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgib3JnLnczYy5kb210cy5ib2d1cy5mZWF0
dXJlIixudWxsVmVyc2lvbik7Ci0gICAgICBhc3NlcnROdWxsKCJ1bnJlY29nbml6ZWRGZWF0dXJl
IixmZWF0dXJlSW1wbCk7Ci0gICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoImNPckUi
LCIyLjAiKTsKLSAgICAgIGFzc2VydFNhbWUoIkNvcmUyMCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci1m
ZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsIjMuMCIpOwotICAgICAgYXNzZXJ0
U2FtZSgiQ29yZTMwIixub2RlLGZlYXR1cmVJbXBsKTsKLWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1
cHBvcnRlZCgiWE1MIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0
RmVhdHVyZSgiWE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAot
CSkgewotCWFzc2VydFNhbWUoIlhNTFVuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQot
CX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIlNWRyIsbnVsbFZlcnNpb24pOwot
ICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIlNWRyIsbnVsbFZlcnNpb24pOwot
ICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJTVkdVbnNwZWNp
ZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3Vw
cG9ydGVkKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0
RmVhdHVyZSgiSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQK
LQkpIHsKLQlhc3NlcnRTYW1lKCJIVE1MVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwot
Ci0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiRXZlbnRzIixudWxsVmVyc2lv
bik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiRXZlbnRzIixudWxsVmVy
c2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIkV2
ZW50c1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9
IG5vZGUuaXNTdXBwb3J0ZWQoIkxTIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9
IG5vZGUuZ2V0RmVhdHVyZSgiTFMiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3Vw
cG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiTFNVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1w
bCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJMUy1Bc3luYyIsbnVs
bFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIkxTLUFzeW5j
IixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2Vy
dFNhbWUoIkxTQXN5bmNVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNT
dXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJYUGF0aCIsbnVsbFZlcnNpb24pOwotICAgICAg
ZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIlhQYXRoIixudWxsVmVyc2lvbik7Ci0gICAg
ICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIlhQYXRoVW5zcGVjaWZp
ZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBv
cnRlZCgiK0hUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRG
ZWF0dXJlKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAot
CSkgewotCWFzc2VydE5vdE51bGwoIlBsdXNIVE1MVW5zcGVjaWZpZWQiLGZlYXR1cmVJbXBsKTsK
LQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIitTVkciLG51bGxWZXJzaW9u
KTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJTVkciLG51bGxWZXJzaW9u
KTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0Tm90TnVsbCgiUGx1
c1NWR1Vuc3BlY2lmaWVkIixmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlZ2V0ZmVhdHVyZTA0KCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LnhodG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2Q4NWM1M2MzODIzYmI4MTFiMWU3NDkz
MzlhNTU3M2IyNTcwNDZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgWwot
PCFFTlRJVFkgZW50MSAnZm9vJz4KLTwhRU5USVRZIGVudDIgJ2Zvbzxici8+Jz4KLTwhRUxFTUVO
VCBodG1sIChoZWFkLCBib2R5KT4KLTwhQVRUTElTVCBodG1sIHhtbG5zIENEQVRBICNJTVBMSUVE
PgotPCFFTEVNRU5UIGhlYWQgKHRpdGxlLHNjcmlwdCopPgotPCFFTEVNRU5UIHNjcmlwdCAoI1BD
REFUQSk+Ci08IUFUVExJU1Qgc2NyaXB0IAotICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKLSAgICAg
dHlwZSBDREFUQSAjSU1QTElFRAotICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVEPgotPCFFTEVN
RU5UIHRpdGxlICgjUENEQVRBKT4KLTwhRUxFTUVOVCBib2R5IChwKT4KLTwhQVRUTElTVCBib2R5
IG9ubG9hZCBDREFUQSAjSU1QTElFRD4KLTwhRUxFTUVOVCBwICgjUENEQVRBfGJyKSo+Ci08IUVM
RU1FTlQgYnIgRU1QVFk+Ci1dPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPgotPGhlYWQ+Ci08dGl0bGU+cmVwbGFjZVdob2xlVGV4dCBzYW1wbGU8L3RpdGxlPgot
PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nc2VsZnhodG1sLmpzJz48L3Njcmlw
dD48c2NyaXB0IGNoYXJzZXQ9J1VURi04JyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nbm9k
ZWdldGZlYXR1cmUwNC5qcyc+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
PmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLTxwPmJhcjwvcD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5YzVjMjljZGQ5OTdiYWU5MWJjMGM1YWI3OTQwNWI4MDEyNjgzM2Ni
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNQotU3Rh
dHVzCWVycm9yCi1NZXNzYWdlCUxpbmUgMTIxOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS5qcyBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjE0NjdhM2JjNDE2MjBkMzkwZWM3ZDRkNWQ5
MjI4Yjg4NDBjOTBiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOC
wqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMg
SW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1m
b3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1S
aWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LC
riBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQg
d2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9j
b3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRz
IFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRp
ZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJl
dHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9u
b2RlZ2V0dGV4dGNvbnRlbnQxNSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7
Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVz
dCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlv
bnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4g
IE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQg
dGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVy
aW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAg
IHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8v
ICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAg
ICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAg
c2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAg
ICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0
cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCByZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQg
b2YgdGhpcyBub2RlIGFuZCBpdHMgZGVzY2VuZGFudHMuCi0JCi0JSW52b2tlIHRoZSBtZXRob2Qg
Z2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRWxlbWVudCBub2RlIHdpdGggbmV3IFRleHQsIEVudGl0
eVJlZmVyZW5jZXMgIAotCUNEQVRBU2VjdGlvbiwgUEkgYW5kIENvbW1lbnQgbm9kZXMgYW5kIGNo
ZWNrIGlmIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhIHNpbmdsZSAKLQljb25jYXRlbmF0ZWQgU3Ry
aW5nIHdpdGggaXRzIGNvbnRlbnQuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwg
RGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMt
Q29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9kZWdl
dHRleHRjb250ZW50MTUoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxp
emF0aW9uKGJ1aWxkZXIsICJub2RlZ2V0dGV4dGNvbnRlbnQxNSIpICE9IG51bGwpIHJldHVybjsK
LSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFy
IGNvbW1lbnQ7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFy
IHBpOwotICAgICAgdmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0g
ICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRv
YykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9
Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZWxl
bSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwiZG9t
MzplbGVtIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7Ci0gICAg
ICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBlbnRSZWYg
PSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBwaSA9IGRvYy5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oIlBJVCIsIlBJRGF0YSAiKTsKLSAgICAgIGNkYXRhID0g
ZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBl
bGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRD
aGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVu
dFJlZik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChwaSk7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjZGF0YSk7Ci0gICAgICB0ZXh0Q29u
dGVudCA9IGVsZW0udGV4dENvbnRlbnQ7Ci0KLSAgICAgIGRvYy5ub3JtYWxpemVEb2N1bWVudCgp
OwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlZ2V0dGV4dGNvbnRlbnQxNSIsIlRleHQgzrJDRGF0
YSIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgbm9kZWdldHRleHRjb250ZW50MTUoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJkMzZjYmEzYzNkYTA5MGNiYWQ3NzQ3ZDBl
ODkxYzVmMjRiNjk0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBb
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+
Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsi
PgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1
MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJ
U1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAg
ICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8
c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9z
cGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEg
I0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlZ2V0dGV4dGNvbnRlbnQxNS5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2I0MTQ0ZDA1ZmYwOGQ3MmU4ZTk4NGFhMTEzMTU0ODY0YjgxMWE0Yi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYKLVN0YXR1cwllcnJvcgotTWVzc2Fn
ZQlMaW5lIDEyMzogVHlwZUVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU0MWY3Yzg0MTllOGQxMTU2NDIwODg0OTU4ODY4ZmFhZDYxNTVkOWEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTM1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3Js
ZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNo
bm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFu
ZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBU
aGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5z
ZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlm
aWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAg
ICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBu
dWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBm
cmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8g
ICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMK
LS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBz
dGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMg
aW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0
aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMg
PSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBk
b2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxk
ZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9u
QXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUpOwotICAgICAgIHNldEltcGxlbWVudGF0
aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVuY2VzIiwgdHJ1ZSk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRob2Qg
Z2V0VGV4dENvbnRlbnQgcmV0dXJucyB0aGUgdGV4dCBjb250ZW50IG9mIHRoaXMgbm9kZSBhbmQg
aXRzIGRlc2NlbmRhbnRzLgotCQotCUludm9rZSB0aGUgbWV0aG9kIGdldFRleHRDb250ZW50IG9u
IGEgbmV3IERvY3VtZW50RnJhZ21lbnQgbm9kZSB3aXRoIG5ldyBUZXh0LCBFbnRpdHlSZWZlcmVu
Y2VzICAKLQlDREFUQVNlY3Rpb24sIFBJIGFuZCBDb21tZW50IG5vZGVzIGFuZCBjaGVjayBpZiB0
aGUgdmFsdWUgcmV0dXJuZWQgaXMgYSBzaW5nbGUgCi0JY29uY2F0ZW5hdGVkIFN0cmluZyB3aXRo
IGl0cyBjb250ZW50LiAgCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAw
NDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVnZXR0ZXh0Y29u
dGVudDE2KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihi
dWlsZGVyLCAibm9kZWdldHRleHRjb250ZW50MTYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgZWxl
bUNoaWxkOwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGVu
dFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciB0ZXh0Q29u
dGVudDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93
d3cudzMub3JnL0RPTS9UZXN0IiwiZG9tMzplbGVtIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRl
VGV4dE5vZGUoIlRleHQgIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNv
bW1lbnQgIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRh
Iik7Ci0gICAgICBwaSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oIlBJVCIsIlBJ
RGF0YSAiKTsKLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RhdGEiKTsK
LSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBl
bmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxl
bS5hcHBlbmRDaGlsZChwaSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGls
ZChjZGF0YSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlbGVt
KTsKLSAgICAgIGRvYy5ub3JtYWxpemVEb2N1bWVudCgpOwotICAgICAgdGV4dENvbnRlbnQgPSBk
b2NGcmFnLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29u
dGVudDE2IiwiVGV4dCDOskNEYXRhIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlZ2V0dGV4dGNvbnRlbnQxNigpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmVmYzE1
ZWI0ZWYwMWZiM2ZlZDFjYmQ4NTg2NGU0NTU5MWQxY2Y5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAg
QEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBF
IGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAi
eGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFF
TlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFF
TlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAg
PCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMg
Im5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlv
bjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAg
ICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1Q
TElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0
bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
ICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJ
U1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4K
LSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJ
U1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBu
dW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwot
ICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3Rh
bmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi
IGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0
bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNj
cmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVnZXR0
ZXh0Y29udGVudDE2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlz
IGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11d
PgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVy
ZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+
Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0g
IDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFn
ZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9
Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9h
ZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0i
aHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2Jl
cnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAg
PHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEg
Tm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzNmJlYjMyN2Q4MGRlZjJjOTc5ZWI0OTExZmIzNzc3MTAzMzMy
MmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNwot
U3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJbm9kZWdldHRleHRjb250ZW50MTc6IGFzc2VydEVxdWFs
cyBmYWlsZWQsIGFjdHVhbCAsIGV4cGVjdGVkIM6yLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LmpzIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjRiYTYwMWE5MWZlNTE1OGE4YjEzMjdjODMzMjM4Y2Zi
OWE1ODYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDExNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAx
LTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZv
cm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBS
ZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3
YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdo
dC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRo
YXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9m
IHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHRoZSBtZXRo
b2QgZ2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYW5kIGNoZWNr
IGlmIHRoZSAKLQl2YWx1ZSByZXR1cm5lZCBpcyB0aGUgRW50aXR5UmVmZXJlbmNlJ3MgY29udGVu
dC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05v
ZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9kZWdldHRleHRjb250ZW50MTcoKSB7Ci0g
ICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2Rl
Z2V0dGV4dGNvbnRlbnQxNyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIGVsZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIHRleHRDb250ZW50OwotICAg
ICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAg
IGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICB0ZXh0Q29udGVudCA9
IGVudFJlZi50ZXh0Q29udGVudDsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlZ2V0dGV4dGNv
bnRlbnQxNyIsIs6yIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICBub2RlZ2V0dGV4dGNvbnRlbnQxNygpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3Lnho
dG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVu
dDE3LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzljMjJjNGQxZTU4NGRh
MGRhZjllODM2ZGM0NWMxYTYzNDM5NGUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0
dGV4dGNvbnRlbnQxNy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAg
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0
cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0
YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVs
dGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9u
MUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4K
LSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpk
bXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAg
ICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255
bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5U
SVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVt
ZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4
bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4t
LT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4
bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNf
c3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFy
c2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVnZXR0ZXh0Y29udGVu
dDE3LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2Fk
Q29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxl
bT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNv
ZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RB
VEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RB
VEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBh
IHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+
MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBE
YWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9
Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+
Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+
Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAw
MDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25u
ZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFz
LCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3
dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8
L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCww
MDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBS
b2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0
YmVmb3JlMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVpbnNlcnRiZWZvcmUxMS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM5N2ZhODMxMGQzN2RlZTAxMGJlNWM0OTE3OTA2NjUxN2U4YjMxZTMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEKLVN0YXR1cwlTdWNjZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJl
Zm9yZTExLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRi
ZWZvcmUxMS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZThhOGI5ZWMyYzIwNDBk
YjE4MmQxMWI2YzFkYzg5ZGZkODI0NTQ0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWlu
c2VydGJlZm9yZTExLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQ1ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAt
MTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5n
IHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24g
ZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBz
dGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBs
ZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdo
ZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdl
KCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8K
LSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2Vw
dGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsK
LQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9h
ZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
ICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihi
dWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0
aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRl
c3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFz
IGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxs
b3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rp
b24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0K
LQotCi0JVXNpbmcgaW5zZXJ0QmVmb3JlIG9uIGEgRG9jdW1lbnRGcmFnbWVudCBub2RlIGF0dGVt
cHQgdG8gaW5zZXJ0IGEgY2hpbGQgbm9kZXMgYmVmb3JlCi0Jb3RoZXIgcGVybWlzc2libGUgbm9k
ZXMgYW5kIHZlcmlmeSB0aGUgY29udGVudHMvbmFtZSBvZiBlYWNoIGluc2VydGVkIG5vZGUuCi0K
LSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC05NTIy
ODA3MjcKLSovCi1mdW5jdGlvbiBub2RlaW5zZXJ0YmVmb3JlMTEoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlaW5zZXJ0YmVmb3Jl
MTEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwot
ICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAg
IHZhciB0eHQ7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBp
bnNlcnRlZDsKLSAgICAgIHZhciBpbnNlcnRlZFZhbDsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxk
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
IGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRv
Yy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJib2R5Iik7
Ci0gICAgICBwaSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oIlBJVGFyZ2V0Iiwi
UElEYXRhIik7Ci0gICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQiKTsK
LSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgY2RhdGEgPSBk
b2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQSIpOwotICAgICAgZVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5h
cHBlbmRDaGlsZChlbGVtKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENo
aWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNvbW1l
bnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQodHh0KTsKLSAg
ICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVSZWYpOwotICAgICAgaW5zZXJ0ZWQg
PSBkb2NGcmFnLmluc2VydEJlZm9yZShjb21tZW50LHBpKTsKLSAgICAgIGluc2VydGVkVmFsID0g
aW5zZXJ0ZWQuZGF0YTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFf
Q29tbWVudCIsIkNvbW1lbnQiLGluc2VydGVkVmFsKTsKLSAgICAgICBpbnNlcnRlZCA9IGRvY0Zy
YWcuaW5zZXJ0QmVmb3JlKHR4dCxjb21tZW50KTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5zZXJ0
ZWQuZGF0YTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfVGV4dCIs
IlRleHQiLGluc2VydGVkVmFsKTsKLSAgICAgICBpbnNlcnRlZCA9IGRvY0ZyYWcuaW5zZXJ0QmVm
b3JlKGNkYXRhLHR4dCk7Ci0gICAgICBpbnNlcnRlZFZhbCA9IGluc2VydGVkLmRhdGE7Ci0KLSAg
ICAgIGFzc2VydEVxdWFscygibm9kZWluc2VydGJlZm9yZTExX0NEQVRBIiwiQ0RBVEEiLGluc2Vy
dGVkVmFsKTsKLSAgICAgICBpbnNlcnRlZCA9IGRvY0ZyYWcuaW5zZXJ0QmVmb3JlKGVSZWYsY2Rh
dGEpOwotICAgICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5ub2RlTmFtZTsKLQotICAgICAgYXNz
ZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfRW50MSIsImFscGhhIixpbnNlcnRlZFZhbCk7
Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlaW5zZXJ0
YmVmb3JlMTEoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxYTRhYTY4MzczODVlMDAwMzMzZDZiYzVjNDgxMTg2Nzk0NmFkNWRkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRB
Pz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5
NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAi
JiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3Rh
dGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZ
U1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEg
J3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6
bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBM
SUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RB
VEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4i
PgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlz
IGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+
aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4
aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJub2RlaW5zZXJ0YmVmb3JlMTEuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE0MmYzZTYzNTQ3NTA3ZWU1ZGEyZGYzNmVlZDE1
YjRjYzJmZDU3Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUx
NQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3ZjM3MTZlYTE5ZDRhZjcxN2RiNjRhMWIwNjM1ZTQ1OTU5MDVlM2U0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
NzcgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUiOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
Y3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAg
Ci0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJ
bml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9h
ZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3Vz
IGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMg
aXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8g
YmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAg
fQotfQotCi0KLS8qKgotKiAKLQlBIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyByYWlz
ZWQgaWYgdGhlIG5vZGUgaXMgcmVhZC1vbmx5LgotCQotCVVzaW5nIGluc2VydEJlZm9yZSBvbiBh
IG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIGluc2VydCBFbGVtZW50LCBUZXh0
LAotCUNvbW1lbnQsIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBhbmQgQ0RBVEFTZWN0aW9uIG5vZGVz
IGJlZm9yZSBhbiBlbGVtZW50IGNoaWxkCi0JYW5kIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElP
Tl9BTExPV0VEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWls
IERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0z
LUNvcmUtMjAwNDA0MDcvY29yZSNJRC05NTIyODA3MjcKLSovCi1mdW5jdGlvbiBub2RlaW5zZXJ0
YmVmb3JlMTUoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9u
KGJ1aWxkZXIsICJub2RlaW5zZXJ0YmVmb3JlMTUiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbUNoaWxkOwotICAgICAgdmFy
IHR4dDsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIGNvbW1lbnQ7Ci0gICAgICB2YXIgcGk7
Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgaW5zZXJ0ZWQ7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGVsZW1DaGlsZCA9IGVudFJlZi5maXJz
dENoaWxkOwotCi0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBU2Vj
dGlvbiIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAg
ICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoY2RhdGEsZWxlbUNoaWxkKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMSIsc3VjY2Vzcyk7Ci0JfQotcGkgPSBkb2Mu
Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJ0YXJnZXQiLCJkYXRhIik7Ci0gICAgICAKLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGluc2VydGVkID0gZW50
UmVmLmluc2VydEJlZm9yZShwaSxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUl8yIixzdWNjZXNzKTsKLQl9Ci1jb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNv
bW1lbnQiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAg
ICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKGNvbW1lbnQsZWxlbUNoaWxkKTsK
LSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29k
ZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0
aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMyIsc3VjY2Vzcyk7Ci0JfQotdHh0ID0g
ZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxz
ZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZSh0
eHQsZWxlbUNoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9
ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQot
CQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNCIsc3VjY2Vz
cyk7Ci0JfQotZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwiLCJib2R5Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5
IHsKLSAgICAgICAgICAgIGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShlbGVtLGVsZW1D
aGlsZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0
VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzUiLHN1Y2Nlc3MpOwotCX0K
LQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWluc2VydGJlZm9yZTE1
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWluc2VydGJlZm9yZTE1LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVpbnNlcnRiZWZvcmUxNS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NmYwZDAwYjljYTE2MzcxZWZjMDJmOGU0MDFlYjQ1ZDg1N2Y0MWRjMS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0g
ICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJ
U1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAg
ICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBM
SUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwh
QVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21t
ZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEt
aW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZm
PC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMi
Lz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9k
ZWluc2VydGJlZm9yZTE1LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkg
b25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0
cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtU
aGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQy
O11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJl
ZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2Nv
ZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+
Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1h
bmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4K
LSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8
Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIg
aWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGgg
Um9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1w
Mj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5S
b2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4K
LSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4
MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9i
b2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxYzBlMTc1NGY3YTkyY2ZlZTg5NDE5MjhiNGVmNmIxN2I5YTc3ZjFm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMgotU3RhdHVzCVN1
Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGUxOGEyMjcx
ZThhYzllODY5YmMxZjlhZjVkMTcxMTYzNzg5OGI4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlbW92ZWNoaWxkMTIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwg
dHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVm
ID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0g
ICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBw
cmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAo
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9u
RXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUg
Y29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4g
c2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3Vt
ZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdo
aWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4K
LWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoq
Ci0qIAotCVRoZSBtZXRob2QgcmVtb3ZlQ2hpbGQgcmVtb3ZlcyB0aGUgY2hpbGQgbm9kZSBpbmRp
Y2F0ZWQgYnkgb2xkQ2hpbGQgZnJvbSB0aGUgbGlzdCAKLQlvZiBjaGlsZHJlbiwgYW5kIHJldHVy
bnMgaXQuIAotCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRG9jdW1lbnRGcmFnbWVudCBu
b2RlIGF0dGVtcHQgdG8gcmVtb3ZlIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlLgotICAgICAg
ICBBbHNvIGF0dGVtcHQgdG8gcmVtb3ZlIHRoZSBkb2N1bWVudCBmcmFnbWVudCBub2RlIGZyb20g
dGhlIEVudGl0eVJlZmVyZW5jZS4gIFZlcmlmeSB0aGF0IGEgCi0gICAgICAgIE5PX01PRElGSUNB
VElPTl9BTExPV0VEX0VSUiAoRW50aXR5UmVmZXJlbmNlIG5vZGUgaXMgcmVhZC1vbmx5KSBvciBh
IE5PVF9GT1VORF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVp
bCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwt
My1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5vZGVyZW1v
dmVjaGlsZDEyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlv
bihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFy
IGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwotICAgICAgdmFyIGVSZWY7Ci0gICAgICB2YXIgcmVt
b3ZlZEVSZWY7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIHZhciByZW1vdmVkQ2hp
bGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlUmVmID0g
ZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZVJlZik7Ci0gICAgICByZW1vdmVkQ2hpbGQgPSBkb2NGcmFn
LnJlbW92ZUNoaWxkKGVSZWYpOwotICAgICAgcmVtb3ZlZEVSZWYgPSBkb2NGcmFnLmZpcnN0Q2hp
bGQ7Ci0KLSAgICAgIGFzc2VydE51bGwoIm5vZGVyZW1vdmVjaGlsZDEyIixyZW1vdmVkRVJlZik7
Ci0gICAgCi0gICAgICB0cnkgewotICAgICAgcmVtb3ZlZENoaWxkID0gZVJlZi5yZW1vdmVDaGls
ZChkb2NGcmFnKTsKLSAgICAgIAotICAgICAgfSBjYXRjaCAoZXgpIHsKLQkJICBpZiAodHlwZW9m
KGV4LmNvZGUpICE9ICd1bmRlZmluZWQnKSB7ICAgICAgCi0gICAgICAgc3dpdGNoKGV4LmNvZGUp
IHsKLSAgICAgICBjYXNlIC8qIE5PVF9GT1VORF9FUlIgKi8gOCA6Ci0gICAgICAgYnJlYWs7Ci0g
ICAgICBjYXNlIC8qIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiAqLyA3IDoKLSAgICAgICBi
cmVhazsKLSAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgIHRocm93IGV4OwotICAgICAgICAg
IH0KLSAgICAgICB9IGVsc2UgeyAKLSAgICAgICB0aHJvdyBleDsKLSAgICAgICAgfQotICAgICAg
ICAgfQotICAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVy
ZW1vdmVjaGlsZDEyKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDczNmVkOTJmMDNiYTU0YWVjODI3ZGI3ODRmNjA1NmQ5MjM0OTQ5NGYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLnhodG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFU
QT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYj
OTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24g
IiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBT
WVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRB
ICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
Om5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1Q
TElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+
Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9Y
TUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
eGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ibm9kZXJlbW92ZWNoaWxkMTIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2ZTU2YTZjNmEwNjMyMDA4NjUxNTBmZGU4OGM4M2Y5
NGY1MmE0YWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzCi1T
dGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0eHROb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzgwZmZiNGE2NTJkOTAy
ZGEyZDJkZmY1MTc2ODY3ZmU5NjJmM2Q0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVt
b3ZlY2hpbGQxMy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0KLS8qCi1Db3B5
cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2Fj
aHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29y
dGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSku
IEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUg
aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdh
bC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAg
ICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVy
aSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewot
ICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
My9jb3JlL25vZGVyZW1vdmVjaGlsZDEzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAw
MDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRo
ZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhj
ZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFy
dGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRl
IGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4g
ZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkg
ewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAg
ICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlv
bgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQot
ICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNp
bmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byBy
ZW1vdmUgdGhlIGZpcnN0IGNoaWxkIAotCW9mIHRoaXMgbm9kZSBhbmQgdmVyaWZ5IGlmIGEgTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5jdGlv
biBub2RlcmVtb3ZlY2hpbGQxMygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5p
dGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZW1vdmVjaGlsZDEzIikgIT0gbnVsbCkgcmV0dXJu
OwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGVSZWY7Ci0gICAgICB2
YXIgcmVtb3ZlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAg
ICAgIHR4dCA9IGVSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgidHh0Tm90
TnVsbCIsdHh0KTsKLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAg
ICAgcmVtb3ZlZCA9IGVSZWYucmVtb3ZlQ2hpbGQodHh0KTsKLSAgICAgICAgfQotCQljYXRjaChl
eCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYg
ZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05f
QUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTMoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMy54aHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzEzMTdhNDYzZTE5ZTk2ZDljMTI1NDY3OWZiNTc1ZTdi
OWZjMDU1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMueGh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RF
U1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFRE
IFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVO
VElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVO
VElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFF
TlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAg
PCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJ
T04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAg
ICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6
eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0
YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+
Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxMy5qcyIvPjxzY3JpcHQgdHlwZT0n
dGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9
PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJv
bmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0g
IDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZl
LiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRo
YSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJl
ZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4K
LSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29t
Ij4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4K
LSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4K
LSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBp
ZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcg
SXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6
Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55
IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8
c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4
PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIzNWJmNGRmZGIwMGUyNWUw
ODE4YjE2ZDBkMGNhYTU4OTVmNzk2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92
ZWNoaWxkMTQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0
CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJl
bW92ZWNoaWxkMTQKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXBpTm90TnVsbDogYXNzZXJ0Tm90
TnVsbCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDNk
NWExOTMzZWU5NzY1YTI5YzU3NWJjYjVmMGY1OWRkMWFmZWVhMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjIgKzAsMCBA
QAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRp
dW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJl
c2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlv
IFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmli
dXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0Nv
bnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQot
Ci0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAg
KiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRh
cmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNCI7Ci0gICB9Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotCVVzaW5nIHJlbW92ZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2Rl
IGF0dGVtcHQgdG8gcmVtb3ZlIGl0cyBsYXN0IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiAKLQljaGls
ZCBub2RlIGFuZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhy
b3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUj
SUQtMTczNDgzNDA2NgotKi8KLWZ1bmN0aW9uIG5vZGVyZW1vdmVjaGlsZDE0KCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92
ZWNoaWxkMTQiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciByZW1v
dmVkOwotICAgICAgdmFyIGVSZWY7Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2YXIgZW50TmFtZTsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBl
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgcGkgPSBlUmVm
Lmxhc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgicGlOb3ROdWxsIixwaSk7Ci0KLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbW92ZWQgPSBlUmVm
LnJlbW92ZUNoaWxkKHBpKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2Vz
cyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJ
fQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIiLHN1Y2Nl
c3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlbW92
ZWNoaWxkMTQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDA4NGY3ZDc0NWVmZDI3YzQ2ZWQ4NTc1ZjY3N2Q4MmYwODc2NDM2ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTQueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0
bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0g
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
QVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVE
Ci0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgot
ICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlz
IGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNf
c3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRt
bC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJub2RlcmVtb3ZlY2hpbGQxNC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE1LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODAyZTBjMmJhOGJmOGVjYTYxYTg1MmY5NTZmMGM4MWQ1YmI4
YzkyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUKLVN0YXR1
cwlmYWlsdXJlCi1NZXNzYWdlCWVsZW1Ob3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1M2IzZjdjYzhlMDgxMWJiODBi
M2U3YjRjYTk5MDQ5ZGQwOTVjN2QwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNS5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVyZW1vdmVjaGlsZDE1IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAw
MDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxs
ZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0
ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0
aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVk
LiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFu
ZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50
ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewot
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAg
Ly8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgot
ICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAg
ICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0K
LSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVy
LCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9m
IAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgot
Ly8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBs
ZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRo
ZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcg
cmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byByZW1v
dmUgYW4gRWxlbWVudCBjaGlsZCAKLQlhbmQgdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSIGlzIHRocm93bi4gCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNo
aWxkMTUoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxNSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIGVSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbnROYW1lOwot
ICAgICAgdmFyIHJlbW92ZWQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgZVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDQi
KTsKLSAgICAgIGVsZW0gPSBlUmVmLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwo
ImVsZW1Ob3ROdWxsIixlbGVtKTsKLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVtb3ZlZCA9IGVSZWYucmVtb3ZlQ2hpbGQoZWxlbSk7Ci0gICAgICAgIH0K
LQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRl
ZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZW1vdmVjaGlsZDE1KCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhNDg2MjdhNWMxMWJlMjY3ZTBkY2Ez
NGQwNThiODRkYjkwNTJjNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDE1LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0i
MS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIg
WwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0Njsi
PgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7
Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5
NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRM
SVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRB
ICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
OmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAg
ICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAi
PHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwv
c3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRB
ICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2Qi
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlbW92ZWNoaWxkMTUuanMiLz48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2Vt
PgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50
PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMw
IE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0
aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFu
IGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+
PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1h
OwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5u
ZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVz
PC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAs
MDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
Om5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxz
dHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rvcjwv
Y29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4K
LSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8
Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8
dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBU
ZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2Vj
aGlsZDE4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Q5Zjg0
MTg4ZGYxYTAxZDk0ZTAzYmM1MjQ3Njc1MWIzMjkxMjE1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDE4LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIg
KzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTguanMgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTBiNjcyYmM0OGQ5YTdjNTYwOWM2NmY2OGZi
OWMwYzFhOTIyNDhmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkg
MjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5z
dGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3Ig
SW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdo
dHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBT
b2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5
cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVS
SSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmll
ciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVy
biAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMTgiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFy
IGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0
aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3Vp
dGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBh
c3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhl
cndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBl
eGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0
aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRV
cFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNy
ZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8v
Ci0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2Nz
TG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAo
dHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlz
LmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0g
Y2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsK
LSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0v
LwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAg
ICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8g
ICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAot
Ly8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAg
ICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxl
dGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNl
Q2hpbGQgb24gYSBEb2N1bWVudEZyYWdtZW50IG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGEgQ0RB
VEFTZWN0aW9uIG5vZGUgd2l0aCAKLQlhIEVudGl0eVJlZmVyZW5jZSBhbmQgdmljZSB2ZXJzYSB2
ZXJpZnkgdGhlIGRhdGEgb2YgdGhlIHJlcGxhY2VkIG5vZGVzLgotCi0qIEBhdXRob3IgSUJNCi0q
IEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JF
Qy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rp
b24gbm9kZXJlcGxhY2VjaGlsZDE4KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJ
bml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDE4IikgIT0gbnVsbCkgcmV0
dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBlbnRSZWY7
Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcmVwbGFjZWRDRGF0YTsKLSAgICAgIHZhciBy
ZXBsYWNlZEVyZWY7Ci0gICAgICB2YXIgY2RhdGFOYW1lOwotICAgICAgdmFyIGVyZWZOYW1lOwot
ICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdt
ZW50KCk7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBU2VjdGlv
biIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsK
LSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChjZGF0YSk7Ci0gICAgICByZXBs
YWNlZENEYXRhID0gZG9jRnJhZy5yZXBsYWNlQ2hpbGQoZW50UmVmLGNkYXRhKTsKLSAgICAgIGNk
YXRhTmFtZSA9IHJlcGxhY2VkQ0RhdGEubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMo
Im5vZGVyZXBsYWNlY2hpbGQxOF8xIiwiQ0RBVEFTZWN0aW9uIixjZGF0YU5hbWUpOwotICAgICAg
IHJlcGxhY2VkRXJlZiA9IGRvY0ZyYWcucmVwbGFjZUNoaWxkKGNkYXRhLGVudFJlZik7Ci0gICAg
ICBlcmVmTmFtZSA9IHJlcGxhY2VkRXJlZi5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxz
KCJub2RlcmVwbGFjZWNoaWxkMThfMiIsImFscGhhIixlcmVmTmFtZSk7Ci0gICAgICAgCi19Ci0K
LQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMTgoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMTgueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDE4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZDc2N2I5
ZWFmODRlMmFjZWQzMWNhNTljZmEzOTE0MzZkM2MyZTNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMTgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBA
Ci08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBo
dG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInho
dG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5U
SVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5U
SVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwh
RU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJu
b3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24y
RmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAg
eG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1s
Ci0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAg
ICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNU
IHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVt
YmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAg
ICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5j
ZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxl
PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3Jp
cHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFj
ZWNoaWxkMTguanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9h
ZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9
ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5F
TVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMg
YSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08
IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNl
IHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAg
PHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJl
dGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpk
bXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0
cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwv
Y29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4
NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBE
YWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRw
Oi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBN
eWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3Vw
PjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3Jk
aWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQxOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYThhMmQzNjFlOTEwNmQ0ZDFkODBlNTEyYmNkZWM1ODBiM2IwZTc0OC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOQotU3RhdHVzCVN1Y2Nl
c3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMTkuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDE5LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjlhMTdkZjk3
ZjQzZDAzNTJmM2JkOGFkMWM1YzkzNDA4ZjM1YjFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMTkuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotCi0v
KgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAot
KE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNo
IENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZl
cnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRp
dW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAv
KioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJl
dHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVS
SSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkiOwotICAgfQotCi12YXIgZG9jc0xvYWRl
ZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1
bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJh
dGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5n
IGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8g
Y29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlz
ZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRV
cFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAg
ICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cg
ZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRl
cigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJl
bG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVy
cm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNv
bXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNl
dFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVu
dCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGlj
aCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgot
KiAKLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYSBEb2N1bWVudEZyYWdtZW50IG5vZGUgYXR0ZW1w
dCB0byByZXBsYWNlIGFuIEVsZW1lbnQgbm9kZSB3aXRoIAotCWl0cyBFbnRpdHlSZWZlcmVuY2Ug
Y2hpbGQgdmVyaWZ5IHRoZSBub2RlTmFtZSBvZiB0aGUgcmVwbGFjZWQgbm9kZS4KLQotKiBAYXV0
aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwot
Ki8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQxOSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAg
IGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQxOSIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2
YXIgZW50UmVmOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICB2
YXIgbm9kZU5hbWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0
ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZG9tMzpwIik7Ci0gICAgICBlbnRSZWYgPSBk
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFn
LmFwcGVuZENoaWxkKGVsZW0pOwotICAgICAgcmVwbGFjZWQgPSBkb2NGcmFnLnJlcGxhY2VDaGls
ZChlbnRSZWYsZWxlbSk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQxOSIsImRvbTM6cCIsbm9kZU5hbWUp
OwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxh
Y2VjaGlsZDE5KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzI1YjJjYjNiM2JlNzBlZDc5NGJlMWYwMjAzMGIzNmQxOTM0NzNlNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFU
QT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYj
OTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24g
IiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBT
WVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRB
ICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
Om5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1Q
TElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+
Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9Y
TUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
eGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ibm9kZXJlcGxhY2VjaGlsZDE5LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hl
YWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBN
YXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4
YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVz
YS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08
IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJl
ciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24g
d2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNy
ZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1Q
MDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBh
cnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0
OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFz
IDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlz
dGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ry
b25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
JmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAg
PHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlz
dDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0g
PC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MWRhZjJmZWYzNWVkYjM3Mzk1ZjQ0OTczYzg4
MTU1MjI2YmI3YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3
dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxk
MjIKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZmQzZjQyM2Y3MzVmM2YxYjI1Y2E1ZTRjYjM2MDgyNTYzMDNhNzQ1YS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTQ1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyIjsKLSAgIH0K
LQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8K
LS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJl
Zm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUg
YXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAg
ZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAg
ICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5
Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0v
LwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcn
OwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVp
bGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRl
Q29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAg
IAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNo
SW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxv
YWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91
cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVz
IGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRv
IGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJl
ZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gcmVwbGFjZSBhbiBFbnRpdHlSZWZlcmVuY2Ugbm9kZSB3
aXRoIAotCWl0cyBFbGVtZW50IHBhcmVudCwgd2l0aCBpdHNlbGYgYW5kIHZpY2UgdmVyc2EgdmVy
aWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0
aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwot
Ki8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQyMigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAg
IGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQyMiIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJlZk1haW47Ci0gICAg
ICB2YXIgZW50UmVmOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsK
LSAgICAgIHZhciByZXBsYWNlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZG9tMzpwIik7Ci0gICAgICBlbnRSZWZNYWluID0g
ZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVt
LmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJ
dHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkQ2hpbGQgPSBlbnRSZWZNYWluLnJlcGxhY2VDaGls
ZChlbGVtLGVudFJlZik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzEiLHN1Y2Nl
c3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAg
cmVwbGFjZWRDaGlsZCA9IGVudFJlZk1haW4ucmVwbGFjZUNoaWxkKGVudFJlZixlbGVtKTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfMiIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlz
dWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNlZENoaWxkID0gZW50
UmVmTWFpbi5yZXBsYWNlQ2hpbGQoZW50UmVmTWFpbixlbnRSZWYpOwotICAgICAgICB9Ci0JCWNh
dGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVk
JyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNB
VElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQyMigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmMzI1NGUyY2FiYTMyYmI0MDUzZDc0
NjQ5Y2M5ZmE4MzAxYWVkMGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQyMi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249
IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAi
LS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQi
IFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7
Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4
OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRU
TElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFU
QSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAg
ICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2No
ZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQg
IjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8
L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFU
QSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1s
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNk
Ij48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt
bDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYt
OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQyMi5qcyIvPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0
YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCki
PgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwv
ZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRh
bnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEy
MzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8
c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3
aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtd
XT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2Ft
bWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9u
ZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEw
MCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAg
PHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9y
PC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1
NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3Yi
PgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0g
IDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0g
IDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5n
IFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMjMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MThi
NzdiMzhlM2JjMWMzN2FiYWY2NmRjYWVhYzBkOTRhZWI0OWY5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMjMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljMzFhZmM5ZGM3ZTU0MDNhODVjZjQ3NTRk
ODZiZmM0ZWQyZTZhMTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQy
My5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3OCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LC
qSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZv
ciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJp
Z2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKu
IFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3
YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2Nv
cHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMg
VVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlm
aWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0
dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQyMyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12
YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBz
dWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMs
IGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90
aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhl
IGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5n
IHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAg
Y3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAg
Ly8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxh
Y2VDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2Ug
YW4gRWxlbWVudCwgVGV4dCwKLQlDb21tZW50LCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gYW5kIENE
QVRBU2VjdGlvbiBub2RlcyB3aXRoIGVhY2ggb3RoZXIgYW5kIGluIGVhY2ggY2FzZQotCXZlcmlm
eSBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhv
ciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RS
LzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSov
Ci1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMjMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBp
ZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMjMiKSAhPSBu
dWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIg
dHh0OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBwaTsK
LSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZhciBhcHBlbmRl
ZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIiwiZG9tMzpwIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCJkZWx0YSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0g
ICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQiKTsKLSAgICAgIGNkYXRh
ID0gZG9jLmNyZWF0ZUNEQVRBU2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7Ci0gICAgICBwaSA9IGRv
Yy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICBhcHBlbmRlZENo
aWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0u
YXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRD
aGlsZChwaSk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjZGF0YSk7
Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJl
cGxhY2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChjZGF0YSxlbGVtKTsKLSAgICAgICAgfQotCQlj
YXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5l
ZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlJfMSIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFs
c2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQo
cGksY2RhdGEpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8yIixzdWNjZXNzKTsK
LQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxh
Y2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChjb21tZW50LHBpKTsKLSAgICAgICAgfQotCQljYXRj
aChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcg
JiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlJfMyIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7
Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNlZCA9IGVudFJlZi5yZXBsYWNlQ2hpbGQodHh0
LGNvbW1lbnQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5
cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFz
c2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl80IixzdWNjZXNzKTsK
LQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxh
Y2VkID0gZW50UmVmLnJlcGxhY2VDaGlsZChlbGVtLHR4dCk7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSXzUiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDIzKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzLnhodG1sIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU4YTFkMjUxNjNmZDVhM2ZiYWM3ZDEwMTQ5
M2Q0YTU3MWFlYjE3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIz
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDIzLmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4K
LSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwv
Y29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJv
bmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwv
c3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhz
aTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsK
LSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0
emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwv
c3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAw
MDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpu
bT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ry
b25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2Nv
ZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0g
IDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNv
ZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZh
cj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4
YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzMC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5ZjgzZTc0
YjkyNjczMzFjMTcwM2JkMjhkMTZlZmMyMWY0NmZiMDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICsw
LDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzAKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLmpzIGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzczNThmOTM0NzI2M2I4MjdhOGU4ODgxM2U3YWUz
N2MwYjc2MzJkZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTY4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkg
dGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIg
b2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4g
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDMwIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0KLQotCi0JVXNpbmcgcmVw
bGFjZUNoaWxkIG9uIGFuIEVsZW1lbnQgbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYSBuZXcgRWxl
bWVudCBjaGlsZCBub2RlIHdpdGggCi0JbmV3IGNoaWxkIG5vZGVzIGFuZCB2aWNlIHZlcnNhIGFu
ZCBpbiBlYWNoIGNhc2UgdmVyaWZ5IHRoZSBuYW1lIG9mIHRoZSByZXBsYWNlZCBub2RlLgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3
MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDMwKCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlcGxhY2VjaGlsZDMw
IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgcGFyZW50OwotICAg
ICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0VsZW1lbnQ7Ci0gICAgICB2YXIgbmV3VGV4
dDsKLSAgICAgIHZhciBuZXdDb21tZW50OwotICAgICAgdmFyIG5ld1BJOwotICAgICAgdmFyIG5l
d0NkYXRhOwotICAgICAgdmFyIG5ld0VSZWY7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICB2
YXIgbm9kZU5hbWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRl
RWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwieGh0bWw6aHRtbCIpOwot
ICAgICAgb2xkQ2hpbGQgPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiwieGh0bWw6aGVhZCIpOwotICAgICAgbmV3RWxlbWVudCA9IGRvYy5jcmVhdGVF
bGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpib2R5Iik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAg
IGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3RWxlbWVudCk7Ci0gICAgICBu
ZXdUZXh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gcGFyZW50LmFwcGVuZENoaWxkKG5ld1RleHQpOwotICAgICAgbmV3Q29tbWVudCA9IGRvYy5j
cmVhdGVDb21tZW50KCJDb21tZW50Iik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFw
cGVuZENoaWxkKG5ld0NvbW1lbnQpOwotICAgICAgbmV3UEkgPSBkb2MuY3JlYXRlUHJvY2Vzc2lu
Z0luc3RydWN0aW9uKCJ0YXJnZXQiLCJkYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFy
ZW50LmFwcGVuZENoaWxkKG5ld1BJKTsKLSAgICAgIG5ld0NkYXRhID0gZG9jLmNyZWF0ZUNEQVRB
U2VjdGlvbigiQ2RhdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hp
bGQobmV3Q2RhdGEpOwotICAgICAgbmV3RVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG5ld0VS
ZWYpOwotICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0VsZW1lbnQsb2xk
Q2hpbGQpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNz
ZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfMSIsInhodG1sOmhlYWQiLG5vZGVOYW1lKTsK
LSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3RWxlbWVu
dCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8yIiwieGh0bWw6Ym9keSIsbm9kZU5hbWUpOwotICAg
ICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdUZXh0LG9sZENoaWxkKTsKLSAg
ICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygi
bm9kZXJlcGxhY2VjaGlsZDMwXzMiLCJ4aHRtbDpoZWFkIixub2RlTmFtZSk7Ci0gICAgICAgcmVw
bGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG9sZENoaWxkLG5ld1RleHQpOwotICAgICAgbm9k
ZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVw
bGFjZWNoaWxkMzBfNCIsIiN0ZXh0Iixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJl
bnQucmVwbGFjZUNoaWxkKG5ld0NvbW1lbnQsb2xkQ2hpbGQpOwotICAgICAgbm9kZU5hbWUgPSBy
ZXBsYWNlZC5ub2RlTmFtZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxk
MzBfNSIsInhodG1sOmhlYWQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5y
ZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3Q29tbWVudCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxh
Y2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF82
IiwiI2NvbW1lbnQiLG5vZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNl
Q2hpbGQob2xkQ2hpbGQsbmV3UEkpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFt
ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfNyIsInRhcmdldCIs
bm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGls
ZCxuZXdDZGF0YSk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAg
ICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF84IiwiI2NkYXRhLXNlY3Rpb24iLG5v
ZGVOYW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQs
bmV3RVJlZik7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBh
c3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF85IiwiZGVsdGEiLG5vZGVOYW1lKTsKLSAg
ICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hp
bGQzMCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzAueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNkYjVjYmIxMzNmYWFmMmViNGYxMDQzZDIxZmM0MzUwOGI3ZGM3ZTMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/Pgot
PCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8v
RU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsi
PgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0Nzsi
PgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0
OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVN
ICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRs
JwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0g
ICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMg
Y29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
ZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Im5vZGVyZXBsYWNlY2hpbGQzMC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5m
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxi
b2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGlu
PC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4
NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29t
Ij4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RB
VEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAm
ZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGgg
YSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5
PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8
L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVu
dCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1
MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNv
bSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4K
LSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBo
YTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNv
dXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJv
bmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2Nv
ZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzNmOTI5MzM1ODJhNzA1NDI2MTVkMTI1MGE0OTEwYTc0
OTNkMGE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzCi1T
dGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzMy5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMzMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGU3NGJlNDRkNGIwYTc3MWNiNzkyMDQzNmM3YTNjMmQ4YTYyMTY0YjYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMCAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMyI7Ci0gICB9Ci0KLXZh
ciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAg
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUK
LS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBu
byBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3Vt
ZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAg
IGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8g
ICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1
bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAg
IHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIs
IG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZp
Z3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2
YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmlu
ZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xv
YWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAg
ICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRp
YWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAn
Y29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0
YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9h
ZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBj
aGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBl
eGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVk
ID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIGRlZmF1bHQgQXR0ciBub2Rl
IHRvIHJlcGxhY2UgaXRzIFRleHQgQ2hpbGQgd2l0aCBhIAotCW5ldyBFbnRpdHlSZWZlcmVuY2Ug
Tm9kZSBhbmQgdmVyaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgcmVwbGFjZWQgY2hpbGQuCi0KLSogQGF1
dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcK
LSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzMiKSAh
PSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBjaGlsZExpc3Q7Ci0gICAg
ICB2YXIgZWxlbTsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAg
ICB2YXIgbmV3Q2hpbGQ7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICB2YXIgbm9kZVZhbHVl
OwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhp
cy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAg
ICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
IG5ld0NoaWxkID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGNo
aWxkTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicCIpOwotICAgICAgZWxlbSA9IGNo
aWxkTGlzdC5pdGVtKDMpOwotICAgICAgcGFyZW50ID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCJk
aXIiKTsKLSAgICAgIG9sZENoaWxkID0gcGFyZW50Lmxhc3RDaGlsZDsKLQotICAgICAgcmVwbGFj
ZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAgIG5vZGVW
YWx1ZSA9IHJlcGxhY2VkLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVw
bGFjZWNoaWxkMzMiLCJydGwiLG5vZGVWYWx1ZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzMoKTsKLX0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMueGh0
bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMz
LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzk5MGMxNTgwNjU1NWVkZWNk
MTVmMzIxMDFhOGNmYTI0NjNhNjdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzMueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJz
aW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3Qu
ZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYj
OTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICIm
Izk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhh
ICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxl
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8
IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAg
ICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBl
bnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBk
YXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMg
Q0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08
aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6
eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZm
LnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0i
VVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzMuanMi
Lz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
eyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0
ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2Nv
dW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4K
LSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0
YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywg
JmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgot
IEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1
cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3Qu
Z292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25n
PgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3Vw
PgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIEly
dmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDM0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NDM1ZWU0ZDU4NmNmMDA5ODZjOTAxZWVkNGYxNGM5NDczYmM3M2ViYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNAotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQu
anMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjRhMzVhMDFlYTRlM2U4ZmJhOWMw
OTMyMWEyZjgwNDg4MmU1YmVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0
IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0
dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0g
Ci1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwg
Ci1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzND
w4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
Mi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBH
ZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRl
bnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAg
IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzQiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAg
ICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQot
ICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIs
IGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2Yg
Ci0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0v
LwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxl
dGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhl
Ci0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBy
ZXBsYWNlQ2hpbGQgb24gYSBuZXcgQXR0ciBub2RlLCByZXBsYWNlIGl0cyBuZXcgRW50aXR5UmVm
ZXJlbmNlIENoaWxkIHdpdGggYSAKLQluZXcgVGV4dCBOb2RlIGFuZCB2ZXJpZnkgdGhlIHZhbHVl
IG9mIHRoZSBuZXcgY2hpbGQuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGlt
YQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUt
MjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxk
MzQoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxk
ZXIsICJub2RlcmVwbGFjZWNoaWxkMzQiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsK
LSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3Q2hp
bGQ7Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAg
ICB2YXIgcmVwbGFjZWQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgcGFyZW50ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3
LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQg
PSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgYXBwZW5kZWRDaGls
ZCA9IHBhcmVudC5hcHBlbmRDaGlsZChvbGRDaGlsZCk7Ci0gICAgICBuZXdDaGlsZCA9IGRvYy5j
cmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNo
aWxkKG5ld0NoaWxkLG9sZENoaWxkKTsKLSAgICAgIG5vZGVWYWx1ZSA9IHBhcmVudC52YWx1ZTsK
LQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzQiLCJUZXh0Iixub2RlVmFs
dWUpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJl
cGxhY2VjaGlsZDM0KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzA2OWJiMDM4MGQxNWRjZTM1YWNhODUwYTU4MzYyYjRkMWI2YzJiOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJ
REFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg
U3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEg
IiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2ls
b24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04g
bm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENE
QVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAj
SU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0
YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0g
VGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAw
MS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRp
dGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJz
ZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM0LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRz
Ci08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51
bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rp
b24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZl
bnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRh
dmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwv
c3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4K
LSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lh
bGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1MWM5ODhmNjRmYzk4MzIzNTg3MjhjMTAz
NzVhNzI5NmEwNzc2ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQz
NS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzUKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMWJhZTg2N2E1ZWYyYmI3ZGNhOTFlYjcyN2YyZGM1NWM2MDgxMTliMy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMTI0ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRl
IFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5
LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRo
ZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdv
cmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0g
aW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8v
d3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIx
MjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRo
ZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1m
dW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1IjsKLSAg
IH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3IEF0dHIg
bm9kZSwgcmVwbGFjZSBpdHMgbmV3IEVudGl0eVJlZmVybmVjZSBDaGlsZCB3aXRoIGEgCi0JbmV3
IEF0dHIgTm9kZSBhbmQgdmVyaWZ5IGlmIGEgSElFUkFSQ0hZX1JFUVVFU1RfRVJSIGlzIHRocm93
bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lE
LTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNSgpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNl
Y2hpbGQzNSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHBhcmVu
dDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsKLSAgICAgIHZhciBu
b2RlVmFsdWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBw
YXJlbnQgPSBkb2MuY3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4
L25hbWVzcGFjZSIsInhtbDpsYW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbnRp
dHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVu
ZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5T
KCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIpOwotICAg
ICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNl
ZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgICB9Ci0J
CWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZp
bmVkJyAmJiBleC5jb2RlID09IDMpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X0hJRVJBUkNI
WV9SRVFVRVNUX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzUoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUueGh0bWwgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTY3MjFjZDk0ZjE1ZTI2Y2ZlNWFjZjgzNTQy
M2ZmZDZkNjk4OGE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzUuanMiLz48c2NyaXB0
IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRl
c3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgot
ICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9j
b2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5v
cnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9u
Zz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBF
bnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFk
amFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9z
dHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwot
IDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6
ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9z
dHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAw
PC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8g
Qm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5t
PSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJv
bmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29k
ZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAg
PGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29k
ZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFy
Pm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhh
cyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM2LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTE5OWUwMTYx
MTliY2I5MDQxMjQ5M2M3MmYxMGVhZjE4NzNjNDc2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAs
MCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzNgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYuanMgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWEyMjViZWVmMmZhMzhlZWM5NWUwMDhlMTJiNjc5
NTc2YzBhNGEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxMjIgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAw
MS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0
dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5m
b3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMg
UmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0
d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmln
aHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0
aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBv
ZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAi
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1
aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUg
dGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUu
Ci0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3lu
Y2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndp
c2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNl
cHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUg
Ym9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBh
Z2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0
ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0g
ICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9h
ZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0
Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwot
Ly8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAg
IGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBX
aGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8g
ICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAg
IGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hp
bGQgb24gYSBuZXcgQXR0ciBub2RlLCByZXBsYWNlIGl0cyBuZXcgRW50aXR5UmVmZXJuZWNlIG5v
ZGUgd2l0aCBhIAotCW5ldyBUZXh0IE5vZGUgYW5kIHZlcmlmeSBpZiBhIE5PVF9GT1VORF9FUlIg
aXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3
L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDM2KCkgewot
ICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9k
ZXJlcGxhY2VjaGlsZDM2IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2
YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0NoaWxkOwotICAg
ICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRl
QXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDps
YW5nIik7Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRh
Iik7Ci0gICAgICBuZXdDaGlsZCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCIpOwotICAgICAg
Ci0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXBsYWNlZCA9
IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgICB9Ci0JCWNh
dGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVk
JyAmJiBleC5jb2RlID09IDgpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9GT1VORF9F
UlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAg
bm9kZXJlcGxhY2VjaGlsZDM2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNi54aHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggY2FhODgwYjA3MmEzNTc4NDAxZmIxYmVlZmQ3YTI0YTZhYzE4ODBj
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2LnhodG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNU
WUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRN
TCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkg
Z2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZ
IGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5v
dGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAg
ZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAg
ICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBD
REFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFU
QSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0
IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4K
LTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5v
cmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04
Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDM2LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5N
YXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1
cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERh
bGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJh
eW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJl
bmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFU
QVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8
Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgot
ICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8
Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8
dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJf
OTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZp
bmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3
dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nv
bm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+
OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1
PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIg
U3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fj
cm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyYzFhYTViZjg4OWQyNTY2YWEz
NTNiMDljNDQxYWE3N2EwYmY2YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzcKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXRocm93X1dST05HX0RPQ1VNRU5U
X0VSUjogYXNzZXJ0VHJ1ZSBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0ZmQwMjY0NDEzZGI3NjZiYjRhZmYyMDYzNGE5ODdjMzkyMTc0NDg5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzggKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzciOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICB2YXIgZG9jMlJlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jMikgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jMlJlZiA9IHRoaXMuZG9jMjsKLSAg
ICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2MyUmVmLCAiZG9jMiIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAyKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDIpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBv
biBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBUZXh0IG5vZGUgd2l0aCBhIAotCW5l
dyBFbnRpdHlSZWZlcmVuY2UgTm9kZSBjcmVhdGVkIGJ5IGFub3RoZXIgZG9jdW1lbnQgYW5kIHZl
cmlmeSBpZiBhIAotCVdST05HX0RPQ1VNRU5UX0VSUiBpcyByYWlzZWQuCi0KLSogQGF1dGhvciBJ
Qk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIw
MDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1m
dW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzcoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzciKSAhPSBudWxs
KSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2MyOwotICAgICAgdmFyIHBhcmVu
dDsKLSAgICAgIHZhciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsKLSAgICAgIHZhciBu
b2RlVmFsdWU7Ci0gICAgICB2YXIgcmVwbGFjZWQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAK
LSAgICAgIHZhciBkb2MyUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MyKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2MyUmVmID0gdGhpcy5kb2MyOwotICAgICAgfQot
ICAgICAgZG9jMiA9IGxvYWQoZG9jMlJlZiwgImRvYzIiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBh
cmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgv
bmFtZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZVRleHRO
b2RlKCJUZXh0Iik7Ci0gICAgICBuZXdDaGlsZCA9IGRvYzIuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJkZWx0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChvbGRD
aGlsZCk7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAg
ICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7Ci0g
ICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUp
ICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNCk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhy
b3dfV1JPTkdfRE9DVU1FTlRfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNygpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy54aHRt
bCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcu
eGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ZGRiZDIzMzE5OTdlMzMzODVm
YWEwZmYyNzMyOTQ5YmVmYmFmNjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNp
b249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5k
dGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5
NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYj
OTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwh
QVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAg
ICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVu
dDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRh
dGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBD
REFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxo
dG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4
c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYu
eHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJV
VEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQzNy5qcyIv
PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRl
KCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAw
MTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291
bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgot
ICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlv
biB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMg
aXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRh
YjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAm
Z2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8v
d3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0g
Sm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3Vw
PjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4K
LSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVj
dG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMg
OTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5n
b3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+
Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+
Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2
aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50
MTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVz
ZXR0ZXh0Y29udGVudDEwLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDc2MDkzNGZlYzRkOTQ3ODZhZTFiZjU4ZjVkNDVhNTliMWE5MmM1Ni4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAKLVN0YXR1cwlTdWNjZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRj
b250ZW50MTAuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRl
eHRjb250ZW50MTAuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1NzFhZTc3Mzhh
MGIyODNiYzkyYzg3YWZkM2FjNTEzNjI5YjMxNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVzZXR0ZXh0Y29udGVudDEwLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTMxICswLDAgQEAKLQot
LyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAK
LShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJj
aCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2
ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0
aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAg
LyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEBy
ZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRV
UkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAiOwotICAgfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2Fy
ZSIsIHRydWUpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRp
dHlSZWZlcmVuY2VzIiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotCVRoZSBtZXRob2Qgc2V0VGV4dENvbnRlbnQgaGFzIG5vIGVm
ZmVjdCB3aGVuIHRoZSBub2RlIGlzIGRlZmluZWQgdG8gYmUgbnVsbC4KLQkKLQlVc2luZyBzZXRU
ZXh0Q29udGVudCBvbiBhIG5ldyBFbGVtZW50IG5vZGUsIGF0dGVtcHQgdG8gc2V0IGl0cyBjb250
ZW50IHRvIEVMRU1FTlQuCi0JUmV0cmVpdmUgdGhlIHRleHRDb250ZW50IGFuZCB2ZXJpZnkgaWYg
aXQgaXMgd2FzIHNldCB0byBFTEVNRU5ULgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVp
bCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwt
My1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rl
c2V0dGV4dGNvbnRlbnQxMCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlh
bGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR0ZXh0Y29udGVudDEwIikgIT0gbnVsbCkgcmV0dXJu
OwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2
YXIgY29tbWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2
YXIgcGk7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBl
bGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJk
b20zOmVsZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAg
ICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJl
ZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAgIHBpID0gZG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEg
PSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVu
ZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQo
ZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAg
ICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIGVsZW0u
dGV4dENvbnRlbnQgPSAiRUxFTUVOVCI7Ci0KLSAgICAgIHRleHRDb250ZW50ID0gZWxlbS50ZXh0
Q29udGVudDsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2Rlc2V0dGV4dGNvbnRlbnQxMCIsIkVM
RU1FTlQiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgIG5vZGVzZXR0ZXh0Y29udGVudDEwKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAueGh0bWwgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAueGh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlZGU3NjBmMGYwYTJiNzU4ZTZmMmVl
ODBlMzBjNWM5ZjRhNTc0NWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29u
dGVudDEwLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElD
ICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0
ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0
NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5
NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAi
JiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFB
VFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENE
QVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAg
ICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpz
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50
NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0
YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENE
QVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0
bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhz
aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhz
aTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54
c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVU
Ri04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXNldHRleHRjb250ZW50MTAuanMi
Lz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
eyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0
ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2Nv
dW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4K
LSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlz
IGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0
YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywg
JmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgot
IEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1
cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFz
IDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3Qu
Z292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25n
PgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3Vw
PgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIEly
dmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVu
dDExLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
c2V0dGV4dGNvbnRlbnQxMS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGJiYzE0NzA4ODZiZjA0ZTRiMDk1MjY3ZjY1MzQ1ZTA0YjNlYTMzNmMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExCi1TdGF0dXMJU3VjY2Vzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0
Y29udGVudDExLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0
ZXh0Y29udGVudDExLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDQzMWY3OTIz
MWYwMGIyNGM1NDgwOGE5NjhjMzkzOWU2MzFlMmVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMS5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAg
IC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBA
cmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0
VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExIjsKLSAgIH0KLQotdmFyIGRvY3NM
b2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAg
ICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZp
Z3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9h
ZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0
IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAg
cmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24g
c2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsK
LSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRo
cm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1
aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NS
ZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsK
LSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9
IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlm
IChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRp
b25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBp
biBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9j
dW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQg
d2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVk
LgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0v
KioKLSogCi0KLQkKLQlVc2luZyBzZXRUZXh0Q29udGVudCBvbiBhIG5ldyBEb2N1bWVudEZyYWdt
ZW50IG5vZGUgRWxlbWVudCBjaGlsZCwgYXR0ZW1wdCB0byBzZXQgaXRzIGNvbnRlbnQgdG8gCi0J
RE9DVU1FTlRGUkFHTUVOVC4gIFJldHJlaXZlIHRoZSB0ZXh0Q29udGVudCBhbmQgdmVyaWZ5IGlm
IGl0IGlzIHdhcyBzZXQgdG8gRE9DVU1FTlRGUkFHTUVOVAotCi0qIEBhdXRob3IgSUJNCi0qIEBh
dXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1E
T00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5j
dGlvbiBub2Rlc2V0dGV4dGNvbnRlbnQxMSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVzZXR0ZXh0Y29udGVudDExIikgIT0gbnVs
bCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZG9jRnJhZzsKLSAgICAgIHZhciBl
bGVtOwotICAgICAgdmFyIGVsZW1DaGlsZDsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgY29t
bWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY2RhdGE7Ci0gICAgICB2YXIgcGk7
Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFn
ID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRl
RWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwieGh0bWw6cCIpOwotICAg
ICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0ICIpOwotICAgICAgY29tbWVudCA9IGRv
Yy5jcmVhdGVDb21tZW50KCJDb21tZW50ICIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RB
VEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hp
bGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAg
IGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NG
cmFnLmFwcGVuZENoaWxkKGVsZW0pOwotICAgICAgZWxlbS50ZXh0Q29udGVudCA9ICJET0NVTUVO
VEZSQUdNRU5UIjsKLQotICAgICAgZWxlbUNoaWxkID0gZG9jRnJhZy5sYXN0Q2hpbGQ7Ci0KLSAg
ICAgIHRleHRDb250ZW50ID0gZWxlbUNoaWxkLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRF
cXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVudDExIiwiRE9DVU1FTlRGUkFHTUVOVCIsdGV4dENvbnRl
bnQpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXNl
dHRleHRjb250ZW50MTEoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMS54aHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDJjYmQwNGFjOTFmZDk4ZjQwMjEzOTc0MzE5ODVkZGUxYjgxM2Zm
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEueGh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1Qt
U1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhI
VE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElU
WSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJ
VFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04g
bm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAg
ICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAg
ICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNp
IENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJn
ZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1d
PgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9u
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEg
aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRG
LTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0dGV4dGNvbnRlbnQxMS5qcyIvPjxzY3JpcHQgdHlwZT0n
dGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9
PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJv
bmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0g
IDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZl
LiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRo
YSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJl
ZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4K
LSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29t
Ij4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4K
LSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4K
LSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBp
ZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcg
SXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6
Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55
IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8
c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+
Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4
PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEy
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmEwZmJmNDJiMmU5
Njc1MDgzZjIxN2MxNWZhZDc4MmRkN2ZkZDQ0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXNldHRleHRjb250ZW50MTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvbm9kZXNldHRleHRjb250ZW50MTIKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIuanMgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2YzM2ZmU2YjExZWNiZTgxYzU2MzZkYWFl
YTgwYjQ1OWI3MGE4N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVu
dDEyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDD
gsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRz
IEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAot
Zm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAot
UmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OC
wq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIv
Y29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0
cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50
aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICBy
ZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTIiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAw
OwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRl
c3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRp
b25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQu
ICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5k
IHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRl
cmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0g
ICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAv
LyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0g
ICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAg
ICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQot
ICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIs
IGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2Yg
Ci0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0v
LwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxl
dGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhl
Ci0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCQotCVVz
aW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlLCBhdHRlbXB0
IHRvIHNldCBpdHMgdmFsdWUuCi0JU2luY2UgRW50aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBSZWFk
T25seSwgY2hlY2sgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgIAotCWlzIHJhaXNl
ZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05v
ZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rpb24gbm9kZXNldHRleHRjb250ZW50MTIoKSB7Ci0g
ICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2Rl
c2V0dGV4dGNvbnRlbnQxMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIGVsZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIHRleHRDb250ZW50OwotICAg
ICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwot
ICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9j
UmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Ci0KLSAgICAg
IGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIGFwcGVu
ZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGVudFJlZik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nl
c3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGVudFJlZi50ZXh0Q29udGVudCA9ICJO
QSI7Ci0KLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2Yo
ZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRU
cnVlKCJub2Rlc2V0dGV4dGNvbnRlbnQxMiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2Rlc2V0dGV4dGNvbnRlbnQxMigpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVu
dDEyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0
Y29udGVudDEyLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NGJmOTY4N2Ew
ZWI0ZDg3Mzk0MjczMzU1ZjA3MzQzZDFmMWJjOTM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0
Y29udGVudDEyLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2Fk
PSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+
Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4K
LSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlz
IGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgot
PCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0g
IDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZi
ZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVt
PkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5Q
ZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85
ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4g
RGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0
cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQg
TXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1
cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9y
ZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5Pjwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
c2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHVzZXJkYXRhMDgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2OGQ3YWYyZmY5ODNlMTczMWUwNmRhZGI1M2Y0ODAyZmRkZTJmNmVhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOAotU3RhdHVzCWVycm9yCi1N
ZXNzYWdlCUxpbmUgMTEzOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5qcyBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOWI2ZjU4NjNiZjQ2NzhhZTUwYWU5NWQ4ODZkNjZlMGM4ZTM1NGRkOC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHVzZXJkYXRhMDguanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOCI7Ci0g
ICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0K
LS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29y
ayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRo
ZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAg
ICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwot
Ly8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlh
dGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0
LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5u
aW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50
IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNy
ZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAlj
YXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91
cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hy
b25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0
YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVz
dCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSBzZXRVc2VyRGF0YSBvbiBhIENEQVRBU2Vj
dGlvbiBhbmQgRW50aXR5UmVmZXJlbmNlIG5vZGUgdG8gc2V0IHRoZWlyIAotCVVzZXJEYXRhIHRv
IHRoaXMgRG9jdW1lbnQgYW5kIERvY3VtZW50RWxlbWVudCBub2RlLiAgVmVyaWZ5IGlmIHRoZSBV
c2VyRGF0YSAKLQlvYmplY3QgdGhhdCB3YXMgc2V0IGZvciBib3RoIG5vZGVzIGlzIGRpZmZlcmVu
dC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05v
ZGUzLXNldFVzZXJEYXRhCi0qLwotZnVuY3Rpb24gbm9kZXNldHVzZXJkYXRhMDgoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2Rlc2V0
dXNlcmRhdGEwOCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRv
Y0VsZW07Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNEYXRhOwotICAgICAgdmFyIGVs
ZW1MaXN0OwotICAgICAgdmFyIGVsZW1OYW1lOwotICAgICAgdmFyIHVzZXJEYXRhOwotICAgICAg
dmFyIHJldHVybmVkMTsKLSAgICAgIHZhciByZXR1cm5lZDI7Ci0gICAgICB2YXIgc3VjY2VzczsK
LSAgICAgIHZhciByZXRVc2VyRGF0YTsKLSAgICAgIHZhciBudWxsSGFuZGxlciA9IG51bGw7Ci0K
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBk
b2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAgZW50UmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGNEYXRhID0gZG9jLmNyZWF0ZUNEQVRB
U2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7Ci0gICAgICBpZiAobnVsbCA9PSBudWxsSGFuZGxlcikg
ewotICAgICAgICAgZW50UmVmLnNldFVzZXJEYXRhKCJLZXkxIiwgZG9jLCBudWxsKTsKLSAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgZW50UmVmLnNldFVzZXJEYXRhKCJLZXkxIiwgZG9jLCBudWxs
SGFuZGxlci5oYW5kbGUpOwotICAgICAgfQotICAgICAgIGlmIChudWxsID09IG51bGxIYW5kbGVy
KSB7Ci0gICAgICAgICBjRGF0YS5zZXRVc2VyRGF0YSgiS2V5MiIsIGRvY0VsZW0sIG51bGwpOwot
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBjRGF0YS5zZXRVc2VyRGF0YSgiS2V5MiIsIGRvY0Vs
ZW0sIG51bGxIYW5kbGVyLmhhbmRsZSk7Ci0gICAgICB9Ci0gICAgICAgcmV0dXJuZWQxID0gZW50
UmVmLmdldFVzZXJEYXRhKCJLZXkxIik7Ci0gICAgICByZXR1cm5lZDIgPSBjRGF0YS5nZXRVc2Vy
RGF0YSgiS2V5MiIpOwotICAgICAgc3VjY2VzcyA9IHJldHVybmVkMS5pc0VxdWFsTm9kZShyZXR1
cm5lZDIpOwotICAgICAgYXNzZXJ0RmFsc2UoIm5vZGVzZXR1c2VyZGF0YTA4IixzdWNjZXNzKTsK
LQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXNldHVzZXJkYXRhMDgo
KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
c2V0dXNlcmRhdGEwOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dXNlcmRhdGEwOC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY0
NjQwNjk2ZTZmOTI0M2E2MDgxZjc5MjIxNzhkYzFlYjZhYWZjYS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHVzZXJkYXRhMDgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0
dXNlcmRhdGEwOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9h
ZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20i
PgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+
Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBp
cyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4K
LTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVu
Y2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgot
ICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
OmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8
c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2Vy
PC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxl
bT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+
UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZl
bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJf
OTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQu
IERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0
dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0
IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxz
dXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5v
cmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4
dHJlcGxhY2V3aG9sZXRleHQwNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyNWEzODA5ZDc5MDFmYTA0NDZjNzc3N2I0ZWFhY2JkNGY0
ZWUxMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRl
eHQwNgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRkMThmMjc2MTI0MzUxNGFiYTE2ZmJmNDMyZmNlYzhhZmQzN2NkMDAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0
IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9m
IFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRp
Y3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2
ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBM
aWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29m
dHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlk
ZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0
Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDov
L3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdo
b2xldGV4dDA2IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWls
ZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRl
c3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgot
Ly8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNo
cm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNl
LCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0
aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJv
ZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdl
U3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVz
IHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAg
ICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1l
bnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLSAgICAgICBzZXRJbXBs
ZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50aXR5UmVmZXJlbmNlcyIsIHRydWUpOwotCi0g
ICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NS
ZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQg
PT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAg
fQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxk
ZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19
Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24g
b2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMu
Ci0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29t
cGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3Mg
dGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBs
b2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlUaGUg
bWV0aG9kIHJlcGxhY2VXaG9sZVRleHQgc3Vic3RpdHV0ZXMgdGhlIGEgc3BlY2lmaWVkIHRleHQg
Zm9yIHRoZSB0ZXh0IG9mIAotCXRoZSBjdXJyZW50IG5vZGUgYW5kIGFsbCBsb2dpY2FsbHktYWRq
YWNlbnQgdGV4dCBub2Rlcy4gIFRoaXMgbWV0aG9kIHJhaXNlcwotCWEgTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSIGlmIG9uZSBvZiB0aGUgVGV4dCBub2RlcyBiZWluZyByZXBsYWNlZCBpcyBy
ZWFkb25seS4KLQkKLQlJbnZva2UgcmVwbGFjZVdob2xlVGV4dCBvbiBhbiBleGlzdGluZyB0ZXh0
IG5vZGUgd2l0aCBuZXdseSBjcmVhdGVkIHRleHQgYW5kIEVudGl0eXJlZmVyZW5jZQotCW5vZGVz
ICh3aG9zZSByZXBsYWNlbWVudCB0ZXh0IGlzIGEgY2hhcmFjdGVyIGVudGl0eSByZWZlcmVuY2Up
IGFwcGVuZGVkIGFzIGNoaWxkcmVuIG9mIGl0cyBwYXJlbnQgZWxlbWVudCBub2RlLiAgCi0JV2hl
cmUgdGhlIG5vZGVzIHRvIGJlIHJlbW92ZWQgYXJlIHJlYWQtb25seSBkZXNjZW5kYW50cyBvZiBh
biBFbnRpdHlSZWZlcmVuY2UsIHRoZSBFbnRpdHlSZWZlcmVuY2UgCi0gICAgICAgIG11c3QgYmUg
cmVtb3ZlZCBpbnN0ZWFkIG9mIHRoZSByZWFkLW9ubHkgbm9kZXMuIE9ubHkgaWYgYW55IEVudGl0
eVJlZmVyZW5jZSB0byBiZSByZW1vdmVkIGhhcyAKLSAgICAgICAgZGVzY2VuZGFudHMgdGhhdCBh
cmUgbm90IEVudGl0eVJlZmVyZW5jZSwgVGV4dCwgb3IgQ0RBVEFTZWN0aW9uIG5vZGVzLCB0aGUg
cmVwbGFjZVdob2xlVGV4dCAKLSAgICAgICAgbWV0aG9kIG11c3QgZmFpbCwgcmFpc2luZyBhIE5P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUi4gVmVyaWZ5IHRoYXQgdGhlIG1ldGhvZCBkb2VzIG5v
dCByYWlzZQotICAgICAgICBhbiBleGNlcHRpb24gYW5kIHZlcmlmeSB0aGUgY29udGVudCBvZiB0
aGUgcmV0dXJuZWQgdGV4dCBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBE
ZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1D
b3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdob2xlVGV4dAotKi8KLWZ1bmN0aW9uIHRl
eHRyZXBsYWNld2hvbGV0ZXh0MDYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0lu
aXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0ZXh0cmVwbGFjZXdob2xldGV4dDA2IikgIT0gbnVsbCkg
cmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgaXRlbUxpc3Q7Ci0gICAgICB2YXIgZWxl
bWVudFN0cm9uZzsKLSAgICAgIHZhciB0ZXh0Tm9kZTsKLSAgICAgIHZhciBlcmVmTm9kZTsKLSAg
ICAgIHZhciByZXBsYWNlZFRleHQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIHZh
ciBub2RlVmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYg
KHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhp
cy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFm
ZiIpOwotICAgICAgaXRlbUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0cm9uZyIp
OwotICAgICAgZWxlbWVudFN0cm9uZyA9IGl0ZW1MaXN0Lml0ZW0oMCk7Ci0gICAgICB0ZXh0Tm9k
ZSA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiTmV3IFRleHQiKTsKLSAgICAgIGVyZWZOb2RlID0gZG9j
LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVs
ZW1lbnRTdHJvbmcuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGVsZW1lbnRTdHJvbmcuYXBwZW5kQ2hpbGQoZXJlZk5vZGUpOwotICAgICAgdGV4dE5vZGUgPSBl
bGVtZW50U3Ryb25nLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIHJlcGxhY2VkVGV4dCA9IHRleHROb2Rl
LnJlcGxhY2VXaG9sZVRleHQoIk5ldyBUZXh0IGFuZCBDZGF0YSIpOwotICAgICAgbm9kZVZhbHVl
ID0gdGV4dE5vZGUubm9kZVZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoInRleHRyZXBsYWNl
d2hvbGV0ZXh0MDYiLCJOZXcgVGV4dCBhbmQgQ2RhdGEiLG5vZGVWYWx1ZSk7Ci0gICAgICAgCi19
Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA2
KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4
dHJlcGxhY2V3aG9sZXRleHQwNi54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3OTcwYjYwYjEwOTA4YTBjNzlmZDU3YzgxMzliZDkxOGMzNzFlYzJiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LnhodG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJ
REFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg
U3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEg
IiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2ls
b24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04g
bm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENE
QVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAj
SU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0
YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0g
VGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAw
MS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRp
dGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJz
ZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0idGV4dHJlcGxhY2V3aG9sZXRleHQwNi5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9q
YXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3Jp
cHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFy
Z2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+
NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxs
YXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlu
b2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5j
ZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFT
ZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNv
ZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAg
PGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNv
ZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZh
cj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4
NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5n
LCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cu
YWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25u
b3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwv
ZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNw
ZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3Jv
bnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwNzVlY2JkMDhlNjg2
ZjY5ZmFmZTRhNjM3YWM5NjU2MjBhMmY0OWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRy
ZXBsYWNld2hvbGV0ZXh0MDctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2Nv
cmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNwotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3Lmpz
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0
MDcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlNjRkMzJkZDMxMzI5ZDY3YTk5
MWE3OTE0MjEwMGYwMDFmM2ViMDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNl
d2hvbGV0ZXh0MDcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzkgKzAsMCBAQAotCi0vKgotQ29w
eXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3Nh
Y2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNv
cnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkp
LiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0
aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhl
IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVn
YWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAg
ICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1
cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsK
LSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQg
PSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5u
aW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRp
b24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBp
cyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNv
bXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2Vk
IHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQ
YWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAg
Ly8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4
Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIo
KTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdhcmUiLCB0
cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi1BcHBlbmQgYW4gZW50aXR5IHJlZmVyZW5jZSBhbmQgYSB0ZXh0IG5vZGUgYWZ0ZXIgdG8g
dGhlIGNvbnRlbnQgb2YgdGhlCi1maXJzdCBzdHJvbmcgZWxlbWVudC4gIFRoZW4gY2FsbCByZXBs
YWNlV2hvbGVUZXh0IG9uIGluaXRpYWwgY29udGVudAotb2YgdGhhdCBlbGVtZW50LiAgU2luY2Ug
dGhlIGVudGl0eSByZWZlcmVuY2UgZG9lcyBub3QgY29udGFpbiBhbnkgCi1sb2dpY2FsbHktYWRq
YWNlbnQgdGV4dCBjb250ZW50LCBvbmx5IHRoZSBpbml0aWFsIHRleHQgZWxlbWVudCBzaG91bGQK
LWJlIHJlcGxhY2VkLiAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JF
Qy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdob2xlVGV4dAot
KiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD00MjUK
LSovCi1mdW5jdGlvbiB0ZXh0cmVwbGFjZXdob2xldGV4dDA3KCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAidGV4dHJlcGxhY2V3aG9sZXRl
eHQwNyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGl0ZW1MaXN0
OwotICAgICAgdmFyIGVsZW1lbnROYW1lOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFy
IGVyZWZOb2RlOwotICAgICAgdmFyIHJlcGxhY2VkVGV4dDsKLSAgICAgIHZhciBhcHBlbmRlZENo
aWxkOwotICAgICAgdmFyIG5vZGU7Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIG5v
ZGVUeXBlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBl
b2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9j
OwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgIGl0ZW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzdHJvbmciKTsKLSAg
ICAgIGVsZW1lbnROYW1lID0gaXRlbUxpc3QuaXRlbSgwKTsKLSAgICAgIGVyZWZOb2RlID0gZG9j
LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgdGV4dE5vZGUgPSBkb2MuY3Jl
YXRlVGV4dE5vZGUoIk5ldyBUZXh0Iik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbWVudE5h
bWUuYXBwZW5kQ2hpbGQoZXJlZk5vZGUpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW1lbnRO
YW1lLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICAgIHRleHROb2RlID0gZWxlbWVudE5hbWUu
Zmlyc3RDaGlsZDsKLQotICAgICAgcmVwbGFjZWRUZXh0ID0gdGV4dE5vZGUucmVwbGFjZVdob2xl
VGV4dCgiTmV3IFRleHQgYW5kIENkYXRhIik7Ci0gICAgICB0ZXh0Tm9kZSA9IGVsZW1lbnROYW1l
LmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydFNhbWUoInJldHZhbF9zYW1lIix0ZXh0Tm9kZSxy
ZXBsYWNlZFRleHQpOwotbm9kZVZhbHVlID0gdGV4dE5vZGUubm9kZVZhbHVlOwotCi0gICAgICBh
c3NlcnRFcXVhbHMoIm5vZGVWYWx1ZVNhbWUiLCJOZXcgVGV4dCBhbmQgQ2RhdGEiLG5vZGVWYWx1
ZSk7Ci0gICAgICAgbm9kZSA9IHRleHROb2RlLm5leHRTaWJsaW5nOwotCi0gICAgICBhc3NlcnRO
b3ROdWxsKCJzZWNvbmRDaGlsZE5vdE51bGwiLG5vZGUpOwotbm9kZVR5cGUgPSBub2RlLm5vZGVU
eXBlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoInNlY29uZENoaWxkSXNFbnRSZWYiLDUsbm9kZVR5
cGUpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgdGV4dHJl
cGxhY2V3aG9sZXRleHQwNygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDcueGh0bWwgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54aHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQyOTc3YmExODhhYTFiMTM4ODY2ZWRhYjM1NTViNzk3
YzI0MTc4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/
Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAg
IDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAg
IDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0g
ICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+
Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFO
T1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBw
Ci0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1Q
TElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAy
IENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4
bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFu
IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+
PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1Q
TElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1h
TG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVh
ZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InRleHRyZXBsYWNld2hvbGV0ZXh0MDcuanMiLz48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2Vt
PgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50
PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMw
IE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0
aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFu
IGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+
PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1h
OwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5u
ZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVz
PC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAs
MDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
Om5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxz
dHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rvcjwv
Y29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4K
LSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8
Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8
dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBU
ZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBs
YWNld2hvbGV0ZXh0MDgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyNDUxYTQ2NmI2NDMxYTI0ZDZiN2E0OTMyYTZkY2QzMTQ0NWU2NDJlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgKLVN0YXR1cwlmYWlsdXJl
Ci1NZXNzYWdlCXRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjogYXNzZXJ0VHJ1ZSBm
YWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0
cmVwbGFjZXdob2xldGV4dDA4LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L3RleHRyZXBsYWNld2hvbGV0ZXh0MDguanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGUwODU0YjMwZjJmZmE3NGQ3M2E3MTRhZmY3ZGM3YmQzMGEwNTg5YzEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDguanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjYgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2Vi
IENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1
cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0
aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBp
cyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0
aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cu
dzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEK
LSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRl
c3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0
aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4IjsKLSAg
IH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotQXBwZW5kcyBhbiBlbnRpdHkgcmVmZXJlbmNlIGNvbnRhaW5p
bmcgdGV4dCBhbmQgYW4gZWxlbWVudCB0byBhbiBleGlzdGluZwotdGV4dCBub2RlLCB0aGVuIGNh
bGxzIFRleHQucmVwbGFjZVdob2xlVGV4dCBvbiB0aGUgZXhpc3RpbmcgdGV4dCBub2RlLgotQSBO
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgc2hvdWxkIGJlIHRocm93bi4KLQotKiBAYXV0aG9y
IEN1cnQgQXJub2xkCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxl
dmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI1RleHQzLXJlcGxhY2VXaG9sZVRleHQKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NDI1Ci0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTU0MAotKi8KLWZ1
bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBp
ZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0ZXh0cmVwbGFjZXdob2xldGV4dDA4Iikg
IT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgaXRlbUxpc3Q7Ci0gICAg
ICB2YXIgcDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgbm9kZTsKLSAgICAgIAotICAg
ICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5k
ZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRv
YyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgaXRlbUxpc3QgPSBkb2Mu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKTsKLSAgICAgIHAgPSBpdGVtTGlzdC5pdGVtKDApOwot
ICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MiIpOwotICAgICAg
bm9kZSA9IHAuYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIG5vZGUgPSBwLmZpcnN0Q2hpbGQ7
Ci0KLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAg
bm9kZSA9IG5vZGUucmVwbGFjZVdob2xlVGV4dCgieW8iKTsKLSAgICAgICAgfQotCQljYXRjaChl
eCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYg
ZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05f
QUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgdGV4dHJlcGxhY2V3aG9sZXRleHQwOCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQw
OC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZhZTk5NjlhZjhjNmQxMDIz
NGZhMDAzNjJkNzg1M2U2OTdkMGQxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxh
Y2V3aG9sZXRleHQwOC54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sIFsKLTwhRU5USVRZIGVudDEgJ2Zvbyc+Ci08IUVOVElUWSBlbnQyICdmb288YnIv
Pic+Ci08IUVMRU1FTlQgaHRtbCAoaGVhZCwgYm9keSk+Ci08IUFUVExJU1QgaHRtbCB4bWxucyBD
REFUQSAjSU1QTElFRD4KLTwhRUxFTUVOVCBoZWFkICh0aXRsZSxzY3JpcHQqKT4KLTwhRUxFTUVO
VCBzY3JpcHQgKCNQQ0RBVEEpPgotPCFBVFRMSVNUIHNjcmlwdCAKLSAgICAgc3JjIENEQVRBICNJ
TVBMSUVECi0gICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKLSAgICAgY2hhcnNldCBDREFUQSAjSU1Q
TElFRD4KLTwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Ci08IUVMRU1FTlQgYm9keSAocCk+Ci08
IUFUVExJU1QgYm9keSBvbmxvYWQgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgcCAoI1BDREFU
QXxicikqPgotPCFFTEVNRU5UIGJyIEVNUFRZPgotXT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJz4KLTxoZWFkPgotPHRpdGxlPnJlcGxhY2VXaG9sZVRleHQgc2Ft
cGxlPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J3NlbGZ4aHRt
bC5qcyc+PC9zY3JpcHQ+PHNjcmlwdCBjaGFyc2V0PSdVVEYtOCcgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0JyBzcmM9J3RleHRyZXBsYWNld2hvbGV0ZXh0MDguanMnPjwvc2NyaXB0PjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci08cD5i
YXI8L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhYzNkOWNiZGY3MDBlNjk2
YjZhMDc0ODUwYzYyNmM0Mzg2MzY3OTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRv
bmx5LWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBA
QAotVGVzdCB0byBtYWtlIHN1cmUgRW50aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBhbHdheXMgdHJl
YXRlZCByZWFkb25seQotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyB4bWxE
b2MyLmFkb3B0Tm9kZShlbnRpdHlSZWZlcmVuY2UpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9N
b2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVm
ZXJlbmNlLm93bmVyRG9jdW1lbnQgaXMgeG1sRG9jCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5ub2Rl
VmFsdWUgPSAnZm9vJyB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yOiBET00gRXhjZXB0aW9uIDcuCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5ub2RlVmFsdWUg
aXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVuY2UucHJlZml4ID0gJ2ZvbycgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBOYW1lc3BhY2VFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNC4KLVBBU1MgZW50aXR5
UmVmZXJlbmNlLnByZWZpeCBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS50ZXh0Q29udGVu
dCA9ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3I6IERPTSBFeGNlcHRpb24gNy4KLUZBSUwgZW50aXR5UmVmZXJlbmNlLnRleHRDb250ZW50IHNo
b3VsZCBiZSA+LiBXYXMgLgotRkFJTCBjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCBzaG91bGQg
YmUgMS4gV2FzIDAuCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5hcHBlbmRDaGlsZCh0ZXh0KSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBET00gRXhjZXB0
aW9uIDcuCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCBpcyBjaGlsZHJl
bkJlZm9yZUZhaWxlZEFwcGVuZAotRkFJTCBjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCBzaG91
bGQgYmUgMS4gV2FzIDAuCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5pbnNlcnRCZWZvcmUodGV4dCwg
ZW50aXR5UmVmZXJlbmNlLmZpcnN0Q2hpbGQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJl
bmNlLmNoaWxkTm9kZXMubGVuZ3RoIGlzIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlv
bnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1l
eGNlcHRpb25zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmYjE2NDFiZWQ0
NDczMDcwZmJjMmU5ZjM0OWMxOWNiODFkM2U4ZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJlbmNl
L3JlYWRvbmx5LWV4Y2VwdGlvbnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAK
LTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9yZWFk
b25seS1leGNlcHRpb25zLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMv
VEVNUExBVEUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3Jp
cHQtdGVzdHMvVEVNUExBVEUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJl
ZWQ5M2E1ZTA2ZDg4NDEyOGRmM2IzNGRiNTQyZDg1MDcxZTM1ZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlS
ZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJZT1VSX0pT
X0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5
LWV4Y2VwdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uvc2Ny
aXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGFmMjQ2NTdkODJkYjNlOGE3ZmJiZTQ4NzdkM2QzZDYzYjEwOWQ0NzcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRW50aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9yZWFkb25seS1leGNlcHRpb25zLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3QgdG8gbWFrZSBz
dXJlIEVudGl0eVJlZmVyZW5jZSBub2RlcyBhcmUgYWx3YXlzIHRyZWF0ZWQgcmVhZG9ubHkiKQot
Ci12YXIgeG1sRG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoImh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiaHRtbCIsIG51bGwpOwotdmFyIHhtbERvYzIg
PSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7Ci12YXIgZW50aXR5UmVmZXJlbmNlID0geG1s
RG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZ3QiKTsKLQotc2hvdWxkVGhyb3coInhtbERvYzIu
YWRvcHROb2RlKGVudGl0eVJlZmVyZW5jZSkiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uu
b3duZXJEb2N1bWVudCIsICJ4bWxEb2MiKQotCi0vLyBub2RlVmFsdWUgaXMgZGVmaW5lZCB0byBi
ZSBudWxsIGZvciBFbnRpdHkgUmVmZXJlbmNlIG5vZGVzLCBhbmQgdGh1cyBzaG91bGQgc2lsZW50
bHkgZmFpbCB0byBtb2RpZnkKLS8vIFNwZWMgaXMgYW1iaWdpb3VzIGFzIHRvIGlmIHdlIHNob3Vs
ZCB0aHJvdyBoZXJlIG9yIG5vdC4gIEkndmUgcmVxdWVzdGVkIGNsYXJpZmljYXRpb246Ci0vLyBo
dHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctZG9tLzIwMDhKYW5NYXIvMDAw
OS5odG1sCi1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSA9ICdmb28nIik7
Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSIsICJudWxsIik7Ci0KLXNob3Vs
ZFRocm93KCJlbnRpdHlSZWZlcmVuY2UucHJlZml4ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRp
dHlSZWZlcmVuY2UucHJlZml4IiwgIm51bGwiKTsKLQotc2hvdWxkVGhyb3coImVudGl0eVJlZmVy
ZW5jZS50ZXh0Q29udGVudCA9ICdmb28nIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLnRl
eHRDb250ZW50IiwgIic+JyIpOwotCi12YXIgY2hpbGRyZW5CZWZvcmVGYWlsZWRBcHBlbmQgPSBl
bnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGg7Ci1zaG91bGRCZSgiY2hpbGRyZW5CZWZv
cmVGYWlsZWRBcHBlbmQiLCAiMSIpOwotdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiRkFJTCIpOwotc2hvdWxkVGhyb3coImVudGl0eVJlZmVyZW5jZS5hcHBlbmRDaGlsZCh0ZXh0
KSIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCIsICJjaGls
ZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCIpOwotCi1jaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCA9
IGVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3VsZEJlKCJjaGlsZHJlbkJl
Zm9yZUZhaWxlZEFwcGVuZCIsICIxIik7Ci1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNlLmlu
c2VydEJlZm9yZSh0ZXh0LCBlbnRpdHlSZWZlcmVuY2UuZmlyc3RDaGlsZCkiKTsKLXNob3VsZEJl
KCJlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGgiLCAiY2hpbGRyZW5CZWZvcmVGYWls
ZWRBcHBlbmQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvaW5pdGlh
bC12YWx1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFs
LXZhbHVlcy1leHBlY3RlZC50eHQKaW5kZXggMjZmMGVjMmEzZGViZmU3YTdlZGViMDhlMmQxMDFh
NzQxNWRjZGZiNS4uMWM5ODFmYjNiNWQ4OTI3ZDVhODQzMzhmMzcxMjQ1M2E2MGNlODFmMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFsLXZhbHVlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9pbml0aWFsLXZhbHVlcy1leHBl
Y3RlZC50eHQKQEAgLTExMywxMiArMTEzLDYgQEAgUEFTUyBlbGVtZW50Lm5hbWVzcGFjZVVSSSBp
cyAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKIFBBU1MgZWxlbWVudC5wcmVmaXggaXMg
J2h0bWwnCiBQQVNTIGVsZW1lbnQubm9kZVZhbHVlIGlzIG51bGwKIFBBU1MgZWxlbWVudC5hdHRy
aWJ1dGVzLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgTmFtZWROb2RlTWFwXScKLVBBU1MgZG9jdW1l
bnQuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCdndCcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90
U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5v
ZGVOYW1lIGlzICdndCcKLVBBU1MgZW50aXR5UmVmZXJlbmNlLmxvY2FsTmFtZSBpcyBudWxsCi1Q
QVNTIGVudGl0eVJlZmVyZW5jZS5uYW1lc3BhY2VVUkkgaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZl
cmVuY2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSBpcyBu
dWxsCiBQQVNTIHByb2Nlc3NpbmdJbnN0cnVjdGlvbi5ub2RlTmFtZSBpcyAneG1sLXN0eWxlc2hl
ZXQnCiBQQVNTIHByb2Nlc3NpbmdJbnN0cnVjdGlvbi5sb2NhbE5hbWUgaXMgbnVsbAogUEFTUyBw
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubmFtZXNwYWNlVVJJIGlzIG51bGwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvc2NyaXB0LXRlc3RzL2luaXRpYWwtdmFsdWVzLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1ZXMuanMK
aW5kZXggNzMxYTgwNjM5MDg2OThiNDY5NWIyOGMzNmI3NzNhN2RkMWEzMDM1NC4uOWIxMmE5Nzkw
MWMwMzk0MzIzMzJkMzNkZmNhZGM5ODI3ZmI2YWFmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1ZXMuanMKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5pdGlhbC12YWx1ZXMuanMKQEAgLTE1
NiwxNiArMTU2LDYgQEAgc2hvdWxkQmUoImVsZW1lbnQucHJlZml4IiwgIidodG1sJyIpOwogc2hv
dWxkQmUoImVsZW1lbnQubm9kZVZhbHVlIiwgIm51bGwiKTsKIHNob3VsZEJlKCJlbGVtZW50LmF0
dHJpYnV0ZXMudG9TdHJpbmcoKSIsICInW29iamVjdCBOYW1lZE5vZGVNYXBdJyIpOwogCi0vLyBO
b3QgcG9zc2libGUgdG8gY3JlYXRlIEVudGl0eSBub2RlcyB2aWEgdGhlIERPTSwgV2ViS2l0IGRv
ZXNuJ3QgY3JlYXRlIHRoZW0gZnJvbSBwYXJzaW5nCi0KLXNob3VsZFRocm93KCJkb2N1bWVudC5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoJ2d0JykiKTsKLXZhciBlbnRpdHlSZWZlcmVuY2UgPSB4bWxE
b2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5j
ZS5ub2RlTmFtZSIsICInZ3QnIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmxvY2FsTmFt
ZSIsICJudWxsIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5hbWVzcGFjZVVSSSIsICJu
dWxsIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLnByZWZpeCIsICJudWxsIik7Ci1zaG91
bGRCZSgiZW50aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSIsICJudWxsIik7Ci0KIC8vIE5vdCBwb3Nz
aWJsZSB0byBjcmVhdGUgTm90YXRpb24gbm9kZXMgdmlhIHRoZSBET00sIFdlYktpdCBkb2Vzbid0
IGNyZWF0ZSB0aGVtIGZyb20gcGFyc2luZwogCiB2YXIgcHJvY2Vzc2luZ0luc3RydWN0aW9uID0g
ZG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCd4bWwtc3R5bGVzaGVldCcsICd0
eXBlPVwidGV4dC94c2xcIiBocmVmPVwibWlzc2luZy54c2xcIicpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAppbmRleCA3NzEzZmM5Y2Y0ODdmNjk3OTgxODc0MjJlMTI3MWFhODYyYmU2MjU3Li43NDdj
ZDdlNjI1OWNkZGNhMGJlMjVjZWU0YjVjYzJhMDFmNzBjZjIzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dApAQCAtMzMsOCArMzMsNiBAQCBQQVNTOiBjYW5HZXQoJ0RvY3VtZW50VHlwZScpIHNob3Vs
ZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuU2V0KCdEb2N1bWVudFR5cGUnKSBzaG91bGQg
YmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgnRWxlbWVudCcpIHNob3VsZCBiZSAndHJ1
ZScgYW5kIGlzLgogUEFTUzogY2FuU2V0KCdFbGVtZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQg
aXMuCi1QQVNTOiBjYW5HZXQoJ0VudGl0eVJlZmVyZW5jZScpIHNob3VsZCBiZSAndHJ1ZScgYW5k
IGlzLgotUEFTUzogY2FuU2V0KCdFbnRpdHlSZWZlcmVuY2UnKSBzaG91bGQgYmUgJ3RydWUnIGFu
ZCBpcy4KIFBBU1M6IGNhbkdldCgnRXZhbEVycm9yJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMu
CiBQQVNTOiBjYW5TZXQoJ0V2YWxFcnJvcicpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFT
UzogY2FuR2V0KCdFdmVudCcpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCmluZGV4IGZm
ZjVjNGFkMDgxNGFiOWMxY2MwNDZhZmViYjE4YzlkNzhiYzY3NDAuLjQ0MzE2YWM3OGYxMzg3ODA0
OTBlNGU1NjEyYWIyYWQ4ZmI3ZTA5ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0aWVzLmh0bWwKQEAgLTg0LDcgKzg0LDYgQEAgdmFyIHdp
bmRvd1JlYWRXcml0ZVByb3BlcnRpZXMgPSBbCiAgICAgIkRvY3VtZW50RnJhZ21lbnQiLCAKICAg
ICAiRG9jdW1lbnRUeXBlIiwgCiAgICAgIkVsZW1lbnQiLCAKLSAgICAiRW50aXR5UmVmZXJlbmNl
IiwgCiAgICAgIkV2YWxFcnJvciIsIAogICAgICJFdmVudCIsIAogICAgICJIVE1MQW5jaG9yRWxl
bWVudCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNl
cy93aW5kb3ctcHJvcGVydGllcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNv
dXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMKaW5kZXggZjljNzA5MjkyOTI5OGM3NmY3OWNlNWY2
YTZhZTUyZmM5Y2VjMGRmNS4uOWQ0MzBlY2ViMmVhYzdhNTcxOGIzN2ZkNjNkZTdjZTI0YWJhMWIz
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy93aW5k
b3ctcHJvcGVydGllcy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3Vy
Y2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzCkBAIC01Niw3ICs1Niw2IEBAIHZhciBwcm9wZXJ0eUlu
Zm8gPSBbCiAgICAgWyJEb2N1bWVudEZyYWdtZW50IiwgIm9iamVjdCJdLAogICAgIFsiRG9jdW1l
bnRUeXBlIiwgIm9iamVjdCJdLAogICAgIFsiRWxlbWVudCIsICJvYmplY3QiXSwKLSAgICBbIkVu
dGl0eVJlZmVyZW5jZSIsICJvYmplY3QiXSwKICAgICBbIkV2ZW50IiwgIm9iamVjdCJdLAogICAg
IFsiRXZlbnRFeGNlcHRpb24iLCAib2JqZWN0Il0sCiAgICAgWyJIVE1MQW5jaG9yRWxlbWVudCIs
ICJvYmplY3QiXSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKaW5kZXggNjdkMzAy
Y2VlZDUyMDU2M2RmZTFkYmY3Zjc5MDBkMjBmZDg0ODhiMC4uMTEyMjE0YTc3YmY1M2YwYzEyZmYz
YWJhM2U3MDdlZjEzMDdlNmFiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQK
QEAgLTExNCw4ICsxMTQsNiBAQCBQQVNTIHdpblsnRG9jdW1lbnRUeXBlJ10gPT0gJ1tvYmplY3Qg
RG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRG9jdW1lbnRUeXBl
J10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdp
blsnRWxlbWVudCddID09ICdbb2JqZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBB
U1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1
ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVyZW5jZSddID09ICdbb2JqZWN0IEVudGl0eVJlZmVyZW5j
ZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVyZW5jZSddID09ICdb
b2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2
ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydF
dmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsn
RXZlbnRFeGNlcHRpb24nXSA9PSAnW29iamVjdCBFdmVudEV4Y2VwdGlvbkNvbnN0cnVjdG9yXScg
aXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0CmluZGV4IDMwMmEwOWI4
NmE1YmYyZTc5OWQyNGM4ZTY5ZTEzMDdlMWE0ZDI2ZDEuLmFiZjY3YWQyZTlhZjYxOGNhZjg1Nzc3
MGJhMDkxMTQ0YTE3MjQ0YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQK
QEAgLTk2LDggKzk2LDYgQEAgUEFTUzogQ29tbWVudCBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBB
U1M6IENEQVRBU2VjdGlvbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IERvY3VtZW50VHlw
ZSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IE5vdGF0aW9uIHN1Y2Nlc3NmdWxseSBzaGFk
b3dlZAotUEFTUzogRW50aXR5IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAotUEFTUzogRW50aXR5UmVm
ZXJlbmNlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogUHJvY2Vzc2luZ0luc3RydWN0aW9u
IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogSFRNTERvY3VtZW50IHN1Y2Nlc3NmdWxseSBz
aGFkb3dlZAogUEFTUzogSFRNTEVsZW1lbnQgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2lu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFk
b3dpbmcuaHRtbAppbmRleCA5YjQ2ZWFjZTAxMzcwYzU1MjYyZDBlZjY0ZDY4MWFlNTZlYWJjMDJj
Li5jYjc0ZmIwNGEwNzI1MmYxMGI1ZGM2M2Y5YzYwNGIxNTE5MGM1ZDljIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93
aW5nLmh0bWwKQEAgLTIxNSwxMCArMjE1LDYgQEAKICAgICAgICAgbG9nKERvY3VtZW50VHlwZSA9
PSAxID8gIlBBU1M6IERvY3VtZW50VHlwZSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6
IERvY3VtZW50VHlwZSB3YXMgbm90IHNoYWRvd2VkIik7CiAgICAgICAgIHZhciBOb3RhdGlvbiA9
IDE7CiAgICAgICAgIGxvZyhOb3RhdGlvbiA9PSAxID8gIlBBU1M6IE5vdGF0aW9uIHN1Y2Nlc3Nm
dWxseSBzaGFkb3dlZCIgOiAiRkFJTDogTm90YXRpb24gd2FzIG5vdCBzaGFkb3dlZCIpOwotICAg
ICAgICB2YXIgRW50aXR5ID0gMTsKLSAgICAgICAgbG9nKEVudGl0eSA9PSAxID8gIlBBU1M6IEVu
dGl0eSBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IEVudGl0eSB3YXMgbm90IHNoYWRv
d2VkIik7Ci0gICAgICAgIHZhciBFbnRpdHlSZWZlcmVuY2UgPSAxOwotICAgICAgICBsb2coRW50
aXR5UmVmZXJlbmNlID09IDEgPyAiUEFTUzogRW50aXR5UmVmZXJlbmNlIHN1Y2Nlc3NmdWxseSBz
aGFkb3dlZCIgOiAiRkFJTDogRW50aXR5UmVmZXJlbmNlIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAg
ICAgICAgdmFyIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9IDE7CiAgICAgICAgIGxvZyhQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24gPT0gMSA/ICJQQVNTOiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gc3VjY2Vz
c2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gd2FzIG5vdCBz
aGFkb3dlZCIpOwogICAgICAgICB2YXIgSFRNTERvY3VtZW50ID0gMTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKaW5kZXggNGExOGFk
ZjdiYWY2NjljNzYxZDUxOTdiMTM0ZGEwYmZlZTg3MmU4Ni4uMzdjMzU0MTkzOGYxMTA3ZDY2Y2M5
MzE1MGMxYjE0MzY1ZjVlYTkwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9t
LWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9t
LWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw2IEBAIFBBU1MgVHJ5QWxsb2Nh
dGUoJ0NoYXJhY3RlckRhdGEnKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0ZSgnQ0RB
VEFTZWN0aW9uJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0RvY3VtZW50VHlw
ZScpIGlzICdleGNlcHRpb24nCiBQQVNTIFRyeUFsbG9jYXRlKCdFbGVtZW50JykgaXMgJ2V4Y2Vw
dGlvbicKLVBBU1MgVHJ5QWxsb2NhdGUoJ0VudGl0eVJlZmVyZW5jZScpIGlzICdleGNlcHRpb24n
CiBQQVNTIFRyeUFsbG9jYXRlKCdFdmVudFRhcmdldCcpIGlzICdleGNlcHRpb24nCiBQQVNTIFRy
eUFsbG9jYXRlKCdIVE1MRG9jdW1lbnQnKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxvY2F0
ZSgnTm9kZScpIGlzICdleGNlcHRpb24nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9kb20tY29uc3RydWN0b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3Ry
dWN0b3JzLmh0bWwKaW5kZXggZjI0OTlkYzA0NjUzNzczNzZmYTg4NmIyY2JiM2JkMGE5ZDg2ZTQy
MS4uNzk1M2I2MWEyNWQyMTA3MzdiYmNmNmE0MDgxNmUxYWZjNTBjZGJlMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbApAQCAtMTgsNyArMTgsNiBAQCB2YXIg
b2JqZWN0c19leGNlcHRpb24gPSBbCiAgICAgJ0NEQVRBU2VjdGlvbicsCiAgICAgJ0RvY3VtZW50
VHlwZScsCiAgICAgJ0VsZW1lbnQnLAotICAgICdFbnRpdHlSZWZlcmVuY2UnLAogICAgICdFdmVu
dFRhcmdldCcsCiAgICAgJ0hUTUxEb2N1bWVudCcsCiAgICAgJ05vZGUnLApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQKaW5kZXggNzg4Y2Fi
ZTVkMDNiNTFmZmJjNDBmZjM2M2NhZDZjYTA2YWI4NWQ0OS4uNjkyYmE3MDVmZWQ4M2IyOTVhMjcw
OGQ1ZTczNjA2YjBlNmEwMWEwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3Jh
cHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFw
cGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0CkBAIC00Nyw5ICs0Nyw2IEBAIFBBU1MganNXcmFwcGVy
Q2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlQ0RBVEFTZWN0aW9uKCkuY29uc3RydWN0b3IpIGlzICdD
REFUQVNlY3RpCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnRO
UygneCcsICd4JywgJ3gnKSkgaXMgJ0VsZW1lbnQnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERv
Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKS5fX3Byb3RvX18pIGlzICdFbGVt
ZW50UHJvdG90eXBlJwogUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbGVt
ZW50TlMoJ3gnLCAneCcsICd4JykuY29uc3RydWN0b3IpIGlzICdFbGVtZW50Q29uc3RydWN0b3In
Ci1QQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgp
KSBpcyAnRW50aXR5UmVmZXJlbmNlJwotUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoKS5fX3Byb3RvX18pIGlzICdFbnRpdHlSZWZlcmVuY2VQcm90
b3R5cGUnCi1QQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgpLmNvbnN0cnVjdG9yKSBpcyAnRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3InCiBQQVNT
IGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigp
KSBpcyAnUHJvY2Vzc2luZ0luc3RydWN0aW9uJwogUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1
bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKS5fX3Byb3RvX18pIGlzICdQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb25Qcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERvY3VtZW50
LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLmNvbnN0cnVjdG9yKSBpcyAnUHJvY2Vzc2lu
Z0luc3RydWN0aW9uQ29uc3RydWN0b3InCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS93cmFwcGVyLWNsYXNzZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xh
c3Nlcy5odG1sCmluZGV4IDhiZThmZTNiZjBjMjNjMDM0YTA3NzgyMzU1MGQ2NzNkZmUxMGVkYzcu
LmZmODFkOGY5MDUwNDQwZGMxZTMxZDMwODMzNTVjNjYzMTI5Yzk2MzIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy5odG1sCkBAIC05MCw3ICs5MCw2IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKQogICAgIHRlc3QoInhtbERvY3VtZW50IiwgIkRvY3VtZW50Iik7CiAgICAgdGVz
dCgieG1sRG9jdW1lbnQuY3JlYXRlQ0RBVEFTZWN0aW9uKCkiLCAiQ0RBVEFTZWN0aW9uIik7CiAg
ICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpIiwgIkVs
ZW1lbnQiKTsKLSAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoKSIs
ICJFbnRpdHlSZWZlcmVuY2UiKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oKSIsICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iKTsKIAogICAgIGRlYnVn
KCcnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQtZXhwZWN0ZWQudHh0CmluZGV4IDYzZTI0MmEy
ZmJlMzJiOWQ2YjgzZDU4Y2VhZDU2NDliNDk2NzQxYmIuLmQ1OTNhNWVhYmE4YThlMDhlMDFjMDlj
MjI0MzE4ZGU5MDg2MGNkOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4
dApAQCAtMTg3LDcgKzE4Nyw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyCiBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgog
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogVGhpcyB0ZXN0IGNoZWNrcyBjcm9zcy1mcmFt
ZSBhY2Nlc3Mgc2VjdXJpdHkgKHJkYXI6Ly9wcm9ibGVtLzUyNTEzMDkpLgogCiAKQEAgLTIzNSw3
ICsyMzQsNiBAQCBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5Eb2N1bWVudEZyYWdtZW50Jykg
c2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRG9j
dW1lbnRUeXBlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJn
ZXRXaW5kb3cuRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdl
dCgndGFyZ2V0V2luZG93LkVudGl0eScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KLVBBU1M6
IGNhbkdldCgndGFyZ2V0V2luZG93LkVudGl0eVJlZmVyZW5jZScpIHNob3VsZCBiZSAnZmFsc2Un
IGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkV2YWxFcnJvcicpIHNob3VsZCBi
ZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkV2ZW50Jykgc2hv
dWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuSFRNTEFu
Y2hvckVsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5o
dG1sCmluZGV4IDM4MDBhMGI1ZTgxMjRiOTQ1ZDgxMDM5MGMzZTliNWY5MGU1NzgzOGQuLmNjZTVm
N2EzZjIzNDFjYWI3ZmYwOWNiZTc1YjNiMmU2OWRlYTZjZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5o
dG1sCkBAIC0yMCw3ICsyMCw2IEBACiAgICAgICAgICAgICAiRG9jdW1lbnRUeXBlIiwgCiAgICAg
ICAgICAgICAiRWxlbWVudCIsIAogICAgICAgICAgICAgIkVudGl0eSIsIAotICAgICAgICAgICAg
IkVudGl0eVJlZmVyZW5jZSIsIAogICAgICAgICAgICAgIkV2YWxFcnJvciIsIAogICAgICAgICAg
ICAgIkV2ZW50IiwgCiAgICAgICAgICAgICAiSFRNTEFuY2hvckVsZW1lbnQiLCAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdl
dE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3It
ZXhwZWN0ZWQudHh0CmluZGV4IGU0NTg1YWJkNTE2MDVjMWUyZDllOGI5ZjJjZDg4YWJjZDVjYWQy
ZTAuLjFlYTViZGM2ZDk0OTc0NmUxZTljMjUzNTY2NDY1YzQwYjM5Yjg1YzkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93
blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
LWV4cGVjdGVkLnR4dApAQCAtNzgsNyArNzgsNiBAQCBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRh
cmdldFdpbmRvdywgJ0RvY3VtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzog
Y2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdEb2N1bWVudEZyYWdtZW50Jykgc2hvdWxk
IGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3cs
ICdEb2N1bWVudFR5cGUnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXRE
ZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0VsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQg
aXMuCi1QQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0VudGl0eVJlZmVyZW5j
ZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFy
Z2V0V2luZG93LCAnRXZhbEVycm9yJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzog
Y2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFdmVudCcpIHNob3VsZCBiZSAnZmFsc2Un
IGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnSFRNTEFuY2hv
ckVsZW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci5odG1sCmluZGV4IGRlYTAxN2Q2
NzhhMTVmZGQxM2M3N2E5MmFlNTE1YzcwOGU3YmQzYWMuLjMwNjZiM2EyYWZjYjVkNWQyMzkxZmNm
NDk5ZDFlMzQ5NDY1MTU0MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdl
dE93blByb3BlcnR5RGVzY3JpcHRvci5odG1sCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgICAgICAg
ICAiRG9jdW1lbnRGcmFnbWVudCIsIAogICAgICAgICAgICAgIkRvY3VtZW50VHlwZSIsIAogICAg
ICAgICAgICAgIkVsZW1lbnQiLCAKLSAgICAgICAgICAgICJFbnRpdHlSZWZlcmVuY2UiLCAKICAg
ICAgICAgICAgICJFdmFsRXJyb3IiLCAKICAgICAgICAgICAgICJFdmVudCIsIAogICAgICAgICAg
ICAgIkhUTUxBbmNob3JFbGVtZW50IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVk
LnR4dAppbmRleCA0N2ZkNTQzOWQzN2Q3NmQxMDY1NDlhNzE5YmI1YWM5MjI5MjNjYmVjLi44NWIw
YWJhMWIxNWI0NmVhZWJhMDYwZmJkNTVlMjkyOWY0MTI1MmQ2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLXB1dC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTU0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxNTI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5BdHRyIHNob3VsZCBiZSAnW29iamVjdCBBdHRyQ29uc3Ry
dWN0b3JdJyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LkNEQVRBU2VjdGlvbiBzaG91bGQg
YmUgJ1tvYmplY3QgQ0RBVEFTZWN0aW9uQ29uc3RydWN0b3JdJyBhbmQgaXMuCiBBTEVSVDogUEFT
Uzogd2luZG93LkNoYXJhY3RlckRhdGEgc2hvdWxkIGJlICdbb2JqZWN0IENoYXJhY3RlckRhdGFD
b25zdHJ1Y3Rvcl0nIGFuZCBpcy4KQEAgLTE0LDggKzE0LDYgQEAgQUxFUlQ6IFBBU1M6IHdpbmRv
dy5ET01FeGNlcHRpb24gc2hvdWxkIGJlICdbb2JqZWN0IERPTUV4Y2VwdGlvbkNvbnN0cnVjdG9y
XScgYW4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRE9NSW1wbGVtZW50YXRpb24gc2hvdWxkIGJlICdb
b2JqZWN0IERPTUltcGxlbWVudGF0aW9uQ29uc3RydWN0b3JdJyBhbmQgaXMuCiBBTEVSVDogUEFT
Uzogd2luZG93LkRPTVBhcnNlciBzaG91bGQgYmUgJ1tvYmplY3QgRE9NUGFyc2VyQ29uc3RydWN0
b3JdJyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LkVsZW1lbnQgc2hvdWxkIGJlICdbb2Jq
ZWN0IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KLUFMRVJUOiBQQVNTOiB3aW5kb3cuRW50
aXR5IHNob3VsZCBiZSAndW5kZWZpbmVkJyBhbmQgaXMuCi1BTEVSVDogUEFTUzogd2luZG93LkVu
dGl0eVJlZmVyZW5jZSBzaG91bGQgYmUgJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0
b3JdJyBhbmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LkV2YWxFcnJvciBzaG91bGQgYmUgJ2Z1
bmN0aW9uIEV2YWxFcnJvcigpIHsgICAgW25hdGl2ZSBjb2RlXX0nIGFuZCBpcy4KIEFMRVJUOiBQ
QVNTOiB3aW5kb3cuRXZlbnQgc2hvdWxkIGJlICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0b3JdJyBh
bmQgaXMuCiBBTEVSVDogUEFTUzogd2luZG93LkhUTUxBbmNob3JFbGVtZW50IHNob3VsZCBiZSAn
W29iamVjdCBIVE1MQW5jaG9yRWxlbWVudENvbnN0cnVjdG9yXScgYW5kIGlzLgpAQCAtMjc0LDE1
ICsyNzIsMTUgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyMDogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMjE6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEyMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjQ6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzMzogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNz
aW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29s
cywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTM1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIg
ZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
Ii4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxMzI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDEzNDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM2OiBCbG9ja2VkIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMzc6IEJsb2NrZWQg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2lu
ZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMs
IGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEz
ODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTM5OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxNDA6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0MTogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQyOiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNDM6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE0NDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTQ1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBt
YXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNDY6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgpAQCAtMzIxLDcgKzMxOSw3IEBAIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNzg6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc5OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODA6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4MTogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTgyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxODQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg2OiBCbG9ja2VkIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5z
LCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODc6IEJsb2Nr
ZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vz
c2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2Nv
bHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgpAQCAtMzM3LDcgKzMzNSw3IEBAIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxOTY6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk3OiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Np
bmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xz
LCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAx
OTg6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE5OTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMjAwOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVz
dCBtYXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDI6IEJsb2NrZWQgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMzogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjA0
OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJv
bSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4g
UHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FH
RTogbGluZSAyMDU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgpAQCAt
MzcwLDcgKzM2OCw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAyMzE6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMjMyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNP
TEUgTUVTU0FHRTogbGluZSAyMzM6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzNDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjM1OiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIFRoaXMgdGVzdCBjaGVja3MgY3Jvc3MtZnJhbWUg
YWNjZXNzIHNlY3VyaXR5IG9mIHdpbmRvdyBhdHRyaWJ1dGUgc2V0dGVycyAocmRhcjovL3Byb2Js
ZW0vNTMyNjc5MSkuCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAppbmRleCBhYzAyNGY4NTVhYTg2
NmU2NzE3Yjk3ZmZiMWI3NDk1NmIzYzVkNzNjLi5hMmI2Yjg3MGExOGM3MzkyNTQ4YzFlYTlkODU5
MjI3ODI5Y2I2ZTAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbApAQCAtNTAsNyArNTAsNiBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywg
IkRPTUltcGxlbWVudGF0aW9uIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2lu
ZG93LCAiRE9NUGFyc2VyIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93
LCAiRWxlbWVudCIpOwotICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgIkVu
dGl0eVJlZmVyZW5jZSIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywg
IkV2YWxFcnJvciIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdldFdpbmRvdywgIkV2
ZW50Iik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFyZ2V0V2luZG93LCAiSFRNTEFuY2hv
ckVsZW1lbnQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3It
cHV0LXRlc3QuaHRtbAppbmRleCAzNmY4MjZiZDkwNWYwNTc3ODBiOGI2Mzg2OTZmNzkzN2U1YzRj
ODhmLi5iNjdkZmMzOWZiMDIzYjBjOTc3ZWVjODNjOTY2NjFiOGMxOThlMGQ1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1p
ZnJhbWUtZm9yLXB1dC10ZXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1sCkBAIC01
OCw4ICs1OCw2IEBACiAgICAgICAgIHZhciBET01JbXBsZW1lbnRhdGlvbk9sZCA9IHdpbmRvdy5E
T01JbXBsZW1lbnRhdGlvbjsKICAgICAgICAgdmFyIERPTVBhcnNlck9sZCA9IHdpbmRvdy5ET01Q
YXJzZXI7CiAgICAgICAgIHZhciBFbGVtZW50T2xkID0gd2luZG93LkVsZW1lbnQ7Ci0gICAgICAg
IHZhciBFbnRpdHlPbGQgPSB3aW5kb3cuRW50aXR5OwotICAgICAgICB2YXIgRW50aXR5UmVmZXJl
bmNlT2xkID0gd2luZG93LkVudGl0eVJlZmVyZW5jZTsKICAgICAgICAgdmFyIEV2YWxFcnJvck9s
ZCA9IHdpbmRvdy5FdmFsRXJyb3I7CiAgICAgICAgIHZhciBFdmVudE9sZCA9IHdpbmRvdy5FdmVu
dDsKICAgICAgICAgdmFyIEhUTUxBbmNob3JFbGVtZW50T2xkID0gd2luZG93LkhUTUxBbmNob3JF
bGVtZW50OwpAQCAtMjYxLDggKzI1OSw2IEBACiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93
LkRPTUltcGxlbWVudGF0aW9uIiwgIkRPTUltcGxlbWVudGF0aW9uT2xkIik7CiAgICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LkRPTVBhcnNlciIsICJET01QYXJzZXJPbGQiKTsKICAgICAgICAg
ICAgIHNob3VsZEJlKCJ3aW5kb3cuRWxlbWVudCIsICJFbGVtZW50T2xkIik7Ci0gICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LkVudGl0eSIsICJFbnRpdHlPbGQiKTsKLSAgICAgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuRW50aXR5UmVmZXJlbmNlIiwgIkVudGl0eVJlZmVyZW5jZU9sZCIpOwog
ICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FdmFsRXJyb3IiLCAiRXZhbEVycm9yT2xkIik7
CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkV2ZW50IiwgIkV2ZW50T2xkIik7CiAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LkhUTUxBbmNob3JFbGVtZW50IiwgIkhUTUxBbmNob3JF
bGVtZW50T2xkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0
CmluZGV4IDliZWEyYTNkNjY2NmQwZDkzNmMxMGNmYjExNjkxYTE5NmI0YWRiODMuLjliYWM4NzZi
NDA5YTQ3OGRkZWZlYmIwOTVmNjY0MGQ0NDJkYzAzYjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0CkBAIC05LDcgKzksNyBAQCBQQVNTIEhpc3RvcmljYWwg
RE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NTG9jYXRvcgogUEFTUyBIaXN0b3JpY2Fs
IERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTU9iamVjdCAKIFBBU1MgSGlzdG9yaWNh
bCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01Vc2VyRGF0YSAKIFBBU1MgSGlzdG9y
aWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHkgCi1GQUlMIEhpc3Rvcmlj
YWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRW50aXR5UmVmZXJlbmNlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0iCitQQVNTIEhpc3Rvcmlj
YWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRW50aXR5UmVmZXJlbmNlIAogRkFJTCBI
aXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEV2ZW50RXhjZXB0aW9uIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBFdmVudEV4Y2VwdGlvbkNvbnN0cnVjdG9yXSIKIFBBU1MgSGlz
dG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBOYW1lTGlzdCAKIFBBU1MgSGlz
dG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBOb3RhdGlvbiAKQEAgLTE5LDkg
KzE5LDcgQEAgUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IFJh
bmdlRXhjZXB0aW9uCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3Zl
ZDogY3JlYXRlQ0RBVEFTZWN0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQp
IHVuZGVmaW5lZCBidXQgZ290IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIGNyZWF0ZUNE
QVRBU2VjdGlvbigpIHsKICAgICBbbmF0aXZlIGNvZGVdCiB9IgotRkFJTCBIaXN0b3JpY2FsIERP
TSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IGNyZWF0ZUVudGl0eVJlZmVyZW5jZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiBjcmVhdGVFbnRpdHlSZWZlcmVuY2UoKSB7Ci0gICAgW25hdGl2
ZSBjb2RlXQotfSIKK1BBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVk
OiBjcmVhdGVFbnRpdHlSZWZlcmVuY2UgCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11
c3QgYmUgcmVtb3ZlZDogeG1sRW5jb2RpbmcgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVm
aW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgbnVsbAogRkFJTCBIaXN0b3JpY2FsIERP
TSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IHhtbFN0YW5kYWxvbmUgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKGJvb2xlYW4pIGZhbHNlCiBG
QUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogeG1sVmVyc2lvbiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2Jq
ZWN0KSBudWxsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDJkOGRjOGUxOTg1OTc0
NThjOTMxNGRlZGJlZTI3Y2YzNjFkNmUzOGQuLjc5ODk1ODJhYjNlYjhhYzA1MGEzZDhhNzVkYWVj
NDI2OGJkZWQ3ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMTMsMTEgKzMx
Myw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1l
bnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFs
dWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVy
YWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVy
cm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
cnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGJhYWI0OTgyMGY0ZGE5ZjMzOTMwYjJiNzk5NDJlOTMzMTA1
ZThmNzAuLjQ1N2U5OTAxNGQ0Mzg5MzJjYTQ2MzI3ODRjOWI2Y2E1Nzg5ZDJlMjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMxMywx
MSArMzEzLDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2Un
KS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0Jykg
aXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUg
aXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29r
dXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKaW5kZXggZWRiNzU1MDc2MjljN2MwZGM2MjA3YmYw
NDk0NjBhNGQ1Nzg5NGE4Mi4uODJiMDI0YTg2NmE0MGQzMjkxYzY1YzczYWZjZjliYzI0M2E5NzQ1
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVj
dGVkLnR4dApAQCAtMTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAn
W29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1
bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUK
IFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMg
dHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3Jd
JyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5
UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNl
J10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNT
IHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFT
UyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBB
U1Mgd2luWydFdmVudEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3Ry
dWN0b3JdJyBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKaW5kZXggYTBjNmZmNGY4NzljNTk5YzYwMDdlNjdlNjk1YjIxYTU2MmUyNjk5
Zi4uZTY4MWE0NmE0ZjhlNmVkNWUyNGI3N2ExNzkzMGFjNTE1ZThlNjRkNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzE4LDExICsz
MTgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxl
bWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVt
ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZh
bHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBm
YWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0
eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1l
cmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBF
cnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGMxNWI2NjVhMGZmYWI2
NzZjMGZlOGQ5NzVmODM4Yjc3ZDg5ODliYzguLmUxODQyOTVjMGVjMTNjODAzZDNiZjU5NTA0MTc4
YWNmNTNjYTZlZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlj
a3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0
cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4LDExICszMDgsNiBAQCBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093
blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVy
YWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0
eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScp
Lmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFs
c2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlS
ZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
Lmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0Jykg
aXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwMGZiYzRiMDI4ZDkyZTZhZGZhNjYzNzZlOGVl
MmJmNjdlYzRmY2YzLi45NGQ3ODEyNjI5MGQwYjNmMDM3YTQ5NjVmYTVkZjdkYTNkYzI4NzVjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgsMTEgKzMwOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcp
IGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVu
dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNv
bmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNl
JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRW50aXR5UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZp
Z3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRXJyb3JFdmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHko
J2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9v
a3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CmluZGV4
IDkzZGFkYzAzMWY2MmYzNjYzYTg5NjYwM2EzZGFiMThlZTI2NDMyYTQuLjE2MmY0OGZjNTZiOTg3
OWIzYTliMTM2YjhiNzFiMmVmOWE4N2EyZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKQEAgLTExNCw4ICsxMTQsNiBAQCBQQVNT
IHdpblsnRG9jdW1lbnRUeXBlJ10gPT0gJ1tvYmplY3QgRG9jdW1lbnRUeXBlQ29uc3RydWN0b3Jd
JyBpcyB0cnVlCiBQQVNTIHdpblsnRG9jdW1lbnRUeXBlJ10gPT0gJ1tvYmplY3QgRG9jdW1lbnRU
eXBlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0
IEVsZW1lbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tv
YmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ0VudGl0eVJlZmVy
ZW5jZSddID09ICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScgaXMgdHJ1ZQot
UEFTUyB3aW5bJ0VudGl0eVJlZmVyZW5jZSddID09ICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNv
bnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRD
b25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50
Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnRFeGNlcHRpb24nXSA9PSAnW29i
amVjdCBFdmVudEV4Y2VwdGlvbkNvbnN0cnVjdG9yXScgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNz
ZXMtb2JqYy1leHBlY3RlZC50eHQKaW5kZXggYzJjZmZlMTRiZDNlMjBjYWU1MzNmYzkwY2Q3YTc1
ZGRlZjU0YWIxNy4uN2MyYjE3MzExNDQ1ZjNjN2Q0MzcwZTg0YzA3NjgxZmQzOTJmMmNmMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nl
cy1vYmpjLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9k
b20vd3JhcHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CkBAIC0yMSw3ICsyMSw2IEBAIFhN
TAogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50KSBpcyAnRE9NRG9jdW1lbnQnCiBQ
QVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlQ0RBVEFTZWN0aW9uKCkpIGlz
ICdET01DREFUQVNlY3Rpb24nCiBQQVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3Jl
YXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpKSBpcyAnRE9NRWxlbWVudCcKLVBBU1Mgb2JqQ1dy
YXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoKSkgaXMgJ0RPTUVu
dGl0eVJlZmVyZW5jZScKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKSkgaXMgJ0RPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbicKIAog
RXZlbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3Jh
cHBlci1jbGFzc2VzLW9iamMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Rv
bS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sCmluZGV4IDBiYmI0NDVhY2Y3NWE4MDk5MjRiYmMy
Mjg5NjgyMjg0NmMzYTNjMWIuLmYzNTlkOTQzZDA4ZDBjMDA5Y2NiNjdhYjcyMmU4NjhiZDYxYmFl
MzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVy
LWNsYXNzZXMtb2JqYy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Rv
bS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sCkBAIC0xMDMsNyArMTAzLDYgQEAgZnVuY3Rpb24g
cnVuVGVzdCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9jdW1lbnQiKTsKICAgICB0ZXN0
KCJ4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJDREFUQVNlY3Rpb24iKTsKICAg
ICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykiLCAiRWxl
bWVudCIpOwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpIiwg
IkVudGl0eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3Np
bmdJbnN0cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpOwogCiAgICAgZGVidWco
JycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CmluZGV4IDA0NGYxNGYwZTUyOTZlNjc1ZDhiNDNjOGI0M2Q4MDJkMjY5NzcxMTguLmMxYTQyMmYw
YTE1NTc3MThjMWE3ZWQ5ZjEwNGY4OGNkOTUwYTU2MTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4LDYgQEAgUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1l
cmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRp
dHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2Un
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQn
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3Rl
ZC50eHQKaW5kZXggMDgzYTA3MWY2Y2U2ZWI1ZWQyMWNkMDQ2MDFhM2FiZTc2MTkzMWZiZi4uNmVi
YWFhZjZjY2NhMDEwYTkyZmY3MDdmMTkyNDFkYzg1NTdjZWY4YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFs
LWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMjM4LDExICsyMzgsNiBA
QCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcp
Lmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50Jyku
ZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlz
IEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQot
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVy
ZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUg
aXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdF
bnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2
ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JF
dmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261716</attachid>
            <date>2015-09-21 19:29:39 -0700</date>
            <delta_ts>2015-09-22 10:17:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149348-20150921212919.patch</filename>
            <type>text/plain</type>
            <size>451700</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY4NzJmYzYyOGM4ODZi
YzhlY2U5ZTRhNTJhYzc5ZjJjMDQ3M2VkYi4uYTQ1YWFmNTg4ZTJiMzMwOTlkOTQyNjI4MDA2ZjIx
MTRmNDU1ODgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEyMyBAQAogMjAxNS0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBFbnRp
dHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZS4KKworICAgICAgICBFbnRpdHlSZWZlcmVuY2UgaGFz
IGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBET00gc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jb3JlLWNoYW5nZXMKKworICAgICAgICBFbnRp
dHlSZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBGaXJlZm94OgorICAgICAgICAtIGh0dHBz
Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbnRpdHlSZWZlcmVu
Y2UKKyAgICAgICAgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dl
Yi9BUEkvTm9kZUl0ZXJhdG9yLmV4cGFuZEVudGl0eVJlZmVyZW5jZXMKKyAgICAgICAgLSBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlci5l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzCisKKyAgICAgICAgQ2hyb21lIGRyb3BwZWQgc3VwcG9ydCBm
b3IgRW50aXR5UmVmZXJlbmNlIGEgd2hpbGUgYmFjayAoTWF5IDIwMTMpOgorICAgICAgICAtIEVu
dGl0eVJlZmVyZW5jZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMv
ZGV0YWlsP2lkPTIyNjYyOAorICAgICAgICAtIE5vZGVGaWx0ZXIgLyBUcmVlV2Fsa2VyLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXM6CisgICAgICAgICAgLSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29t
L2EvY2hyb21pdW0ub3JnL2QvbXNnL2JsaW5rLWRldi8tWk8zZWphNG1hQS84NlQxM1hKd1FwVUoK
KyAgICAgICAgICAtIGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1y
ZXYmcmV2aXNpb249MTg1NzcxCisKKyAgICAgICAgSUUgYWxzbyBkcm9wcGVkIHN1cHBvcnQgZm9y
IEVudGl0eVJlZmVyZW5jZSBOb2RlczoKKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vbGlicmFyeS9mZjk3NDgxOSh2PXZzLjg1KS5hc3B4IChSZW1hcmtzIHNlY3Rpb24pCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXJJbmxpbmUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoa2l0Q2xhc3Mp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmpl
Y3QucG06CisgICAgICAgIChTa2lwRnVuY3Rpb24pOiBTa2lwIHdlYmtpdF9kb21fZG9jdW1lbnRf
Y3JlYXRlX2VudGl0eV9yZWZlcmVuY2UgdW50aWwgQ2FybG9zIGZpeGVzIGl0LgorICAgICAgICAq
IGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0dHI6OmNoaWxkVHlwZUFsbG93ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5DaGFuZ2VkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQpOiBEZWxldGVkLgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3Jl
YXRlRW50aXR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVO
b2RlSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW1wb3J0Tm9kZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRvcHROb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZUZvcmNlZFN0eWxlUmVjYWxjKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjYW5BY2NlcHRDaGlsZCk6IERl
bGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0RvY3VtZW50
LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpjaGlsZFR5
cGVBbGxvd2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVudGl0eVJlZmVyZW5jZTo6RW50aXR5UmVmZXJlbmNlKToKKyAg
ICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmg6CisgICAgICAgICogZG9tL0VudGl0eVJlZmVy
ZW5jZS5pZGw6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6c2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmR1bXBTdGF0aXN0aWNz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNoaWxkTm9kZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGFzdERlc2NlbmRhbnQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2YpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6dGV4dENvbnRlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZTo6YW5jZXN0b3JFbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Omhhc2hQ
b2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6aXNEb2N1bWVudFR5cGVOb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9k
ZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVJdGVyYXRvcjo6Tm9kZUl0ZXJh
dG9yKToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL05vZGVJdGVyYXRvci5pZGw6Cisg
ICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjaGVja0Rl
bGV0ZUV4dHJhY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGVuZ3RoT2ZDb250ZW50c0luTm9kZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzQmV0d2Vl
bk9mZnNldHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6Omluc2VydE5vZGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNoZWNrTm9kZVdPZmZzZXQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmNoZWNrTm9kZUJBKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjbG9uZVJhbmdlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJhbmdlOjpzZWxlY3ROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJhbmdlOjpzZWxlY3ROb2RlQ29udGVudHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmFuZ2U6OnN1cnJvdW5kQ29udGVudHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFu
Z2U6OnNoYWRvd1Jvb3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnBhc3RM
YXN0Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6YWJzb2x1dGVCb3Vu
ZGluZ0JveCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6YWJzb2x1dGVUZXh0
UmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9SYW5nZS5oOgorICAgICAgICAqIGRvbS9T
aGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNoaWxkVHlwZUFs
bG93ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9UcmF2ZXJzYWwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2RlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBkb20vVHJhdmVyc2FsLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjpl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKToKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUcmVlV2Fsa2VyOjpUcmVlV2Fsa2VyKToKKyAgICAgICAgKiBkb20v
VHJlZVdhbGtlci5oOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVdhbGtlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6CisgICAgICAgICogZWRpdGluZy9NYXJrdXBBY2N1
bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5k
U3RhcnRNYXJrdXApOiBEZWxldGVkLgorICAgICAgICAqIHhtbC9YUGF0aFV0aWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6WFBhdGg6OmlzVmFsaWRDb250ZXh0Tm9kZSk6IERlbGV0ZWQuCisKKzIw
MTUtMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBbSlMg
QmluZGluZ3NdIHByb3RvdHlwZS5jb25zdHJ1Y3RvciBzaG91bGQgYmUgd3JpdGFibGUKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTQxMgogICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjI1NDUwOTY+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjY3ZDU2YzE4M2JhYzVm
NDZjN2QwMjhkY2EwNWJkNGYxNTZjMDZiNC4uMjgyYjA2MjM0ODY1MmFmN2NkNGE4ZDliZjUwYzFh
ZTU3NTIzM2NjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA5LTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBs
ZWdhY3kgRW50aXR5UmVmZXJlbmNlIERPTSBOb2RlIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTM0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgaGFuZGxpbmcgRW50aXR5UmVmZXJlbmNl
IE5vZGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
RE9NSW50ZXJuYWxzLm1tOgorICAgICAgICAoV2ViS2l0OjpXS0RPTU5vZGVDbGFzcyk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0Ojppc0Fzc2lzdGFibGVFbGVtZW50KToKKwogMjAxNS0wOS0yMSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgdGhlIGFiaWxp
dHkgZm9yIHRlc3RzIHRvIHJ1biBzY3JpcHQgaW4gdGhlIFVJIHByb2Nlc3MgaW4gV2ViS2l0VGVz
dFJ1bm5lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBiNWFjYjQxMTgxODk2NjRmYjg1ODMyZjRm
NzQyMzIwOGVlMzUwNGQyLi42YTY1NWRkMjgyNDRmN2Q1MDQ2OGZhNmYxYTFhOGE4MjJhY2E4Mzc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzkxLDcgKzM5MSw2IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCiAgICAgZG9tL0Rv
Y3VtZW50VHlwZS5pZGwKICAgICBkb20vRWxlbWVudC5pZGwKLSAgICBkb20vRW50aXR5UmVmZXJl
bmNlLmlkbAogICAgIGRvbS9FcnJvckV2ZW50LmlkbAogICAgIGRvbS9FdmVudC5pZGwKICAgICBk
b20vRXZlbnRFeGNlcHRpb24uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggZDNl
YjUxNzMxZTA2MDAyZTEzNDM4ZGFjYmY1N2VhNDdhZGRjNDMxYy4uMzQzYTgwMTI1ZjQyZjhkOTgy
ODcwYzM3YjQ1MjQxNGJmODhmNWM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAt
MTQ5LDcgKzE0OSw2IEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3cuY3BwIgogI2luY2x1ZGUgIkpT
RE9NV2luZG93Q1NTLmNwcCIKICNpbmNsdWRlICJKU0VsZW1lbnQuY3BwIgotI2luY2x1ZGUgIkpT
RW50aXR5UmVmZXJlbmNlLmNwcCIKICNpbmNsdWRlICJKU0Vycm9yRXZlbnQuY3BwIgogI2luY2x1
ZGUgIkpTRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRFeGNlcHRpb24uY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggNzc0Y2Ew
NjQ4YTdiNWI5MDBkZjRhMDBlM2Y2ZTMxYmY5YzA3MmMwOC4uMzJmYTE2ZjAzMTA1OTliODhlMDkw
MjliYTMxY2JhOTBlMjRmZGY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xODMyLDIwICsxODMyLDYgQEAKICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQ
bGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFbnRp
dHlSZWZlcmVuY2UuY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vycm9yRXZlbnQuY3BwIj4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE5ODQ1LDcgKzE5ODMxLDYgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RPTVVSTC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
aiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
RE9NV2luZG93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNFbGVtZW50LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNFbnRpdHlSZWZlcmVuY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0
dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Vycm9yRXZlbnQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0V2ZW50Lmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
JChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNF
dmVudEV4Y2VwdGlvbi5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDI2MzMzNzdhOTdlMWQyNzM0YzBi
ZTZiMGEwYThjMDFlZjUxNjg2M2YuLmI1MDVmMjQzZTdmOTk5NTk1ZGJmNGFkOTE0NGVkODljNzIy
NjRhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTUyNTQsOSArNTI1NCw2IEBACiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVj
dHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFbGVtZW50LmNwcCI+CiAgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9y
bUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFbnRpdHlSZWZl
cmVuY2UuY3BwIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KLSAgICA8
L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0Vycm9yRXZlbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEyNjQzLDkgKzEyNjQwLDYgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJj
aGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0VsZW1lbnQuaCI+CiAg
ICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0g
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0
Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNFbnRpdHlS
ZWZlcmVuY2UuaCI+Ci0gICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+Ci0gICAg
PC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNFcnJvckV2ZW50LmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEwNWVhMGQxMTNkNTVmN2RlZTI2MzRiNWRjZmFh
MTM3NmIzNDU4M2MuLjBlMDAwZDYzZmMxYTExZjRlOGE2YmNmMjA2NDY3MjIxYjY5ZmRkYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTM1ODksOCArMzU4OSw2IEBACiAJCTkzRjlCNjU4MEJBMEYzNUUwMDg1NDA2NCAvKiBET01I
VE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjY1NTBCQTBGMzVFMDA4NTQwNjQgLyogRE9NSFRNTENhbnZh
c0VsZW1lbnRJbnRlcm5hbC5oICovOyB9OwogCQk5M0Y5QjZFMDBCQTBGQjcyMDA4NTQwNjQgLyog
SlNDb21tZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRjlCNkRFMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwICovOyB9OwogCQk5
M0Y5QjZFMTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERjBCQTBGQjcyMDA4NTQwNjQgLyog
SlNDb21tZW50LmggKi87IH07Ci0JCTkzRjlCNzc0MEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0
eVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y5Qjc3MjBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwICov
OyB9OwotCQk5M0Y5Qjc3NTBCQTVGREREMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNzczMEJB
NUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oICovOyB9OwogCQk5M0Y5QjdBMDBC
QTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3OUUwQkE2MDMyNjAwODU0MDY0IC8qIEpT
Q0RBVEFTZWN0aW9uLmNwcCAqLzsgfTsKIAkJOTNGOUI3QTEwQkE2MDMyNjAwODU0MDY0IC8qIEpT
Q0RBVEFTZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y5Qjc5RjBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCAqLzsgfTsK
IAkJOTNGREFGQ0EwQjExMzA3NDAwRTI3NDZGIC8qIEVkaXRvckluc2VydEFjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGREFGQzkwQjExMzA3
NDAwRTI3NDZGIC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDk2MCw4ICsxMDk1OCw2IEBACiAJCTkzRjlC
NjU1MEJBMEYzNUUwMDg1NDA2NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJu
YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGOUI2REUwQkEwRkI3MjAwODU0
MDY0IC8qIEpTQ29tbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0NvbW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5QjZERjBC
QTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQ29tbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0Y5Qjc3
MjBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFbnRpdHlSZWZlcmVuY2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5M0Y5Qjc3MzBCQTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlS
ZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFbnRpdHlSZWZl
cmVuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGOUI3OUUwQkE2MDMyNjAw
ODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQ0RBVEFTZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNGOUI3OUYwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ0RBVEFTZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRkRBRkM5MEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRB
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRvckluc2VydEFj
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAwNDcsOCArMjAwNDMsNiBA
QAogCQkJCUJDNjQ2NDk2MTFEODIzNDkwMDY0NTVCMCAvKiBKU0RPTVN0cmluZ01hcC5oICovLAog
CQkJCTY1REYzMUU1MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQuY3BwICovLAogCQkJCTY1
REYzMUU2MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0VsZW1lbnQuaCAqLywKLQkJCQk5M0Y5Qjc3MjBC
QTVGRERDMDA4NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuY3BwICovLAotCQkJCTkzRjlCNzcz
MEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5oICovLAogCQkJCUZFODBEQTVG
MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmNwcCAqLywKIAkJCQlGRTgwREE2MDBF
OUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbi5oICovLAogCQkJCUZFODBEQTYxMEU5QzQ3
MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmNwcCAqLywKQEAgLTI1NTc1LDcgKzI1NTY5LDYg
QEAKIAkJCQlGRDc4NjhCQTEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JO
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NURGMzFGQTA5RDFDQzYwMDAwQkUzMjUgLyogSlNF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBREVDNzhGODE4RUU1MzA4MDAxMzE1QzIgLyog
SlNFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKLQkJCQk5M0Y5Qjc3NTBCQTVGREREMDA4
NTQwNjQgLyogSlNFbnRpdHlSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFQ0Y3QURE
MTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYz
RDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTRFODM3OEUwOUY4NUQ0RjAwQjg1QUU0IC8qIEpTRXZlbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjkxMzcsNyArMjkxMzAsNiBAQAogCQkJCUZENzg2OEI5MTM2Qjk5OTIwMEQ0MDNERiAv
KiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMx
RjkwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzJFRDU1NTBDNkI5QkQzMDA5MjBCRkYgLyogSlNFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTkzRjlCNzc0MEJBNUZEREMwMDg1NDA2NCAvKiBKU0VudGl0eVJlZmVyZW5jZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRUNGN0FEQzEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJv
ckV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAv
KiBKU0Vycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEU4Mzc4NDA5Rjg1RDFD
MDBCODVBRTQgLyogSlNFdmVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCmluZGV4IDU5Y2Y2
OGMxMjkwYTdhYjAyNmUzMWUzMjYxYjA2OGE0M2QzNjYwOTMuLmFjYTFmOThhYzk5NDg5MGM3MDI4
NzZiMWE4Y2ViNzBiOTdiZmFiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcApAQCAtNDcsNyArNDcsNiBAQAogI2luY2x1
ZGUgIldlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTURvY3Vt
ZW50VHlwZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIgot
I2luY2x1ZGUgIldlYktpdERPTUVudGl0eVJlZmVyZW5jZVByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXRET01FdmVudFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01FdmVudFRhcmdldFBy
aXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01GaWxlUHJpdmF0ZS5oIgpAQCAtOTMsOCArOTIs
NiBAQCBXZWJLaXRET01Ob2RlKiB3cmFwKE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVybiBXRUJL
SVRfRE9NX05PREUod3JhcFRleHQoZG93bmNhc3Q8VGV4dD4obm9kZSkpKTsKICAgICBjYXNlIE5v
ZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3
cmFwQ0RBVEFTZWN0aW9uKHN0YXRpY19jYXN0PENEQVRBU2VjdGlvbio+KG5vZGUpKSk7Ci0gICAg
Y2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6Ci0gICAgICAgIHJldHVybiBXRUJLSVRf
RE9NX05PREUod3JhcEVudGl0eVJlZmVyZW5jZShzdGF0aWNfY2FzdDxFbnRpdHlSZWZlcmVuY2Uq
Pihub2RlKSkpOwogICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgog
ICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24o
c3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4obm9kZSkpKTsKICAgICBjYXNlIE5v
ZGU6OkNPTU1FTlRfTk9ERToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uY3BwCmluZGV4IGRlZWU2NzVhOTI1MTIxMDU0ZjE3MjMyN2U1MzZhYTRkZjhlNWY3NTkuLjcz
YjIxMGFhOGQxZWEwNWNmMWUxOWY1ZTRmMzUxZjFlMDVlYjk5MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNs
dWRlICJFbnRpdHkuaCIKLSNpbmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSFRNTEF1ZGlvRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxDYW52YXNFbGVtZW50LmgiCkBAIC01MSw3ICs1MCw2IEBACiAjaW5jbHVkZSAiSlNEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkpTRG9j
dW1lbnRUeXBlLmgiCi0jaW5jbHVkZSAiSlNFbnRpdHlSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJK
U0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJKU0hUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCkBAIC0yMDksOSArMjA3LDYgQEAgc3RhdGlj
IEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBjcmVhdGVXcmFwcGVySW5saW5lKEV4ZWNTdGF0ZSogZXhl
YywgSlNET01HbG9iYWxPYmoKICNlbmRpZgogICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVB
VEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBEb2N1bWVudEZyYWdtZW50LCBub2RlKTsKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9E
RToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0
LCBFbnRpdHlSZWZlcmVuY2UsIG5vZGUpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9i
amVjdCwgTm9kZSwgbm9kZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET00ubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQpp
bmRleCA4ZTFmYmUxZmNkN2MzN2M0NmU5MGMzM2NjMDQ0MjM0YTFhZTQ4NzgyLi5lODM5NjVkYmMz
NGYyMWMzY2UzMTE2MGQ0NzVhNmQyODJjYTNmYmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTS5tbQpAQCAtMzExLDggKzMxMSw2IEBAIENsYXNzIGtpdENsYXNzKFdlYkNvcmU6Ok5vZGUq
IGltcGwpCiAgICAgICAgICAgICByZXR1cm4gW0RPTVRleHQgY2xhc3NdOwogICAgICAgICBjYXNl
IFdlYkNvcmU6Ok5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKICAgICAgICAgICAgIHJldHVybiBb
RE9NQ0RBVEFTZWN0aW9uIGNsYXNzXTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpFTlRJ
VFlfUkVGRVJFTkNFX05PREU6Ci0gICAgICAgICAgICByZXR1cm4gW0RPTUVudGl0eVJlZmVyZW5j
ZSBjbGFzc107CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVD
VElPTl9OT0RFOgogICAgICAgICAgICAgcmV0dXJuIFtET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24g
Y2xhc3NdOwogICAgICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNPTU1FTlRfTk9ERToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmpl
Y3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2Jq
ZWN0LnBtCmluZGV4IGVjYjJkZjc4OTA5NTI0YjQwMjEzZjU2MTNjNGJjNDhiMTE4YTUyNmUuLmZj
ZGY3MWFlNWU1YjdlMTlhZjg1OTU1ZDU5Y2U1ZjJhMWJkMTk0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpA
QCAtMjkwLDYgKzI5MCwxMiBAQCBzdWIgU2tpcEZ1bmN0aW9uIHsKICAgICAjIFN0YXRpYyBtZXRo
b2RzIGFyZSB1bnN1cHBvcnRlZAogICAgIHJldHVybiAxIGlmICRmdW5jdGlvbi0+aXNTdGF0aWM7
CiAKKyAgICAjIEZJWE1FOiBUaGlzIGlzIHNraXBwZWQgYmVjYXVzZSBJIGRvbid0IGtub3cgaG93
IHRvIGZpeCB0aGUgYnVpbGQgYW55IGJldHRlciB3YXkuCisgICAgIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEg
IndlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2VudGl0eV9yZWZlcmVuY2UiKSB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKwogICAgIGlmICgoJGlzQ3VzdG9tRnVuY3Rpb24gfHwgJGlzVW5z
dXBwb3J0ZWRDYWxsV2l0aCkgJiYKICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAid2Via2l0X2Rv
bV9ub2RlX3JlcGxhY2VfY2hpbGQiICYmCiAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgIndlYmtp
dF9kb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCmluZGV4IGFjN2I2NmY5
OTcwNWQ4OTllZWNlM2MyODk0Zjg5ZTFmODA5ZDE1ZjguLjk2ZDdlZWQzYjBmZjIxNTU5YWRjMzM1
ZTIwYTRjNDU5ZGYyMWJkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAgLTE0OCwxMyArMTQ4LDcgQEAg
UmVmPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCwgQ2xvbmluZ09wZXJhdGlvbikKIC8vIERPTSBTZWN0aW9uIDEuMS4xCiBib29sIEF0dHI6OmNo
aWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKHR5cGUp
IHsKLSAgICAgICAgY2FzZSBURVhUX05PREU6Ci0gICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5D
RV9OT0RFOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIHJldHVybiB0eXBlID09IFRFWFRfTk9E
RTsKIH0KIAogdm9pZCBBdHRyOjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9BdHRyLmgKaW5kZXggMTI0YzZkN2EyYWEyODY4MzBmY2JhMjk2Mjg4ODhiNzIwMjI5OTI4Ni4u
ZjZmMzYyMDc3MTdhMzVjMmIyNDNmYWFhOTY1ZGMzYWI3MmYyNmJjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBA
IC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1N0eWxlRGVjbGFy
YXRpb247CiBjbGFzcyBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOwogCi0vLyBBdHRyIGNhbiBoYXZl
IFRleHQgYW5kIEVudGl0eVJlZmVyZW5jZSBjaGlsZHJlbgorLy8gQXR0ciBjYW4gaGF2ZSBUZXh0
IGNoaWxkcmVuCiAvLyB0aGVyZWZvcmUgaXQgaGFzIHRvIGJlIGEgZnVsbGJsb3duIE5vZGUuIFRo
ZSBwbGFuCiAvLyBpcyB0byBkeW5hbWljYWxseSBhbGxvY2F0ZSBhIHRleHRjaGlsZCBhbmQgc3Rv
cmUgdGhlCiAvLyByZXN1bHRpbmcgbm9kZXZhbHVlIGluIHRoZSBhdHRyaWJ1dGUgdXBvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGM5NjM0YjBjZTEwMDM0ZTkyYjVjNTE2
ZTEzMmQwYzQzNDMxN2E1MGQuLjNmNGZlMGY4MDM3NGM4MzcwMDk5MGVkNGI0NWE0YTlkMjE5NDli
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTE4MCw3ICsxODAsNiBA
QCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJO
b2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogewogICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0
IHBhdGggaWYgcG9zc2libGUuCiAgICAgaWYgKChuZXdDaGlsZC5pc0VsZW1lbnROb2RlKCkgfHwg
bmV3Q2hpbGQuaXNUZXh0Tm9kZSgpKSAmJiBuZXdQYXJlbnQuaXNFbGVtZW50Tm9kZSgpKSB7Ci0g
ICAgICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOwogICAgICAgICBBU1NF
UlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgICAgIEFTU0VSVChpc0No
aWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpOwogICAgICAgICBpZiAoY29udGFp
bnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKQEAgLTE5Myw4
ICsxOTIsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChD
b250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ldwogICAgIGlmIChuZXdDaGlsZC5pc1Bz
ZXVkb0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAot
ICAgIGlmIChuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSkKLSAgICAgICAgcmV0dXJuIE5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICBpZiAoY29udGFpbnNDb25zaWRlcmluZ0hvc3RF
bGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9S
RVFVRVNUX0VSUjsKIApAQCAtMjA5LDcgKzIwNiw2IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9u
Q29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3
CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBl
cyhDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBBU1NFUlQoIW5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKICAgICBB
U1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hp
bGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgaWYgKG5ld0NoaWxkLmNv
bnRhaW5zKCZuZXdQYXJlbnQpKSB7CkBAIC01MjEsMTIgKzUxNyw2IEBAIGJvb2wgQ29udGFpbmVy
Tm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAg
ICAgZWMgPSAwOwogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQg
aWYgdGhpcyBub2RlIGlzIHJlYWRvbmx5LgotICAgIGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7Ci0g
ICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxk
IGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZS4KICAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9k
ZSgpICE9IHRoaXMpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggMDhkOWRjZDljMjQzYTdlNjcwZjVmMjdhZGY3NTM0NzNlZjZiMjY0My4u
YjkzZTA1MzU3MmNlOTEyMTc1YzNjM2VmYjkzYjllOTM1OTNkNmFmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC05MDksMTcgKzkwOSwxMCBAQCBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0
aW9uPiBEb2N1bWVudDo6Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKGNvbnN0IFN0cmluZwog
ICAgIHJldHVybiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNyZWF0ZSgqdGhpcywgdGFyZ2V0LCBk
YXRhKTsKIH0KIAotUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0
eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRy
PEVudGl0eVJlZmVyZW5jZT4gRG9jdW1lbnQ6OmNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIWlzVmFsaWROYW1lKG5hbWUp
KSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9DSEFSQUNURVJfRVJSOwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICB9Ci0gICAgaWYgKGlzSFRNTERvY3VtZW50KCkpIHsKLSAgICAgICAgZWMg
PSBOT1RfU1VQUE9SVEVEX0VSUjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAg
IHJldHVybiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0ZSgqdGhpcywgbmFtZSk7CisgICAgZWMgPSBO
T1RfU1VQUE9SVEVEX0VSUjsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmPFRleHQ+IERv
Y3VtZW50OjpjcmVhdGVFZGl0aW5nVGV4dE5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtOTQ0
LDcgKzkzNyw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6aW1wb3J0Tm9kZShOb2RlKiBpbXBv
cnRlZE5vZGUsIGJvb2wgZGVlcCwgRXhjZXB0aW9uQ29kZSYKICAgICBjYXNlIEVMRU1FTlRfTk9E
RToKICAgICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKLSAg
ICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJV
Q1RJT05fTk9ERToKICAgICBjYXNlIENPTU1FTlRfTk9ERToKICAgICBjYXNlIERPQ1VNRU5UX0ZS
QUdNRU5UX05PREU6CkBAIC05NzQsMTEgKzk2Niw2IEBAIFJlZlB0cjxOb2RlPiBEb2N1bWVudDo6
YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKHNvdXJjZS0+aXNSZWFkT25s
eU5vZGUoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCiAgICAgRXZlbnRRdWV1ZVNjb3BlIHNjb3Bl
OwogCiAgICAgc3dpdGNoIChzb3VyY2UtPm5vZGVUeXBlKCkpIHsKQEAgLTE3MTAsNTIgKzE2OTcs
NTIgQEAgUmVmPFJhbmdlPiBEb2N1bWVudDo6Y3JlYXRlUmFuZ2UoKQogICAgIHJldHVybiBSYW5n
ZTo6Y3JlYXRlKCp0aGlzKTsKIH0KIAotUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNy
ZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJl
ZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBF
eGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50OjpjcmVhdGVO
b2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8
Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJl
dHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRl
ciksIGVjKTsKK30KKworUmVmUHRyPE5vZGVJdGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJ
dGVyYXRvcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2Rl
RmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7
CiAgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
Ci0gICAgcmV0dXJuIE5vZGVJdGVyYXRvcjo6Y3JlYXRlKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6
bW92ZShmaWx0ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICByZXR1cm4gTm9kZUl0
ZXJhdG9yOjpjcmVhdGUocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpOwogfQog
Ci1SZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUq
IHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmls
dGVyLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxOb2RlSXRlcmF0b3I+IERvY3VtZW50Ojpj
cmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3Qs
IHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBmYWxzZSwgZWMpOworICAgIHJldHVybiBj
cmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZWMpOwogfQogCi1S
ZWZQdHI8Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJv
b3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8
Tm9kZUl0ZXJhdG9yPiBEb2N1bWVudDo6Y3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwg
d2hhdFRvU2hvdywgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlTm9kZUl0
ZXJhdG9yKHJvb3QsIDB4RkZGRkZGRkYsIG51bGxwdHIsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGVJ
dGVyYXRvcj4gRG9jdW1lbnQ6OmNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlKiByb290LCBFeGNlcHRp
b25Db2RlJiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtl
cihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVy
PiYmIGZpbHRlciwgYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0
ZU5vZGVJdGVyYXRvcihyb290LCAweEZGRkZGRkZGLCBudWxscHRyLCBmYWxzZSwgZWMpOworICAg
IHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0
ZXIpLCBlYyk7CiB9CiAKLVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdh
bGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmls
dGVyPiYmIGZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2Rl
JiBlYykKK1JlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2Rl
KiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZp
bHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAgIGVj
ID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0dXJu
IFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwg
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7Ci19Ci0KLVJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1bWVu
dDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cs
IFJlZlB0cjxOb2RlRmlsdGVyPiYmIGZpbHRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAg
cmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgV1RGOjptb3ZlKGZpbHRl
ciksIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIFRyZWVXYWxrZXI6OmNyZWF0ZShyb290LCB3aGF0
VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSk7CiB9CiAKIFJlZlB0cjxUcmVlV2Fsa2VyPiBEb2N1
bWVudDo6Y3JlYXRlVHJlZVdhbGtlcihOb2RlKiByb290LCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3csIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBjcmVhdGVUcmVlV2Fsa2VyKHJv
b3QsIHdoYXRUb1Nob3csIG51bGxwdHIsIGZhbHNlLCBlYyk7CisgICAgcmV0dXJuIGNyZWF0ZVRy
ZWVXYWxrZXIocm9vdCwgd2hhdFRvU2hvdywgbnVsbHB0ciwgZWMpOwogfQogCiBSZWZQdHI8VHJl
ZVdhbGtlcj4gRG9jdW1lbnQ6OmNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZVRyZWVXYWxrZXIocm9vdCwgMHhGRkZGRkZG
RiwgbnVsbHB0ciwgZmFsc2UsIGVjKTsKKyAgICByZXR1cm4gY3JlYXRlVHJlZVdhbGtlcihyb290
LCAweEZGRkZGRkZGLCBudWxscHRyLCBlYyk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxl
Rm9yY2VkU3R5bGVSZWNhbGMoKQpAQCAtMzM1Nyw3ICszMzQ0LDYgQEAgYm9vbCBEb2N1bWVudDo6
Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ0RBVEFfU0VD
VElPTl9OT0RFOgogICAgIGNhc2UgRE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICBjYXNlIERP
Q1VNRU5UX05PREU6Ci0gICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgY2FzZSBU
RVhUX05PREU6CiAgICAgY2FzZSBYUEFUSF9OQU1FU1BBQ0VfTk9ERToKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMzM4NSw3ICszMzcxLDYgQEAgYm9vbCBEb2N1bWVudDo6Y2FuQWNjZXB0Q2hp
bGQoY29uc3QgTm9kZSYgbmV3Q2hpbGQsIGNvbnN0IE5vZGUqIHJlZkNoaWxkLCBBY2NlcHQKICAg
ICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAg
IGNhc2UgRE9DVU1FTlRfTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAg
ICBjYXNlIFRFWFRfTk9ERToKICAgICBjYXNlIFhQQVRIX05BTUVTUEFDRV9OT0RFOgogICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDNhYzk1MTc5MzlhYjRlZDY0
YWNhMTQzMTcyNTcwMzBhOTEzNDI5ZWMuLjc4MWVmMjBiZDMzNzc5M2NjODMzYzNjMWNhYmE1MGEw
YzFiODhlMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01MzYsMTIgKzUzNiwxMiBAQCBwdWJs
aWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8UmFuZ2U+IGNyZWF0ZVJhbmdlKCk7CiAKLSAg
ICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSogcm9vdCwgdW5z
aWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBhbmRF
bnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPE5vZGVJdGVyYXRv
cj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsgLy8gRm9yIE9i
akMgYmluZGluZ3MuCiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9y
KE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+
JiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8Tm9kZUl0ZXJhdG9yPiBjcmVhdGVOb2Rl
SXRlcmF0b3IoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBFeGNlcHRpb25D
b2RlJik7CiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUq
IHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVU
cmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5v
ZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYp
OworICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVu
c2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYsIGJvb2wsIEV4Y2Vw
dGlvbkNvZGUmKTsgLy8gRm9yIE9iakMgYmluZGluZ3MuCiAgICAgUmVmUHRyPFRyZWVXYWxrZXI+
IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSogcm9vdCwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBS
ZWZQdHI8Tm9kZUZpbHRlcj4mJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fs
a2VyPiBjcmVhdGVUcmVlV2Fsa2VyKE5vZGUqIHJvb3QsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxUcmVlV2Fsa2VyPiBjcmVhdGVUcmVlV2Fs
a2VyKE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmlu
ZGV4IDFjYzAwMDczY2MwNDk3NWYyOTcxZmZkZDAzZjBlNjVmMGY1MDk1ZWIuLmYyNmVjZWY4NmJj
MzNhNWZlNjI4MTY1YmQ0ZDQwNDg5NzVjZjVjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApA
QCAtMzksNyArMzksMTAgQEAKICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBOZXdP
YmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbihbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyB0
YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlv
bmFsIERPTVN0cmluZyBkYXRhKTsKICAgICBbTmV3T2JqZWN0LCBSYWlzZXNFeGNlcHRpb25dIEF0
dHIgY3JlYXRlQXR0cmlidXRlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5n
IG5hbWUpOwotICAgIFtOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gRW50aXR5UmVmZXJlbmNl
IGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0
cmluZyBuYW1lKTsKKworI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdV
QUdFX09CSkVDVElWRV9DIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0Vf
R09CSkVDVAorICAgIFtSYWlzZXNFeGNlcHRpb25dIEVudGl0eVJlZmVyZW5jZSBjcmVhdGVFbnRp
dHlSZWZlcmVuY2UoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgbmFtZSk7
CisjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdF
X09CSkVDVElWRV9DCiAgICAgW0ltcGxlbWVudGVkQXM9Z2V0RWxlbWVudHNCeVRhZ05hbWVGb3JP
YmpDXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShbRGVmYXVsdD1VbmRlZmluZWRdIG9w
dGlvbmFsIERPTVN0cmluZyB0YWduYW1lKTsKQEAgLTkyLDE0ICs5NSwyMyBAQAogCiAgICAgLy8g
RE9NIExldmVsIDIgVHJhbnZlcnNhbCBhbmQgUmFuZ2UgKERvY3VtZW50VHJhdmVyc2FsIGludGVy
ZmFjZSkKIAotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlv
biwgTmV3T2JqZWN0XSBOb2RlSXRlcmF0b3IgY3JlYXRlTm9kZUl0ZXJhdG9yKE5vZGUgcm9vdCwK
KyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVf
QyB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdVQUdFX0dPQkpFQ1QKKyAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb25dIE5vZGVJdGVyYXRv
ciBjcmVhdGVOb2RlSXRlcmF0b3IoTm9kZSByb290LAogICAgICAgICBvcHRpb25hbCB1bnNpZ25l
ZCBsb25nIHdoYXRUb1Nob3cgPSAweEZGRkZGRkZGLAogICAgICAgICBvcHRpb25hbCBOb2RlRmls
dGVyPyBmaWx0ZXIsCiAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJl
bmNlcyk7Ci0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9u
LCBOZXdPYmplY3RdIFRyZWVXYWxrZXIgY3JlYXRlVHJlZVdhbGtlcihOb2RlIHJvb3QsCisgICAg
W09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSBUcmVlV2Fsa2Vy
IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSByb290LAogICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3cgPSAweEZGRkZGRkZGLAogICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVy
PyBmaWx0ZXIsCiAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNl
cyk7CisjZWxzZQorICAgIFtSYWlzZXNFeGNlcHRpb24sIE5ld09iamVjdF0gTm9kZUl0ZXJhdG9y
IGNyZWF0ZU5vZGVJdGVyYXRvcihOb2RlIHJvb3QsCisgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdyA9IDB4RkZGRkZGRkYsCisgICAgICAgIG9wdGlvbmFsIE5vZGVGaWx0
ZXI/IGZpbHRlcik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBUcmVlV2Fsa2Vy
IGNyZWF0ZVRyZWVXYWxrZXIoTm9kZSByb290LAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3cgPSAweEZGRkZGRkZGLAorICAgICAgICBvcHRpb25hbCBOb2RlRmlsdGVy
PyBmaWx0ZXIpOworI2VuZGlmCiAKICAgICAvLyBET00gTGV2ZWwgMiBBYnN0cmFjdCBWaWV3cyAo
RG9jdW1lbnRWaWV3IGludGVyZmFjZSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21l
bnQuY3BwCmluZGV4IGY5YjM4YTBiZDI4ZThlM2M2MDkzNGFmZjFhNjAwNTkyNzA5MDNmZWMuLmE2
NzAwMmM0YmY5ODc0NGEyOTUzZjQ5ZTI2ZTYxYmEwY2FkMzcxYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTYwLDcgKzYwLDYgQEAgYm9vbCBEb2N1bWVudEZy
YWdtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgICAgIGNh
c2UgQ09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIFRFWFRfTk9ERToKICAgICAgICAgY2FzZSBD
REFUQV9TRUNUSU9OX05PREU6Ci0gICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYmQzMDc0ZDFlODM3NGIwYjc3
N2I2ZTcwNDNiNDc5YmI1Njg0NmU1NC4uNThmYzgwNDY3ODI0MmY0ZGRiNjI2Y2JhYTY5ODQ4MGYx
YTQ4ZmNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTc1NSw3ICsxNzU1LDYgQEAgYm9v
bCBFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgY2Fz
ZSBDT01NRU5UX05PREU6CiAgICAgY2FzZSBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAg
ICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgY2FzZSBFTlRJVFlfUkVGRVJFTkNFX05P
REU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcAppbmRleCA3ZTkxYTQ2MmRhODIwOWQ5
MjJjNDVkYzg0YzQxYTA4NTVhZDZiZTFhLi5lNTgyNGYxMDhiYjZmNTQzYjVhMDc2N2FmZTFmYTg0
YTJkNDgxZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcApAQCAtMjUs
MzAgKzI1LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgRW50aXR5UmVmZXJl
bmNlOjpFbnRpdHlSZWZlcmVuY2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGVu
dGl0eU5hbWUpCitpbmxpbmUgRW50aXR5UmVmZXJlbmNlOjpFbnRpdHlSZWZlcmVuY2UoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmKQogICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVu
dCkKLSAgICAsIG1fZW50aXR5TmFtZShlbnRpdHlOYW1lKQogewogfQogCi1SZWY8RW50aXR5UmVm
ZXJlbmNlPiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgZW50aXR5TmFtZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbnRpdHlS
ZWZlcmVuY2UoZG9jdW1lbnQsIGVudGl0eU5hbWUpKTsKLX0KLQotU3RyaW5nIEVudGl0eVJlZmVy
ZW5jZTo6bm9kZU5hbWUoKSBjb25zdAotewotICAgIHJldHVybiBtX2VudGl0eU5hbWU7Ci19Ci0K
LU5vZGU6Ok5vZGVUeXBlIEVudGl0eVJlZmVyZW5jZTo6bm9kZVR5cGUoKSBjb25zdAotewotICAg
IHJldHVybiBFTlRJVFlfUkVGRVJFTkNFX05PREU7Ci19Ci0KLVJlZjxOb2RlPiBFbnRpdHlSZWZl
cmVuY2U6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmlu
Z09wZXJhdGlvbikKLXsKLSAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBtX2VudGl0
eU5hbWUpOwotfQotCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VudGl0eVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5j
ZS5oCmluZGV4IDg2ZGZlYjM5ODI1YjM0NTBlNzUzNTkyNTA2ODUxMTBiM2FmMGNhOGYuLjE4YzJl
YzFhZmNlNTcwZTgwZTg2NWEwODQ1YmFiZDg4NjZmOTYxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50
aXR5UmVmZXJlbmNlLmgKQEAgLTI2LDE4ICsyNiw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgRW50aXR5UmVmZXJlbmNlIGZpbmFsIDogcHVibGljIENvbnRhaW5lck5vZGUgewot
cHVibGljOgotICAgIHN0YXRpYyBSZWY8RW50aXR5UmVmZXJlbmNlPiBjcmVhdGUoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmIGVudGl0eU5hbWUpOwotCitjbGFzcyBFbnRpdHlSZWZlcmVuY2UgOiBw
dWJsaWMgQ29udGFpbmVyTm9kZSB7CiBwcml2YXRlOgogICAgIEVudGl0eVJlZmVyZW5jZShEb2N1
bWVudCYsIGNvbnN0IFN0cmluZyYgZW50aXR5TmFtZSk7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyBu
b2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUo
KSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwotCi0gICAgU3RyaW5nIG1f
ZW50aXR5TmFtZTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJl
ZmVyZW5jZS5pZGwKaW5kZXggNmQwNTM1ZjliYzFkYWE3OTE3ODMxZWZkYmU2YWJkMDdhZTliN2Ri
YS4uZWZmOTVhMDNlM2E0ZTJmZDM2YjJlMjE4YzYwOTY0ODM4Y2M2ZTdmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKQEAgLTE3LDggKzE3LDEyIEBACiAgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCisjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJ
VkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KSAmJiBMQU5HVUFHRV9HT0JKRUNUCisKIFsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBK
U0dlbmVyYXRlVG9KU09iamVjdAogXSBpbnRlcmZhY2UgRW50aXR5UmVmZXJlbmNlIDogTm9kZSB7
CiB9OwogCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA0MzYyZDY1NmRjNDdmZDY0MzM1YjQ2
ODYxNGJlNzM2NTg4MTMwMmJhLi5kZWYyNGNlNjcwOTU1NjY0YmNiYTEzNTA0NzE2ZmM0MTdjYWY2
MzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMDMsNyArMTAzLDYgQEAgdm9pZCBOb2RlOjpkdW1w
U3RhdGlzdGljcygpCiAgICAgc2l6ZV90IHRleHROb2RlcyA9IDA7CiAgICAgc2l6ZV90IGNkYXRh
Tm9kZXMgPSAwOwogICAgIHNpemVfdCBjb21tZW50Tm9kZXMgPSAwOwotICAgIHNpemVfdCBlbnRp
dHlSZWZlcmVuY2VOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGVudGl0eU5vZGVzID0gMDsKICAgICBz
aXplX3QgcGlOb2RlcyA9IDA7CiAgICAgc2l6ZV90IGRvY3VtZW50Tm9kZXMgPSAwOwpAQCAtMTY4
LDEwICsxNjcsNiBAQCB2b2lkIE5vZGU6OmR1bXBTdGF0aXN0aWNzKCkKICAgICAgICAgICAgICAg
ICArK2NvbW1lbnROb2RlczsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGNhc2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOiB7Ci0gICAgICAgICAgICAg
ICAgKytlbnRpdHlSZWZlcmVuY2VOb2RlczsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgRU5USVRZX05PREU6IHsKICAgICAgICAgICAgICAg
ICArK2VudGl0eU5vZGVzOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjExLDcgKzIwNiw2
IEBAIHZvaWQgTm9kZTo6ZHVtcFN0YXRpc3RpY3MoKQogICAgIHByaW50ZigiICBOdW1iZXIgb2Yg
VGV4dCBub2RlczogJXp1XG4iLCB0ZXh0Tm9kZXMpOwogICAgIHByaW50ZigiICBOdW1iZXIgb2Yg
Q0RBVEFTZWN0aW9uIG5vZGVzOiAlenVcbiIsIGNkYXRhTm9kZXMpOwogICAgIHByaW50ZigiICBO
dW1iZXIgb2YgQ29tbWVudCBub2RlczogJXp1XG4iLCBjb21tZW50Tm9kZXMpOwotICAgIHByaW50
ZigiICBOdW1iZXIgb2YgRW50aXR5UmVmZXJlbmNlIG5vZGVzOiAlenVcbiIsIGVudGl0eVJlZmVy
ZW5jZU5vZGVzKTsKICAgICBwcmludGYoIiAgTnVtYmVyIG9mIEVudGl0eSBub2RlczogJXp1XG4i
LCBlbnRpdHlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24gbm9kZXM6ICV6dVxuIiwgcGlOb2Rlcyk7CiAgICAgcHJpbnRmKCIgIE51bWJlciBvZiBE
b2N1bWVudCBub2RlczogJXp1XG4iLCBkb2N1bWVudE5vZGVzKTsKQEAgLTM4NCwxNCArMzc4LDgg
QEAgU3RyaW5nIE5vZGU6Om5vZGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwog
fQogCi12b2lkIE5vZGU6OnNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmIC8qbm9kZVZhbHVlKi8s
IEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBOb2RlOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5n
JiAvKm5vZGVWYWx1ZSovLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICAvLyBOT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlI6IFJhaXNlZCB3aGVuIHRoZSBub2RlIGlzIHJlYWRvbmx5Ci0gICAgaWYg
KGlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBCeSBkZWZhdWx0LCBzZXR0
aW5nIG5vZGVWYWx1ZSBoYXMgbm8gZWZmZWN0LgogfQogCkBAIC04OTAsMTEgKzg3OCw2IEBAIHZv
aWQgTm9kZTo6Y2hlY2tTZXRQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzUmVhZE9u
bHlOb2RlKCkpIHsKLSAgICAgICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBGSVhNRTogUmFpc2UgTkFNRVNQQUNFX0VS
UiBpZiBwcmVmaXggaXMgbWFsZm9ybWVkIHBlciB0aGUgTmFtZXNwYWNlcyBpbiBYTUwgc3BlY2lm
aWNhdGlvbi4KIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbm9kZU5hbWVzcGFjZVVSSSA9IG5h
bWVzcGFjZVVSSSgpOwpAQCAtMTQyMiw3ICsxNDA1LDYgQEAgc3RhdGljIHZvaWQgYXBwZW5kVGV4
dENvbnRlbnQoY29uc3QgTm9kZSogbm9kZSwgYm9vbCBjb252ZXJ0QlJzVG9OZXdsaW5lcywgYm9v
bCYKICAgICAgICAgfQogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIE5vZGU6OkFUVFJJ
QlVURV9OT0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNh
c2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAgICAgaXNOdWxsU3RyaW5nID0g
ZmFsc2U7CiAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CkBAIC0xNDU4LDcgKzE0NDAsNiBA
QCB2b2lkIE5vZGU6OnNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgRUxFTUVOVF9OT0RF
OgogICAgICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgotICAgICAgICBjYXNlIEVOVElUWV9SRUZF
UkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOiB7CiAgICAg
ICAgICAgICBSZWY8Q29udGFpbmVyTm9kZT4gY29udGFpbmVyKGRvd25jYXN0PENvbnRhaW5lck5v
ZGU+KCp0aGlzKSk7CiAgICAgICAgICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9u
KGNvbnRhaW5lcik7CkBAIC0xNDc4LDcgKzE0NTksNiBAQCB2b2lkIE5vZGU6OnNldFRleHRDb250
ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIEVsZW1lbnQqIE5v
ZGU6OmFuY2VzdG9yRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgLy8gSW4gdGhlb3J5LCB0aGVyZSBj
YW4gYmUgRW50aXR5UmVmZXJlbmNlIG5vZGVzIGJldHdlZW4gZWxlbWVudHMsIGJ1dCB0aGlzIGlz
IGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLgogICAgIGZvciAoQ29udGFpbmVyTm9kZSogYW5jZXN0
b3IgPSBwYXJlbnROb2RlKCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnRO
b2RlKCkpIHsKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCphbmNlc3RvcikpCiAgICAgICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8RWxlbWVudD4oYW5jZXN0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMDRl
MzhkMjViNDNiNDBmYmQ1YjM2NGNmNDMzZTc3YzNjMTA3MzVjNC4uYTJmYzQzODg5NDBlMjJjZjc1
YmY1OTViNzQ4OWRkODM5MmQ1MDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0xMjUsNyArMTI1LDYgQEAg
cHVibGljOgogICAgICAgICBBVFRSSUJVVEVfTk9ERSA9IDIsCiAgICAgICAgIFRFWFRfTk9ERSA9
IDMsCiAgICAgICAgIENEQVRBX1NFQ1RJT05fTk9ERSA9IDQsCi0gICAgICAgIEVOVElUWV9SRUZF
UkVOQ0VfTk9ERSA9IDUsCiAgICAgICAgIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSA9IDcs
CiAgICAgICAgIENPTU1FTlRfTk9ERSA9IDgsCiAgICAgICAgIERPQ1VNRU5UX05PREUgPSA5LApA
QCAtMTM0LDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgWFBBVEhfTkFNRVNQQUNFX05PREUg
PSAxMywKICAgICB9OwogICAgIGVudW0gRGVwcmVjYXRlZE5vZGVUeXBlIHsKKyAgICAgICAgRU5U
SVRZX1JFRkVSRU5DRV9OT0RFID0gNSwKICAgICAgICAgRU5USVRZX05PREUgPSA2LAogICAgICAg
ICBOT1RBVElPTl9OT0RFID0gMTIsCiAgICAgfTsKQEAgLTQxNyw3ICs0MTcsNiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0luU2hhZG93VHJlZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNJblNo
YWRvd1RyZWVGbGFnKTsgfQogICAgIGJvb2wgaXNJblRyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJu
IGdldEZsYWcoc3RhdGljX2Nhc3Q8Tm9kZUZsYWdzPihJbkRvY3VtZW50RmxhZyB8IElzSW5TaGFk
b3dUcmVlRmxhZykpOyB9CiAKLSAgICBib29sIGlzUmVhZE9ubHlOb2RlKCkgY29uc3QgeyByZXR1
cm4gbm9kZVR5cGUoKSA9PSBFTlRJVFlfUkVGRVJFTkNFX05PREU7IH0KICAgICBib29sIGlzRG9j
dW1lbnRUeXBlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQ
RV9OT0RFOyB9CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdW5zaWduZWQgY291bnRDaGlsZE5vZGVzKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IDQ4YTBhMTkyYTdiZWUwY2Zm
MjA5ZDVlYTRkODljOWMzMWEwNGM3MDkuLmRhOWQwMjNiMjVlOGY5ZjJiZjU3YWM4ODEwMzhkNzI1
ZDVlMWM2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC03Niw4ICs3Niw4
IEBAIGJvb2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRvUHJldmlvdXMoTm9kZSog
cm9vdCkKICAgICByZXR1cm4gbm9kZTsKIH0KIAotTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3Io
UGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQ
dHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKLSAg
ICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0
ZXIpLCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorTm9kZUl0ZXJhdG9yOjpOb2RlSXRlcmF0b3Io
UGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQ
dHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIpCisgICAgOiBOb2RlSXRlcmF0b3JCYXNlKHJvb3ROb2Rl
LCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSkKICAgICAsIG1fcmVmZXJlbmNlTm9kZShy
b290KCksIHRydWUpCiB7CiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmF0dGFjaE5vZGVJdGVyYXRv
cih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAppbmRleCA5NzE5Mjc0YTNkYTFiOTc1
NDA2YWE3MWNjNWU5ZWFlNWYzYzdkMzM1Li40ZjE1MDdkZTAzYWMzMDNlNWYxODBiMzMxMTI2ODA3
NGM2OTgwODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCkBAIC0zNyw5ICszNyw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIE5vZGVJdGVyYXRvciA6IHB1YmxpYyBT
Y3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPE5vZGVJdGVyYXRvcj4sIHB1YmxpYyBO
b2RlSXRlcmF0b3JCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUl0
ZXJhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3
aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcykKKyAgICAgICAgc3RhdGljIFJlZjxOb2RlSXRlcmF0b3I+IGNyZWF0ZShQYXNz
UmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxO
b2RlRmlsdGVyPiYmIGZpbHRlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmls
dGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTm9kZUl0ZXJhdG9yKHJvb3ROb2RlLCB3aGF0VG9TaG93LCBXVEY6Om1vdmUoZmls
dGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIApAQCAtNTQsNyAr
NTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92
ZWQoTm9kZSYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQ
dHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYs
IGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIE5vZGVJdGVyYXRvcihQYXNz
UmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVy
PiYmKTsKIAogICAgICAgICBzdHJ1Y3QgTm9kZVBvaW50ZXIgewogICAgICAgICAgICAgUmVmUHRy
PE5vZGU+IG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9y
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCmluZGV4IDEyMDI1ZGU2
YjhiNDk0NzNlZmQ3Zjc4NDAxMWY0MWY3NjEzMDdiNjcuLjIzMTEyZDk5NDNmNTkzMzdhZmYxNWRh
Y2M3YzFlZTViN2E1Zjc5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRl
cmF0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCkBAIC0y
Niw3ICsyNiw5IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93OwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBOb2RlRmlsdGVyIGZpbHRlcjsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElW
RV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXM7CisjZW5kaWYKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgTm9kZSByZWZlcmVuY2VOb2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBv
aW50ZXJCZWZvcmVSZWZlcmVuY2VOb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCAwYWY3YTE3
YWQxZGE3MjA3MDUwMGJlN2NmM2E5ZGZiOTgxZjljYzMwLi40MWJlMzNlY2Y1MGQzNGZkYjI5NzMz
MzgwYzVmMTVhMTI5YjYxY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTQ4OSwxMCArNDg5LDYg
QEAgYm9vbCBSYW5nZTo6Ym91bmRhcnlQb2ludHNWYWxpZCgpIGNvbnN0CiAKIHZvaWQgUmFuZ2U6
OmRlbGV0ZUNvbnRlbnRzKEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGNoZWNrRGVsZXRlRXh0
cmFjdChlYyk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm47Ci0KICAgICBwcm9jZXNzQ29u
dGVudHMoRGVsZXRlLCBlYyk7CiB9CiAKQEAgLTU3Miw3ICs1NjgsNiBAQCBzdGF0aWMgaW5saW5l
IHVuc2lnbmVkIGxlbmd0aE9mQ29udGVudHNJbk5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgcmV0
dXJuIGRvd25jYXN0PENoYXJhY3RlckRhdGE+KCpub2RlKS5sZW5ndGgoKTsKICAgICBjYXNlIE5v
ZGU6OkVMRU1FTlRfTk9ERToKICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNh
c2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
Tk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKICAgICBjYXNlIE5vZGU6
OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC03MzMsNyArNzI4LDYgQEAgUmVmUHRyPE5vZGU+
IFJhbmdlOjpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwg
UGFzc1JlZlB0cjwKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6
CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICBjYXNlIE5vZGU6OkVOVElUWV9S
RUZFUkVOQ0VfTk9ERToKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CiAgICAgY2FzZSBO
b2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVO
VF9OT0RFOgpAQCAtODM5LDEwICs4MzMsNiBAQCBSZWZQdHI8Tm9kZT4gUmFuZ2U6OnByb2Nlc3NB
bmNlc3RvcnNBbmRUaGVpclNpYmxpbmdzKEFjdGlvblR5cGUgYWN0aW9uLCBOb2RlKiBjbwogCiBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUmFuZ2U6OmV4dHJhY3RDb250ZW50cyhFeGNlcHRpb25D
b2RlJiBlYykKIHsKLSAgICBjaGVja0RlbGV0ZUV4dHJhY3QoZWMpOwotICAgIGlmIChlYykKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gcHJvY2Vzc0NvbnRlbnRzKEV4dHJh
Y3QsIGVjKTsKIH0KIApAQCAtODYxLDEzICs4NTEsNiBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2Rl
KFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICAvLyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI6IFJh
aXNlZCBpZiBhbiBhbmNlc3RvciBjb250YWluZXIgb2YgZWl0aGVyIGJvdW5kYXJ5LXBvaW50IG9m
Ci0gICAgLy8gdGhlIFJhbmdlIGlzIHJlYWQtb25seS4KLSAgICBpZiAoY29udGFpbmVkQnlSZWFk
T25seSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBSYWlz
ZWQgaWYgdGhlIGNvbnRhaW5lciBvZiB0aGUgc3RhcnQgb2YgdGhlIFJhbmdlIGlzIG9mIGEgdHlw
ZSB0aGF0CiAgICAgLy8gZG9lcyBub3QgYWxsb3cgY2hpbGRyZW4gb2YgdGhlIHR5cGUgb2YgbmV3
Tm9kZSBvciBpZiBuZXdOb2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBjb250YWluZXIuCiAKQEAg
LTEwMjcsNyArMTAxMCw2IEBAIE5vZGUqIFJhbmdlOjpjaGVja05vZGVXT2Zmc2V0KE5vZGUqIG4s
IGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6
OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9E
RToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6
RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFD
RV9OT0RFOiB7CiAgICAgICAgICAgICBpZiAoIW9mZnNldCkKICAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKQEAgLTEwNTcsNyArMTAzOSw2IEBAIHZvaWQgUmFuZ2U6OmNoZWNrTm9kZUJB
KE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBjYXNlIE5vZGU6OkNP
TU1FTlRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CiAgICAg
ICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9S
RUZFUkVOQ0VfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9O
X05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6
OlhQQVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTA3Nyw3ICsxMDU4LDYgQEAgdm9pZCBSYW5nZTo6
Y2hlY2tOb2RlQkEoTm9kZSogbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGNh
c2UgTm9kZTo6Q09NTUVOVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVf
Tk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9k
ZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdf
SU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAg
IGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CkBAIC0xMTU0LDcgKzExMzQsNiBAQCB2
b2lkIFJhbmdlOjpzZWxlY3ROb2RlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgogICAgICAgICAg
ICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2RlOjpFTEVN
RU5UX05PREU6Ci0gICAgICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToK
ICAgICAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgogICAg
ICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlhQ
QVRIX05BTUVTUEFDRV9OT0RFOgpAQCAtMTE3MCw3ICsxMTQ5LDYgQEAgdm9pZCBSYW5nZTo6c2Vs
ZWN0Tm9kZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgY2FzZSBO
b2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RF
OgogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKLSAgICAgICAgY2FzZSBOb2RlOjpF
TlRJVFlfUkVGRVJFTkNFX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNU
UlVDVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgY2Fz
ZSBOb2RlOjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyMDksNyArMTE4Nyw2IEBAIHZvaWQg
UmFuZ2U6OnNlbGVjdE5vZGVDb250ZW50cyhOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKICAgICAg
ICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgICAgIGNhc2UgTm9kZTo6
RUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05P
REU6CiAgICAgICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToK
ICAgICAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAgICAgICAgICAgY2FzZSBOb2Rl
OjpYUEFUSF9OQU1FU1BBQ0VfTk9ERToKQEAgLTEyNDgsMjAgKzEyMjUsMTIgQEAgdm9pZCBSYW5n
ZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJlbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKICAg
ICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVO
VF9OT0RFOgotICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAg
ICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CiAgICAgICAgIGNhc2Ug
Tm9kZTo6VEVYVF9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OlhQQVRIX05BTUVTUEFDRV9OT0RF
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOiBSYWlzZWQgaWYgYW4gYW5jZXN0b3IgY29udGFpbmVyIG9mIGVpdGhlciBib3Vu
ZGFyeS1wb2ludCBvZgotICAgIC8vIHRoZSBSYW5nZSBpcyByZWFkLW9ubHkuCi0gICAgaWYgKGNv
bnRhaW5lZEJ5UmVhZE9ubHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIFJhaXNlIGEgSElFUkFS
Q0hZX1JFUVVFU1RfRVJSIGlmIHN0YXJ0Q29udGFpbmVyKCkgZG9lc24ndCBhY2NlcHQgY2hpbGRy
ZW4gbGlrZSBuZXdQYXJlbnQuCiAgICAgTm9kZSogcGFyZW50T2ZOZXdQYXJlbnQgPSAmc3RhcnRD
b250YWluZXIoKTsKIApAQCAtMTMyOSwzOSArMTI5OCw2IEBAIHZvaWQgUmFuZ2U6OnNldFN0YXJ0
QmVmb3JlKE5vZGUqIHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHNldFN0YXJ0KHJl
Zk5vZGUtPnBhcmVudE5vZGUoKSwgcmVmTm9kZS0+Y29tcHV0ZU5vZGVJbmRleCgpLCBlYyk7CiB9
CiAKLXZvaWQgUmFuZ2U6OmNoZWNrRGVsZXRlRXh0cmFjdChFeGNlcHRpb25Db2RlJiBlYykKLXsK
LSAgICBlYyA9IDA7Ci0gICAgaWYgKCFjb21tb25BbmNlc3RvckNvbnRhaW5lcigpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBOb2RlKiBwYXN0TGFzdCA9IHBhc3RMYXN0Tm9kZSgpOwotICAgIGZv
ciAoTm9kZSogbiA9IGZpcnN0Tm9kZSgpOyBuICE9IHBhc3RMYXN0OyBuID0gTm9kZVRyYXZlcnNh
bDo6bmV4dCgqbikpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkpIHsKLSAgICAg
ICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGNvbnRhaW5lZEJ5UmVhZE9ubHkoKSkg
ewotICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLX0KLQotYm9vbCBSYW5nZTo6Y29udGFpbmVkQnlSZWFkT25seSgpIGNvbnN0
Ci17Ci0gICAgZm9yIChOb2RlKiBuID0gJnN0YXJ0Q29udGFpbmVyKCk7IG47IG4gPSBuLT5wYXJl
bnROb2RlKCkpIHsKLSAgICAgICAgaWYgKG4tPmlzUmVhZE9ubHlOb2RlKCkpCi0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgZm9yIChOb2RlKiBuID0gJmVuZENvbnRhaW5lcigp
OyBuOyBuID0gbi0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgIGlmIChuLT5pc1JlYWRPbmx5Tm9k
ZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsK
LX0KLQogTm9kZSogUmFuZ2U6OmZpcnN0Tm9kZSgpIGNvbnN0CiB7CiAgICAgaWYgKHN0YXJ0Q29u
dGFpbmVyKCkub2Zmc2V0SW5DaGFyYWN0ZXJzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCmluZGV4IDI0YTFlMjZk
MmNiMTFmYTRlODE3ZGU5ZDBlY2U0NDI1NjA3NWZhMDEuLjc3NzMzZjZjMmI3NTRhOTEwYzJkMDNj
MTI3NDFlM2Y5M2I5MzI3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC0xNjEsMTAgKzE2MSw4IEBAIHBy
aXZhdGU6CiAKICAgICBOb2RlKiBjaGVja05vZGVXT2Zmc2V0KE5vZGUqLCBpbnQgb2Zmc2V0LCBF
eGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCBjaGVja05vZGVCQShOb2RlKiwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OwotICAgIGJvb2wgY29udGFpbmVkQnlSZWFkT25seSgpIGNvbnN0Owog
CiAgICAgZW51bSBBY3Rpb25UeXBlIHsgRGVsZXRlLCBFeHRyYWN0LCBDbG9uZSB9OwotICAgIHZv
aWQgY2hlY2tEZWxldGVFeHRyYWN0KEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gcHJvY2Vzc0NvbnRlbnRzKEFjdGlvblR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICBzdGF0aWMgUmVmUHRyPE5vZGU+IHByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFj
dGlvblR5cGUsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIE5vZGUqLCB1bnNpZ25lZCBz
dGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgc3Rh
dGljIHZvaWQgcHJvY2Vzc05vZGVzKEFjdGlvblR5cGUsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+Jiwg
UGFzc1JlZlB0cjxOb2RlPiBvbGRDb250YWluZXIsIFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q29udGFp
bmVyLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggMDRj
ZWY1Y2ExZDE0ODM3YjI3YWY3Zjc0MjlkNjdkMmZjYjcwZjM4Ni4uNDU1NDdmZWIyNGUyYmJjNTEy
YzUyNGRmM2UzNjI3ZWQyZWVmMDc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAt
MTA5LDcgKzEwOSw2IEBAIGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlw
ZSB0eXBlKSBjb25zdAogICAgIGNhc2UgQ09NTUVOVF9OT0RFOgogICAgIGNhc2UgVEVYVF9OT0RF
OgogICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgIGNhc2UgRU5USVRZX1JFRkVSRU5D
RV9OT0RFOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCmluZGV4IDc0YTkyOGY3Y2MwMjliNmYz
M2NmZGNlNTFhMWYyYTNhMzFmZWRiNTIuLjNjNGE5NTViMTExMDZjZGEyMjI4NWE5ZjUyNzE3MDdi
MWQ5Yzc3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCkBAIC0zMCwxOCArMzAsMTUgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Ob2RlSXRlcmF0b3JCYXNlOjpOb2RlSXRlcmF0b3JC
YXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywg
UmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZpbHRlciwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzKQorTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+
IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYm
IG5vZGVGaWx0ZXIpCiAgICAgOiBtX3Jvb3Qocm9vdE5vZGUpCiAgICAgLCBtX3doYXRUb1Nob3co
d2hhdFRvU2hvdykKICAgICAsIG1fZmlsdGVyKFdURjo6bW92ZShub2RlRmlsdGVyKSkKLSAgICAs
IG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlcyhleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQogewogfQog
CiBzaG9ydCBOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7
Ci0gICAgLy8gRklYTUU6IFRvIGhhbmRsZSBYTUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBj
aGVjayBtX2V4cGFuZEVudGl0eVJlZmVyZW5jZXMuCi0KICAgICAvLyBUaGUgYml0IHR3aWRkbGlu
ZyBoZXJlIGlzIGRvbmUgdG8gbWFwIERPTSBub2RlIHR5cGVzLCB3aGljaCBhcmUgZ2l2ZW4gYXMg
aW50ZWdlcnMgZnJvbQogICAgIC8vIDEgdGhyb3VnaCAxNCwgdG8gd2hhdFRvU2hvdyBiaXQgbWFz
a3MuCiAgICAgaWYgKCEoKCgxIDw8IChub2RlLT5ub2RlVHlwZSgpIC0gMSkpICYgbV93aGF0VG9T
aG93KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgKaW5kZXggZWQ2ZThkZGJkMGMyNjYxNWUzMzdhMmU0
MmM5YjlkOTM1OGY4ZmRkYS4uZmZiZDU0OWIxZGU4NDg2MDQzZWU0ZDBiNDIwYTdkZGNhNzQ4ZmE3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaApAQCAtMzgsMTcgKzM4LDE2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgTm9kZSogcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdC5nZXQo
KTsgfQogICAgICAgICB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3coKSBjb25zdCB7IHJldHVybiBt
X3doYXRUb1Nob3c7IH0KICAgICAgICAgTm9kZUZpbHRlciogZmlsdGVyKCkgY29uc3QgeyByZXR1
cm4gbV9maWx0ZXIuZ2V0KCk7IH0KLSAgICAgICAgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KCkgY29uc3QgeyByZXR1cm4gbV9leHBhbmRFbnRpdHlSZWZlcmVuY2VzOyB9CisgICAgICAgIGJv
b2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICBwcm90ZWN0ZWQ6Ci0gICAgICAgIE5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiwg
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZpbHRlcj4mJiwgYm9vbCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKTsKKyAgICAgICAgTm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRy
PE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsK
ICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290OwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fd2hh
dFRvU2hvdzsKICAgICAgICAgUmVmUHRyPE5vZGVGaWx0ZXI+IG1fZmlsdGVyOwotICAgICAgICBi
b29sIG1fZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKaW5kZXggYWQwYWNlMTk5YjdkYTY5ZWVj
YjIwNDNhMjhjOWVmNDRmYzA2M2Q0Ni4uODc3NDgyYWZmNDdhM2M1NDM0YWY3NTMyZTZkYzA1M2Qx
NTEzY2QxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcApAQCAtMzMsOCArMzMsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRyZWVXYWxrZXI6OlRyZWVXYWxrZXIoUGFzc1JlZlB0
cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQdHI8Tm9kZUZp
bHRlcj4mJiBmaWx0ZXIsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKLSAgICA6IE5vZGVJ
dGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3csIFdURjo6bW92ZShmaWx0ZXIpLCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKQorVHJlZVdhbGtlcjo6VHJlZVdhbGtlcihQYXNzUmVmUHRyPE5v
ZGU+IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVy
PiYmIGZpbHRlcikKKyAgICA6IE5vZGVJdGVyYXRvckJhc2Uocm9vdE5vZGUsIHdoYXRUb1Nob3cs
IFdURjo6bW92ZShmaWx0ZXIpKQogICAgICwgbV9jdXJyZW50KHJvb3QoKSkKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVdhbGtlci5oCmluZGV4IGJmNjliZGVjZTA5OWJjZDE0ZGJhZmQ1OGYwMTdjZmJkODdi
NTE1NjMuLjIyOGYyM2Q0NzQ2YTIxNTliYjUwYmY2YWE2Mjc4OGI3MzM2NGZiOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVXYWxrZXIuaApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICBjbGFzcyBUcmVlV2Fsa2VyIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJl
ZkNvdW50ZWQ8VHJlZVdhbGtlcj4sIHB1YmxpYyBOb2RlSXRlcmF0b3JCYXNlIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8VHJlZVdhbGtlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9k
ZT4gcm9vdE5vZGUsIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+
JiYgZmlsdGVyLCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCisgICAgICAgIHN0YXRpYyBS
ZWY8VHJlZVdhbGtlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgZmlsdGVyKQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUcmVlV2Fsa2VyKHJvb3ROb2RlLCB3
aGF0VG9TaG93LCBXVEY6Om1vdmUoZmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOwor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHJlZVdhbGtlcihyb290Tm9kZSwgd2hh
dFRvU2hvdywgV1RGOjptb3ZlKGZpbHRlcikpKTsKICAgICAgICAgfSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKIAogICAgICAgICBOb2RlKiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY3VycmVudC5nZXQoKTsgfQpAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIE5vZGUqIG5leHROb2RlKCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBUcmVl
V2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUmVmUHRy
PE5vZGVGaWx0ZXI+JiYsIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CisgICAgICAgIFRy
ZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBSZWZQ
dHI8Tm9kZUZpbHRlcj4mJik7CiAgICAgICAgIAogICAgICAgICBOb2RlKiBzZXRDdXJyZW50KFBh
c3NSZWZQdHI8Tm9kZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdh
bGtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKaW5kZXggNDgwOWVl
M2Q0ZjFkMWZkNDA4NWUxYTExOTczYThkZjQwMjBlNDcxNS4uYWQ1Y2I1ZDY0MDMxMGY4YzAzODk2
MWY1MTMyZDViZGRkMjM2NmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVX
YWxrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbApAQCAtMjYs
NyArMjYsOSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJvb3Q7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdzsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
ZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAgICAgIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JK
RUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKKyNlbmRpZgogICAgIFtTZXR0ZXJSYWlz
ZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2RlIGN1cnJlbnROb2RlOwogCiAgICAgTm9kZSBwYXJl
bnROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3Vt
dWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3Bw
CmluZGV4IDgzNDU1NzIwNDk2YTBkMTBkZDA2ZmMwZWE0ZWViZjQzOGNiNGVjMjYuLjcxMmFiZmFm
OGNlY2NjOGYyNzc2ZWE1MDU4NmRjM2EwMTBhY2Y1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC01NzMsNyArNTczLDYgQEAgdm9pZCBNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXAoU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBj
b25zdCBOb2RlJiBub2QKICAgICAgICAgYXBwZW5kQ0RBVEFTZWN0aW9uKHJlc3VsdCwgZG93bmNh
c3Q8Q0RBVEFTZWN0aW9uPihub2RlKS5kYXRhKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9O
T0RFOgogICAgIGNhc2UgTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREU6CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aFV0aWwuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5jcHAK
aW5kZXggNmY2NjRkODQwMWZmNzE3MDUyNjg2MDNlMDQxZWJmNzdiNThmM2M0NC4uYmVhZGI0ZGYy
MGZlOGU0NDBhMjUzNGMyMTk0Y2M4ODdhNjQ3NjY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoVXRpbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVXRpbC5j
cHAKQEAgLTcxLDcgKzcxLDYgQEAgYm9vbCBpc1ZhbGlkQ29udGV4dE5vZGUoTm9kZSogbm9kZSkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZS
QUdNRU5UX05PREU6CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgotICAg
ICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CiAgICAgICAgICAgICByZXR1
cm4gIShub2RlLT5wYXJlbnROb2RlKCkgJiYgbm9kZS0+cGFyZW50Tm9kZSgpLT5pc0F0dHJpYnV0
ZU5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0KaW5kZXggZTVjNmYw
MmZjOGRjODExMDg4ODNlYWI3NTAyYzUyMzg4OGZlN2VlMy4uZDU3ZGZjZDNlYmEwZDI3NTQ2OTUx
ZmVmNGU0ODA0ZGJhMjI3ZTg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5t
bQpAQCAtNzYsNyArNzYsNiBAQCBzdGF0aWMgQ2xhc3MgV0tET01Ob2RlQ2xhc3MoV2ViQ29yZTo6
Tm9kZSogaW1wbCkKICAgICAgICAgcmV0dXJuIFtXS0RPTVRleHQgY2xhc3NdOwogICAgIGNhc2Ug
V2ViQ29yZTo6Tm9kZTo6QVRUUklCVVRFX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpD
REFUQV9TRUNUSU9OX05PREU6Ci0gICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpFTlRJVFlfUkVGRVJF
TkNFX05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9O
X05PREU6CiAgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDT01NRU5UX05PREU6CiAgICAgY2FzZSBX
ZWJDb3JlOjpOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggODcxMDVhOGI2Y2Y2
ZGE5OTkwMWMxMWQ3YWJhMDRhZmVkMmVmODNkMS4uODYzYTg1NGU5NmU0ZmIyNWM0ZjQwOGE0NTZm
MjFjZmI4OTllNGIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjMyNCwxMSArMjMyNCwxMSBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgaXNBc3Npc3RhYmxlRWxlbWVudChFbGVtZW50JiBub2RlKQogICAgIGlmIChpczxI
VE1MU2VsZWN0RWxlbWVudD4obm9kZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChp
czxIVE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKSkKLSAgICAgICAgcmV0dXJuICFkb3duY2FzdDxI
VE1MVGV4dEFyZWFFbGVtZW50Pihub2RlKS5pc1JlYWRPbmx5Tm9kZSgpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkpIHsKICAgICAgICAg
SFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVu
dD4obm9kZSk7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGxhdW5kcnkgbGlzdCBvZiB0eXBlcyBp
cyBub3QgYSBnb29kIHdheSB0byBmYWN0b3IgdGhpcy4gTmVlZCBhIHN1aXRhYmxlIGZ1bmN0aW9u
IG9uIEhUTUxJbnB1dEVsZW1lbnQgaXRzZWxmLgotICAgICAgICByZXR1cm4gIWlucHV0RWxlbWVu
dC5pc1JlYWRPbmx5Tm9kZSgpICYmIChpbnB1dEVsZW1lbnQuaXNUZXh0RmllbGQoKSB8fCBpbnB1
dEVsZW1lbnQuaXNEYXRlRmllbGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNEYXRlVGltZUxvY2FsRmll
bGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNNb250aEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzVGlt
ZUZpZWxkKCkpOworICAgICAgICByZXR1cm4gaW5wdXRFbGVtZW50LmlzVGV4dEZpZWxkKCkgfHwg
aW5wdXRFbGVtZW50LmlzRGF0ZUZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzRGF0ZVRpbWVMb2Nh
bEZpZWxkKCkgfHwgaW5wdXRFbGVtZW50LmlzTW9udGhGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5p
c1RpbWVGaWVsZCgpOwogICAgIH0KICAgICByZXR1cm4gbm9kZS5pc0NvbnRlbnRFZGl0YWJsZSgp
OwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGEzYzNjZjJmZTMxOTczMzlkZDJmZTdmNDE2MDI1NDg3NzRiZTA3NzUuLjhl
YTIxZjhkM2UyYWU0NmE3NTM3YWViODZjNThhNzQ0MzVhMTQ0NjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwx
NCBAQAogMjAxNS0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAg
ICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5IEVudGl0eVJlZmVyZW5jZSBET00gTm9kZSB0eXBl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkzNDgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHNl
dmVyYWwgb3V0ZGF0ZWQgRE9NIGNvbXBsaWFuY2UgdGVzdHMuIFVwZGF0ZSAvIFJlYmFzZWxpbmUg
b3RoZXJzLgorCisyMDE1LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
ICAgICAgICAgW0pTIEJpbmRpbmdzXSBwcm90b3R5cGUuY29uc3RydWN0b3Igc2hvdWxkIGJlIHdy
aXRhYmxlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDk0MTIKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTQ1MDk2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggODkxMTZkMGIzNmZkMjQ1NTYxOTM1NjdlNjZmN2JlNTRhNTkwYmZl
MC4uZjVkZmFlN2Y1NzdlN2VhM2VmODAyOTk2NWJmOTk2YzM3NDA5Njg2YyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTUtMDktMjEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2Fj
eSBFbnRpdHlSZWZlcmVuY2UgRE9NIE5vZGUgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXM0MgRE9NIHRlc3Qgbm93IHRoYXQg
bW9yZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0OgorCisyMDE1LTA5LTIxICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgW0pTIEJpbmRpbmdzXSBwcm90b3R5cGUuY29u
c3RydWN0b3Igc2hvdWxkIGJlIHdyaXRhYmxlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk0MTIKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTQ1
MDk2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1l
bnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEyYThlNDY2MTI0YjE4ZmY0YzViNjQ3ZWFiZmE3NzAxNTQ0ZDgxZDcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL2h0
bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50
cmVmLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdDoJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYKLVN0YXR1czoJU3VjY2VzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9kb20vaHRt
bC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRy
ZWYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2I1OWFjMzY2OWEwY2Q2NzZi
NDZlNGQ5ZmNiNzRmYjYxNmIxODNhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGlu
dmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0
LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4K
LTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgi
Pjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVh
dGVlbnRyZWYuanMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8
L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFy
dGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBu
dW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRh
cnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5
ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9h
Y3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkg
T2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxz
dXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1Njwv
YWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2Jl
cnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAg
PHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9w
PgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBi
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2U3ZTEyNzg0MWVmOTg2ZDYxNjg2OWEyMjQxNDgxNjFhMzkxNzAwMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZl
bDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAw
MS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0
dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5m
b3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMg
UmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0
d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmln
aHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0
aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBv
ZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAi
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9kb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiOwotICAgfQotCi12YXIgZG9j
c0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlz
IGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAg
ICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29u
ZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBs
b2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBz
ZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAg
ICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlv
biBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkg
ewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkg
dGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVk
QnVpbGRlcigpOwotICAgICAgIGNoZWNrRmVhdHVyZSgiWE1MIiwgbnVsbCk7Ci0KLSAgICAgIGRv
Y3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7
Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAg
fSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgp
OwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0K
LS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8v
ICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0v
LyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQs
Ci0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8v
ICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21w
bGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotICAgIFRoZSAiY3Jl
YXRlRW50aXR5UmVmZXJlbmNlKHRhZ05hbWUpIiBtZXRob2QgcmFpc2VzIGFuCi0gICBJTlZBTElE
X0NIQVJBQ1RFUl9FUlIgRE9NRXhjZXB0aW9uIGlmIHRoZSBzcGVjaWZpZWQKLSAgIHRhZ05hbWUg
Y29udGFpbnMgYW4gaW52YWxpZCBjaGFyYWN0ZXIuIAotCi0qIEBhdXRob3IgTklTVAotKiBAYXV0
aG9yIE1hcnkgQnJhZHkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAwQUYn
KS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25lLWNv
cmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00t
TGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1QUUn
KS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0cmlu
Zy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRwOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5Ci0qLwotZnVuY3Rpb24g
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmIikgIT0gbnVsbCkgcmV0dXJuOwot
ICAgIHZhciBkb2M7Ci0gICAgICB2YXIgYmFkRW50aXR5UmVmOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVy
LmNvbnRlbnRUeXBlID09ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJmb28iKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3Vj
Y2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsK
LQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUiIsc3VjY2Vzcyk7Ci0J
fQotCi0JfQotCQotCQllbHNlIHsKLQkJCQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgYmFkRW50aXR5UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgi
aW52YWxpZF5OYW1lIik7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3Mg
PSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNSk7Ci0JCX0K
LQkJYXNzZXJ0VHJ1ZSgidGhyb3dfSU5WQUxJRF9DSEFSQUNURVJfRVJSIixzdWNjZXNzKTsKLQl9
Ci0KLQkJfQotCQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRp
bnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmKCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJl
eGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1s
L2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWFlYmU0MDQ0
NzhkOGIwMjViNTFjNmFlM2MzNjY1ZDVhMzcwMzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2Rv
Y3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4
Y2VwdGlvbmNyZWF0ZWVudHJlZjEKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmMS5odG1sIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUv
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjZkMDljZGFiYzIwYzE3MjY1YWFmMjU5NzZlMzMy
NDlmNWQxYjk0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3Rl
cmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0g
ICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBp
cyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwu
anMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpz
Ij48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAg
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xk
c1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFt
cDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgot
ICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBK
b25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+
MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0
cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9z
dHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAw
PC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5v
cmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9kb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzIGIvTGF5b3V0VGVz
dHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmMS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjRkMWVjOTc1
MzI5YjE3ZDcyM2NlM2MwZTk3OWU1ZDVmOTBmNDBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9k
b2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTQwICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBX
b3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBU
ZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNz
IGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVk
LiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGlj
ZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsx
XSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3
YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVu
dGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAot
ICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlk
Y2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkg
cmVmZXJlbmNlIHdpdGggYW4gZW1wdHkgbmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFS
QUNURVJfRVJSLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9p
bnRlcihpZCgnSUQtMjU4QTAwQUYnKS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJf
RVJSJ10pCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEt
MTk5ODEwMDEvbGV2ZWwtb25lLWNvcmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9p
bnRlcihpZCgnSUQtMzkyQjc1QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRp
b24nXS9kZXNjci9wW3N1YnN0cmluZy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9F
UlInXSkKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/
aWQ9NTI1Ci0qLwotZnVuY3Rpb24gZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3Jl
YXRlZW50cmVmMSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgImRvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJl
ZjEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlS
ZWY7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0
aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0g
ICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgCi0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkp
IHsKLQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVu
dGl0eVJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0J
CWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZp
bmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQ
T1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlz
dWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCIiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAg
ICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9
PSA1KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1
Y2Nlc3MpOwotCX0KLQotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFs
dWUyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0
dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
MTA4MmNiZWFlNGY2ZDg4ZGZkMDY0ZWRiNGMyZDlhYWI5NjE1YzNkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVs
MS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MiArMCwwIEBACi1UZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sIGIv
TGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmI3YmI4YzgxMDljZjU5M2RmZWY4NWJjOWNk
MzRhZTRjYjI4OGQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAi
LS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0
bWw0L3N0cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0
bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNl
dD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJoY19hdHRyZ2V0dmFsdWUyLmpz
Ij48L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cD4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAg
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xk
c1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFt
cDtlbnQyOwotVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmYW1wO3RhYjs8L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgot
ICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBK
b25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+
MTAwLDAwMDwvc3VwPgotICA8dmFyPiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9Ik5vIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0
cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WSZhbHBoYTsiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9z
dHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAw
PC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5v
cmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19h
dHRyZ2V0dmFsdWUyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0
cmdldHZhbHVlMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjYzJhZTM1ZTI3
YjQ5NDQ4ZDA3ZDYxNjRiNDliMGE5ODMwY2NmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19h
dHRyZ2V0dmFsdWUyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEw
MDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMg
Y2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0
aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4
Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3Rh
cnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0
ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVu
IGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgp
IHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0g
ICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRp
b24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0g
ICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0
dHJpYnV0ZSB0aGF0IGNvbnRhaW5zIGVudGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3Vy
dCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwt
MS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19h
dHRyZ2V0dmFsdWUyKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXph
dGlvbihidWlsZGVyLCAiaGNfYXR0cmdldHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2
YXIgZG9jOwotICAgICAgdmFyIGFjcm9ueW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAg
ICAgdmFyIGF0dHJpYnV0ZXM7Ci0gICAgICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVl
OwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJz
dENoaWxkOwotICAgICAgdmFyIGFscGhhUmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJhY3JvbnltIik7Ci0gICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0o
Myk7Ci0gICAgICBhdHRyaWJ1dGVzID0gdGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0
bGVBdHRyID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigK
LQkKLQkoYnVpbGRlci5jb250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2Mu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixz
dWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5m
aXJzdENoaWxkOwotCi0gICAgICByZXR2YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhh
UmVmLGZpcnN0Q2hpbGQpOwotICAgICAgdmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAg
IGFzc2VydEVxdWFscygiYXR0clZhbHVlMSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0K
LQkKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIo
KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25v
ZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3Jl
L2hjX25vZGV2YWx1ZTAzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzcwYzdjM2RiMWRmZTc4ZDg3YTUxYzRiYWQxMTZkMjk4MzhmMWMwZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9s
ZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyICswLDAgQEAKLVRlc3Q6CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMKLVN0YXR1czoJU3VjY2VzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbCBiL0xh
eW91dFRlc3RzL2RvbS9odG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4MDQ2ZjEyZmI4OGIyZWI5Y2U2NmY5NjBmMmIyYmQx
OWE0NzdhOWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzND
Ly9EVEQgSFRNTCA0LjAxLy9FTiIgCi0gICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0
cmljdC5kdGQiID4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWw+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0ic2VsZmh0bWwuanMiPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0iVVRG
LTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJoY19ub2RldmFsdWUwMy5qcyI+PC9zY3Jp
cHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxl
dGUoKSI+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0
aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3Vw
PjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
Ij4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlz
IGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsK
LVRoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0
YWIgJmFtcDt0YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cD4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0
cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8
L3N1cD4KLSAgPHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJObyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
PgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0g
IDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cD4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgot
ICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgot
ICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL2h0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVl
MDMuanMgYi9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTYxNjcxYWE0YjM4YTY1YTFjZWQ0Zjk1
OWE4YjE0NjM1ZjMxMjU4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2hjX25v
ZGV2YWx1ZTAzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWls
ZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRl
c3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgot
Ly8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNo
cm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNl
LCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0
aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJv
ZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdl
U3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVz
IHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAg
ICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1BbiBlbnRpdHkgcmVmZXJlbmNl
IGlzIGNyZWF0ZWQsIHNldE5vZGVWYWx1ZSBpcyBjYWxsZWQgd2l0aCBhIG5vbi1udWxsIGFyZ3Vt
ZW50LCBidXQgZ2V0Tm9kZVZhbHVlCi1zaG91bGQgc3RpbGwgcmV0dXJuIG51bGwuCi0KLSogQGF1
dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURP
TS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELUY2OEQwODAKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC0xMUM5ODQ5MAotKi8KLWZ1bmN0aW9uIGhjX25vZGV2YWx1ZTAzKCkgewotICAgdmFy
IHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiaGNfbm9kZXZh
bHVlMDMiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdOb2Rl
OwotICAgICAgdmFyIG5ld1ZhbHVlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsK
LSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRv
Y1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2Mi
LCAiaGNfc3RhZmYiKTsKLSAgICAgIAotCWlmKAotCQotCShidWlsZGVyLmNvbnRlbnRUeXBlID09
ICJ0ZXh0L2h0bWwiKQotCi0JKSB7Ci0JCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRyeSB7
Ci0gICAgICAgICAgICBuZXdOb2RlID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2Ug
ewotCQkJbmV3Tm9kZSA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVudDEiKTsKLSAgICAg
IGFzc2VydE5vdE51bGwoImNyZWF0ZWRFbnRSZWZOb3ROdWxsIixuZXdOb2RlKTsKLW5ld1ZhbHVl
ID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydE51bGwoImluaXRpYWxseU51bGwi
LG5ld1ZhbHVlKTsKLSAgICBuZXdOb2RlLm5vZGVWYWx1ZSA9ICJUaGlzIHNob3VsZCBoYXZlIG5v
IGVmZmVjdCI7Ci0KLSAgICAgIG5ld1ZhbHVlID0gbmV3Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAg
IGFzc2VydE51bGwoIm51bGxBZnRlckF0dGVtcHRlZENoYW5nZSIsbmV3VmFsdWUpOwotICAgIAot
CQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBoY19ub2RldmFsdWUw
MygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBh
dGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9U
X1NVUFBPUlRFRF9FUlItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMzhjZWMwYTg5ZDRhNWZhY2U2YjNjYjI0MDM2OTg3ZDc5OGI2Zjg3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2
ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQYXRoRXZhbHVhdG9yX2V2YWx1
YXRlX05PVF9TVVBQT1JURURfRVJSOiBTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVE
X0VSUi5qcyBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9y
X2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2YmUwMThjOGE2NjMwNTQ5Njc4M2QxYjc1YWMwZTc0YmYyMjM3ZGZmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS9zdmcv
bGV2ZWwzL3hwYXRoL1hQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLS8vIGV4cG9zZSB0ZXN0IGZ1bmN0aW9uIG5h
bWVzCi1mdW5jdGlvbiBleHBvc2VUZXN0RnVuY3Rpb25OYW1lcygpCi17Ci1yZXR1cm4gWydYUGF0
aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUiddOwotfQotCi12YXIgZG9jc0xv
YWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAg
IHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmln
dXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2Fk
aW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQg
dG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICBy
YWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBz
ZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewot
ICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhy
b3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVp
bGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0g
cHJlbG9hZChkb2NSZWYsICJkb2MiLCAic3RhZmZOUyIpOwotICAgICAgICAKLSAgICAgICBpZiAo
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRl
JzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9u
RXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUg
Y29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4g
c2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3Vt
ZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdo
aWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4K
LWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoq
Ci0qICAgICAgIAotICAgICAgVGVzdCBpZiBYUGF0aEV2YWx1YXRvci5ldmFsdWF0ZSBwcm9wZXJs
eSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAgIAotKiBAYXV0aG9yIFBoaWxpcHBlIExl
IEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAzMDMzMS94cGF0aCNYUGF0aEV2YWx1YXRv
ci1ldmFsdWF0ZQotKi8KLWZ1bmN0aW9uIFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQ
T1JURURfRVJSKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlv
bihidWlsZGVyLCAiWFBhdGhFdmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIiKSAh
PSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB4cEV2YWx1YXRvcjsKLSAg
ICAgIHZhciByZXN1bHQ7Ci0gICAgICB2YXIgbnVsbE5TUmVzb2x2ZXIgPSBudWxsOwotCi0gICAg
ICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAgICAgIHZhciBjb250ZXh0Tm9kZTsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgInN0YWZmTlMiKTsKLSAgICAgIHhwRXZhbHVh
dG9yID0gY3JlYXRlWFBhdGhFdmFsdWF0b3IoZG9jKTsKLWNvbnRleHROb2RlID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiZW50aXR5bmFtZSIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZXN1bHQgPSB4cEV2YWx1YXRvci5ldmFsdWF0
ZSgiLy9mb286YmFyIixjb250ZXh0Tm9kZSxudWxsTlNSZXNvbHZlciwwLG51bGxSZXN1bHQpOwot
ICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2Rl
KSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRo
cm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgIFhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURf
RVJSKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20vc3ZnL2xldmVsMy94cGF0aC9Y
UGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi5zdmcgYi9MYXlvdXRUZXN0
cy9kb20vc3ZnL2xldmVsMy94cGF0aC9YUGF0aEV2YWx1YXRvcl9ldmFsdWF0ZV9OT1RfU1VQUE9S
VEVEX0VSUi5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YjhiZGMxYzZkNDA5
NTk2ZTJhZTQ4NDIwZDdiZTdjZTkxODJlOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhF
dmFsdWF0b3JfZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIuc3ZnCisrKyAvZGV2L251bGwKQEAg
LTEsNCArMCwwIEBACi08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1s
bnM6bmlzdD0iaHR0cDovL3d3dy5uaXN0LmdvdiI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEw
MCIgaGVpZ2h0PSIxMDAiLz4NCi08c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIiBzcmM9IlhQYXRoRXZhbHVhdG9yX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpz
Ii8+DQotPHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3JjPSJz
dmd1bml0LmpzIi8+DQotPC9zdmc+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9s
ZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVz
c2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDEwYTdkY2M2YTY0MGY3ZjZmMDZjY2JmNGJlMDcwNjA1MjU1OTQ3
ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9T
VVBQT1JURURfRVJSLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVhQ
YXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VSUjogU3VjY2VzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2
YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMv
eHBhdGgvWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2Y2MTQ2NjEwOTNjY2ZjYzUxNzhiODY0YTZhMmMw
YjI5ZGY4Njk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0
ZV9OT1RfU1VQUE9SVEVEX0VSUi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0vLyBl
eHBvc2UgdGVzdCBmdW5jdGlvbiBuYW1lcwotZnVuY3Rpb24gZXhwb3NlVGVzdEZ1bmN0aW9uTmFt
ZXMoKQotewotcmV0dXJuIFsnWFBhdGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURf
RVJSJ107Ci19Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51
bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZy
YW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAg
IElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwot
Ly8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0
YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBp
bW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRo
ZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9
ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRv
Y3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRl
ciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7
Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRV
cFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0g
ICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBt
ZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNo
cm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBz
eW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBh
Z2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRo
ZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlm
ICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogICAgICAgCi0gICAgICBUZXN0IGlmIFhQYXRoRXhw
cmVzc2lvbi5ldmFsdWF0ZSBwcm9wZXJseSB0aHJvd3MgTk9UX1NVUFBPUlRFRF9FUlJPUgotICAg
IAotKiBAYXV0aG9yIFBoaWxpcHBlIExlIEjDqWdhcmV0Ci0qIEBhdXRob3IgQm9iIENsYXJ5Ci0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9DUi1ET00tTGV2ZWwtMy1YUGF0aC0yMDAz
MDMzMS94cGF0aCNYUGF0aEV4cHJlc3Npb24tZXZhbHVhdGUKLSovCi1mdW5jdGlvbiBYUGF0aEV4
cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIoKSB7Ci0gICB2YXIgc3VjY2VzczsK
LSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJYUGF0aEV4cHJlc3Npb25fZXZh
bHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsK
LSAgICAgIHZhciB4cEV2YWx1YXRvcjsKLSAgICAgIHZhciByZXN1bHQ7Ci0gICAgICB2YXIgbnVs
bE5TUmVzb2x2ZXIgPSBudWxsOwotCi0gICAgICB2YXIgbnVsbFJlc3VsdCA9IG51bGw7Ci0KLSAg
ICAgIHZhciBjb250ZXh0Tm9kZTsKLSAgICAgIHZhciB4cGF0aEV4cHJlc3Npb247Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJzdGFmZk5TIik7Ci0gICAgICB4cEV2YWx1YXRv
ciA9IGNyZWF0ZVhQYXRoRXZhbHVhdG9yKGRvYyk7Ci14cGF0aEV4cHJlc3Npb24gPSB4cEV2YWx1
YXRvci5jcmVhdGVFeHByZXNzaW9uKCIvL2ZvbyIsbnVsbE5TUmVzb2x2ZXIpOwotICAgICAgY29u
dGV4dE5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnRpdHluYW1lIik7Ci0gICAg
ICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9
IHhwYXRoRXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0Tm9kZSwwLG51bGxSZXN1bHQpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgIFhQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9SVEVEX0VS
UigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBh
dGhFeHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2ZyBiL0xheW91dFRlc3Rz
L2RvbS9zdmcvbGV2ZWwzL3hwYXRoL1hQYXRoRXhwcmVzc2lvbl9ldmFsdWF0ZV9OT1RfU1VQUE9S
VEVEX0VSUi5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmODZkNzUwYTM5ZGFh
ZjQ2Y2IwNGQ5ZjEzYTI3MGNmMjU1Y2NjZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3N2Zy9sZXZlbDMveHBhdGgvWFBhdGhF
eHByZXNzaW9uX2V2YWx1YXRlX05PVF9TVVBQT1JURURfRVJSLnN2ZworKysgL2Rldi9udWxsCkBA
IC0xLDQgKzAsMCBAQAotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHht
bG5zOm5pc3Q9Imh0dHA6Ly93d3cubmlzdC5nb3YiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIx
MDAiIGhlaWdodD0iMTAwIi8+DQotPHNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCIgc3JjPSJYUGF0aEV4cHJlc3Npb25fZXZhbHVhdGVfTk9UX1NVUFBPUlRFRF9FUlIu
anMiLz4NCi08c2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzcmM9
InN2Z3VuaXQuanMiLz4NCi08L3N2Zz4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50
cmVmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1
bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmQ2ZDE3NzBhMTI3ODk5YTIyYWFjZjM2ZmNm
OTg2MTI2MDc3M2FmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVm
Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
MS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNlN2UxMjc4NDFlZjk4NmQ2MTY4NjlhMjI0MTQ4MTYxYTM5MTcwMDIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZi5q
cworKysgL2Rldi9udWxsCkBAIC0xLDE0MyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZiI7Ci0gICB9Ci0KLXZhciBk
b2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8v
ICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBj
b25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50
IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlz
IHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAg
ICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0
aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRy
eSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1h
eSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3Vy
ZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAg
ZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAg
aWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0g
dGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAi
ZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAg
ICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBl
eCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAot
Ly8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8K
LS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRl
ZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQot
Ly8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0gICAgVGhlICJj
cmVhdGVFbnRpdHlSZWZlcmVuY2UodGFnTmFtZSkiIG1ldGhvZCByYWlzZXMgYW4KLSAgIElOVkFM
SURfQ0hBUkFDVEVSX0VSUiBET01FeGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZAotICAgdGFnTmFt
ZSBjb250YWlucyBhbiBpbnZhbGlkIGNoYXJhY3Rlci4gCi0KLSogQGF1dGhvciBOSVNUCi0qIEBh
dXRob3IgTWFyeSBCcmFkeQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURP
TS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0yNThBMDBB
RicpL2NvbnN0YW50W0BuYW1lPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUt
Y29yZSNJRC0zOTJCNzVBRQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLURP
TS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI3hwb2ludGVyKGlkKCdJRC0zOTJCNzVB
RScpL3JhaXNlcy9leGNlcHRpb25bQG5hbWU9J0RPTUV4Y2VwdGlvbiddL2Rlc2NyL3Bbc3Vic3Ry
aW5nLWJlZm9yZSguLCc6Jyk9J0lOVkFMSURfQ0hBUkFDVEVSX0VSUiddKQotKiBAc2VlIGh0dHA6
Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yNDkKLSovCi1mdW5jdGlv
biBkb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKSB7Ci0gICB2
YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJkb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYiKSAhPSBudWxsKSByZXR1cm47
Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAgIHZh
ciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5l
ZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1aWxk
ZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nlc3Mg
PSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVhdGVF
bnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBz
dWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkp
OwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsK
LQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJpbnZhbGlkXk5hbWUiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2Vz
cyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJ
fQotCQlhc3NlcnRUcnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwot
CX0KLQotCQl9Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVu
dGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYoKTsKLX0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0
ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODEwOTgzMzIxMDRmMTBhOWEwNzNh
ZDAxZTRlNGExM2I4YTFlMzhjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFs
aWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4K
LTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7
Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7
Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5
NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RF
TSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+
Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3Rh
ZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5q
cyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
ZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmLmpzIi8+PHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRU
ZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0g
PHA+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5v
cnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFT
ZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMg
YW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0
YWI7PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4K
LSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAg
PGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAg
PHZhcj4mZGVsdGE7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8g
Qm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+
RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBl
cnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0
aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmlu
ZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0
ZWVudHJlZjEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjNi
Yzk5ODViNWMyYjdmNjAxYTEwZjg0ZTM5ZTY1MzY4MTM0Njg4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEv
Y29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMS9jb3JlL2RvY3VtZW50aW52YWxpZGNoYXJh
Y3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVy
ZXhjZXB0aW9uY3JlYXRlZW50cmVmMS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEv
Y29yZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGQxZWM5NzUzMjliMTdkNzIzY2UzYzBlOTc5
ZTVkNWY5MGY0MGEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9u
Y3JlYXRlZW50cmVmMSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIg
YnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRo
ZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0
ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFz
eW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVy
d2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4
Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRo
ZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVw
UGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3Jl
YXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8K
LSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tG
ZWF0dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAg
ICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3Vu
ZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBk
b2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAg
IAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNo
SW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxv
YWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91
cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVz
IGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRv
IGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0vKioKLSogCi1DcmVhdGluZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpdGggYW4g
ZW1wdHkgbmFtZSBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9DSEFSQUNURVJfRVJSLgotCi0qIEBh
dXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1E
T00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMjU4QTAw
QUYnKS9jb25zdGFudFtAbmFtZT0nSU5WQUxJRF9DSEFSQUNURVJfRVJSJ10pCi0qIEBzZWUgaHR0
cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2ZWwtb25l
LWNvcmUjSUQtMzkyQjc1QUUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1E
T00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZlbC1vbmUtY29yZSN4cG9pbnRlcihpZCgnSUQtMzkyQjc1
QUUnKS9yYWlzZXMvZXhjZXB0aW9uW0BuYW1lPSdET01FeGNlcHRpb24nXS9kZXNjci9wW3N1YnN0
cmluZy1iZWZvcmUoLiwnOicpPSdJTlZBTElEX0NIQVJBQ1RFUl9FUlInXSkKLSogQHNlZSBodHRw
Oi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9NTI1Ci0qLwotZnVuY3Rp
b24gZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0aW9uY3JlYXRlZW50cmVmMSgpIHsKLSAg
IHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEiKSAhPSBudWxsKSByZXR1
cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBiYWRFbnRpdHlSZWY7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Mg
PSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgCi0JaWYoCi0JCi0JKGJ1
aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsKLQkKLQl7Ci0JCXN1Y2Nl
c3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIGJhZEVudGl0eVJlZiA9IGRvYy5jcmVh
dGVFbnRpdHlSZWZlcmVuY2UoImZvbyIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAg
ICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09
IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNz
KTsKLQl9Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0J
CXRyeSB7Ci0gICAgICAgICAgICBiYWRFbnRpdHlSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCIiKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBl
b2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA1KTsKLQkJfQotCQlhc3Nl
cnRUcnVlKCJ0aHJvd19JTlZBTElEX0NIQVJBQ1RFUl9FUlIiLHN1Y2Nlc3MpOwotCX0KLQotCQl9
Ci0JCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBkb2N1bWVudGludmFsaWRj
aGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvZG9jdW1lbnRpbnZhbGlkY2hhcmFjdGVyZXhjZXB0
aW9uY3JlYXRlZW50cmVmMS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29y
ZS9kb2N1bWVudGludmFsaWRjaGFyYWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODNiYWI5ODRhZTdjYTJhZmViY2EwMjRlYzNk
ODBiODdkNDhmZTg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9kb2N1bWVudGludmFsaWRjaGFy
YWN0ZXJleGNlcHRpb25jcmVhdGVlbnRyZWYxLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURP
Q1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
LSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0g
ICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0g
ICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+
Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBV
QkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5v
dGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9ueW0gZGlyIENEQVRBICJsdHIiPgotXT4K
LTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3Vt
ZW50aW52YWxpZGNoYXJhY3RlcmV4Y2VwdGlvbmNyZWF0ZWVudHJlZjEuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cD4K
LSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgot
ICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPiAgICAgICAgICAgCi0gIDxzdXA+NTYsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkc1RoaXMgaXMgYSBDREFUQVNlY3Rp
b24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmFtcDtlbnQyOwotVGhpcyBpcyBhbiBh
ZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmYW1wO3RhYjs8
L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgot
ICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIj4m
YmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29k
ZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFy
PiZkZWx0YTs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1Q
MDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1
dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRl
eGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVl
Mi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMjA5YzNlNDM2
NGVkYzQ1NWQ1NGQ0MTUyMDk0ZTJlNjZhYWQ3NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hj
X2F0dHJnZXR2YWx1ZTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUv
aGNfYXR0cmdldHZhbHVlMgotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJYXR0clZhbHVlMTogYXNz
ZXJ0RXF1YWxzIGZhaWxlZCwgYWN0dWFsIFnOsSwgZXhwZWN0ZWQgzrFZzrEuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfYXR0cmdldHZhbHVlMi5qcyBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGNjMmFlMzVlMjdiNDk0NDhkMDdkNjE2NGI0
OWIwYTk4MzBjY2YxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkg
dGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIg
b2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4g
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfYXR0
cmdldHZhbHVlMiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVp
bGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0
ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4K
LS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5j
aHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lz
ZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2Vw
dGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBi
b2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRl
cyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAg
ICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgY2hlY2tGZWF0
dXJlKCJYTUwiLCBudWxsKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Nz
TG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAot
ICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5p
dGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQg
c3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBs
b2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlz
IGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJl
IGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2Fk
ZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0K
LX0KLQotCi0vKioKLSogCi1DaGVja3MgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB0aGF0IGNv
bnRhaW5zIGVudGl0eSByZWZlcmVuY2VzLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy1ET00tTGV2ZWwtMS0xOTk4MTAwMS9sZXZl
bC1vbmUtY29yZSNJRC0yMjE2NjI0NzQKLSovCi1mdW5jdGlvbiBoY19hdHRyZ2V0dmFsdWUyKCkg
ewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAi
aGNfYXR0cmdldHZhbHVlMiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIGFjcm9ueW1MaXN0OwotICAgICAgdmFyIHRlc3ROb2RlOwotICAgICAgdmFyIGF0dHJpYnV0
ZXM7Ci0gICAgICB2YXIgdGl0bGVBdHRyOwotICAgICAgdmFyIHZhbHVlOwotICAgICAgdmFyIHRl
eHROb2RlOwotICAgICAgdmFyIHJldHZhbDsKLSAgICAgIHZhciBmaXJzdENoaWxkOwotICAgICAg
dmFyIGFscGhhUmVmOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgIGFjcm9ueW1MaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhY3Jv
bnltIik7Ci0gICAgICB0ZXN0Tm9kZSA9IGFjcm9ueW1MaXN0Lml0ZW0oMyk7Ci0gICAgICBhdHRy
aWJ1dGVzID0gdGVzdE5vZGUuYXR0cmlidXRlczsKLQotICAgICAgdGl0bGVBdHRyID0gYXR0cmli
dXRlcy5nZXROYW1lZEl0ZW0oImNsYXNzIik7Ci0gICAgICAKLQlpZigKLQkKLQkoYnVpbGRlci5j
b250ZW50VHlwZSA9PSAidGV4dC9odG1sIikKLQotCSkgewotCQotCXsKLQkJc3VjY2VzcyA9IGZh
bHNlOwotCQl0cnkgewotICAgICAgICAgICAgYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJhbHBoYSIpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNz
ID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9
Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JURURfRVJSIixzdWNjZXNzKTsKLQl9Ci0K
LQl9Ci0JCi0JCWVsc2UgewotCQkJYWxwaGFSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJhbHBoYSIpOwotICAgICAgZmlyc3RDaGlsZCA9IHRpdGxlQXR0ci5maXJzdENoaWxkOwotCi0g
ICAgICByZXR2YWwgPSB0aXRsZUF0dHIuaW5zZXJ0QmVmb3JlKGFscGhhUmVmLGZpcnN0Q2hpbGQp
OwotICAgICAgdmFsdWUgPSB0aXRsZUF0dHIudmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygi
YXR0clZhbHVlMSIsIs6xWc6xIix2YWx1ZSk7Ci0gICAgICAgCi0JCX0KLQkKLX0KLQotCi0KLQot
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhjX2F0dHJnZXR2YWx1ZTIoKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19hdHRyZ2V0dmFsdWUyLnho
dG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2YWx1ZTIu
eGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMmU0MDEzOGM1NTA4NDlkNzlk
MTdhODRhOWU0MjdiMjg1ZWVmYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX2F0dHJnZXR2
YWx1ZTIueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRk
IiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2
OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0
ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICIm
Izk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFU
VExJU1QgYWNyb255bSBkaXIgQ0RBVEEgImx0ciI+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgIGNoYXJzZXQ9IlVURi04
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaGNfYXR0cmdldHZhbHVlMi5qcyIvPjxzY3Jp
cHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0
VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgot
IDxwPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+ICAgICAgICAgICAKLSAgPHN1cD41NiwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyI+MTIzMCBO
b3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8
ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzVGhpcyBpcyBhIENEQVRB
U2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmYW1wO2VudDI7Ci1UaGlzIGlz
IGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZhbXA7
dGFiOzwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9z
dXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZ
ZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHA+
Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0g
IDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0g
IDx2YXI+JmRlbHRhOzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iPlBP
IEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVt
PkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5Q
ZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyI+MjcgU291
dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxl
bT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+
Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5t
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZp
bmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9oY19ub2RldmFsdWUwMy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVl
MDMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDdiMWEyNjJm
YTg4MTZlOTcxZWMzMDc5NmQ3NjU5OTRlZjk4ZTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDEvY29yZS9o
Y19ub2RldmFsdWUwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDEvY29yZS9o
Y19ub2RldmFsdWUwMwotU3RhdHVzCWVycm9yCi1NZXNzYWdlCUVycm9yOiBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU2MTY3MWFhNGIzOGE2NWExY2VkNGY5NTlhOGIxNDYzNWYzMTI1ODUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTM4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdl
YiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBF
dXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1h
dGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsg
aXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4g
dGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMx
Ci0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0
ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5j
dGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLUFuIGVudGl0eSByZWZlcmVuY2UgaXMgY3JlYXRlZCwgc2V0Tm9kZVZh
bHVlIGlzIGNhbGxlZCB3aXRoIGEgbm9uLW51bGwgYXJndW1lbnQsIGJ1dCBnZXROb2RlVmFsdWUK
LXNob3VsZCBzdGlsbCByZXR1cm4gbnVsbC4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBz
ZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMtRE9NLUxldmVsLTEtMTk5ODEwMDEvbGV2
ZWwtb25lLWNvcmUjSUQtRjY4RDA4MAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgv
UkVDLURPTS1MZXZlbC0xLTE5OTgxMDAxL2xldmVsLW9uZS1jb3JlI0lELTExQzk4NDkwCi0qLwot
ZnVuY3Rpb24gaGNfbm9kZXZhbHVlMDMoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVj
a0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJoY19ub2RldmFsdWUwMyIpICE9IG51bGwpIHJldHVy
bjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIG5ld05vZGU7Ci0gICAgICB2YXIgbmV3VmFsdWU7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
Ci0JaWYoCi0JCi0JKGJ1aWxkZXIuY29udGVudFR5cGUgPT0gInRleHQvaHRtbCIpCi0KLQkpIHsK
LQkKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIG5ld05vZGUg
PSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAgICAgIH0KLQkJY2F0Y2go
ZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYm
IGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9UX1NVUFBPUlRFRF9F
UlIiLHN1Y2Nlc3MpOwotCX0KLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQluZXdOb2RlID0gZG9jLmNy
ZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwotICAgICAgYXNzZXJ0Tm90TnVsbCgiY3JlYXRl
ZEVudFJlZk5vdE51bGwiLG5ld05vZGUpOwotbmV3VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsK
LQotICAgICAgYXNzZXJ0TnVsbCgiaW5pdGlhbGx5TnVsbCIsbmV3VmFsdWUpOwotICAgIG5ld05v
ZGUubm9kZVZhbHVlID0gIlRoaXMgc2hvdWxkIGhhdmUgbm8gZWZmZWN0IjsKLQotICAgICAgbmV3
VmFsdWUgPSBuZXdOb2RlLm5vZGVWYWx1ZTsKLQotICAgICAgYXNzZXJ0TnVsbCgibnVsbEFmdGVy
QXR0ZW1wdGVkQ2hhbmdlIixuZXdWYWx1ZSk7Ci0gICAgCi0JCX0KLQkKLX0KLQotCi0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgIGhjX25vZGV2YWx1ZTAzKCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwxL2NvcmUvaGNfbm9kZXZhbHVlMDMueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNzY1MWVjODlmYTg4MGJiNTI0Y2EyNGJhZjll
MWM1MjgxZmQyZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMS9jb3JlL2hjX25vZGV2YWx1ZTAzLnhodG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9U
RVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFF
TlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwh
RU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAg
IDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFU
SU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIGFjcm9u
eW0gZGlyIENEQVRBICJsdHIiPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0t
PgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPjxoZWFkPjxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVU
Ri04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0ICBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9ImhjX25vZGV2YWx1ZTAzLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3Nj
cmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHA+Ci0gIDxlbT5F
TVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+
QWNjb3VudGFudDwvY29kZT4gICAgICAgICAgIAotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHA+Ci0gIDxlbT5FTVAwMDAyPC9l
bT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHNUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGgg
RW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZhbXA7ZW50MjsKLVRoaXMgaXMgYW4gYWRqYWNlbnQg
Q0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJmFtcDt0YWI7PC9zdHJvbmc+
Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAw
MDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0
bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZGVsdGE7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwPgotICA8ZW0+RU1QMDAwNDwvZW0+
Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJl
Y3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7Ij4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cD4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1
ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMDYt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzc5M2UwNGNiNjRk
OWJlOGFmNWYwNmI3ZTUzODZjZjI0NmFiYzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1
bWVudGFkb3B0bm9kZTA2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBA
QAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L2RvY3VtZW50YWRvcHRub2RlMDYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi5qcyBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDRiOTQ4MTUyOGZlMjA4MWZiM2E0ZGMzZDQ5ZDI1
ZDA1NWE4ZjIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTA2Lmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTc1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIw
MDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3Rp
dHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIElu
Zm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRz
IFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29m
dHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJp
Z2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkg
dGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIg
b2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4g
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1l
bnRhZG9wdG5vZGUwNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIg
YnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRo
ZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0
ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFz
eW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVy
d2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4
Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRo
ZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVw
UGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3Jl
YXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8K
LSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NM
b2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0g
ICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBj
YXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8v
Ci0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAg
ICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAg
IFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0v
LyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAg
ICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUludm9rZSBhZG9wdE5v
ZGUgb24gYSBuZXcgZG9jdW1lbnQgdG8gYWRvcHQgdGhlIGEgbmV3IEF0dHJpYnV0ZSBub2RlIGhh
dmluZyBhIFRleHQgYW5kIGFuIEVudGl0eVJlZmVyZW5jZSAKLQljaGlsZC4gIENoZWNrIGlmIHRo
aXMgYXR0cmlidXRlIGhhcyBiZWVuIGFkb3B0ZWQgc3VjY2Vzc2Z1bGx5IGJ5IHZlcmlmeWluZyB0
aGUgbm9kZU5hbWUsIG5hbWVzcGFjZVVSSSwgcHJlZml4LCAKLQlzcGVjaWZpZWQgYW5kIG93bmVy
RWxlbWVudCBhdHRyaWJ1dGVzIG9mIHRoZSBhZG9wdGVkIG5vZGUuICBBbHNvIHZlcmlmeSB0aGUg
b3duZXJEb2N1bWVudCBhdHRyaWJ1dGUKLQlvZiB0aGUgYWRvcHRlZCBub2RlIGFuZCB0aGUgYWRv
cHRlZCBjaGlsZHJlbiBvZiB0aGUgYXR0cmlidXRlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSog
QGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVD
LURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNEb2N1bWVudDMtYWRvcHROb2RlCi0qLwot
ZnVuY3Rpb24gZG9jdW1lbnRhZG9wdG5vZGUwNigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50YWRvcHRub2RlMDYiKSAhPSBu
dWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBuZXdEb2M7Ci0gICAgICB2YXIg
ZG9tSW1wbDsKLSAgICAgIHZhciBuZXdBdHRyOwotICAgICAgdmFyIG5ld1RleHQ7Ci0gICAgICB2
YXIgbmV3RW50UmVmOwotICAgICAgdmFyIGFkb3B0ZWRBdHRyOwotICAgICAgdmFyIGFkb3B0VGV4
dDsKLSAgICAgIHZhciBhZG9wdEVudFJlZjsKLSAgICAgIHZhciBub2RlTGlzdDsKLSAgICAgIHZh
ciBub2RlTmFtZTsKLSAgICAgIHZhciBub2RlTmFtZXNwYWNlVVJJOwotICAgICAgdmFyIG5vZGVQ
cmVmaXg7Ci0gICAgICB2YXIgYXR0ck93bmVyRWxlbTsKLSAgICAgIHZhciBpc1NwZWNpZmllZDsK
LSAgICAgIHZhciBhZG9wdGVkVGV4dE5vZGVWYWx1ZTsKLSAgICAgIHZhciBhZG9wdGVkRW50UmVm
Tm9kZVZhbHVlOwotICAgICAgdmFyIG51bGxEb2NUeXBlID0gbnVsbDsKLQotICAgICAgdmFyIGFw
cGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIgZG9jRWxlbTsKLSAgICAgIHZhciByb290TlM7Ci0gICAg
ICB2YXIgcm9vdE5hbWU7Ci0gICAgICB2YXIgeG1sTlMgPSAiaHR0cDovL3d3dy53My5vcmcvWE1M
LzE5OTgvbmFtZXNwYWNlIjsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAg
ICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYg
PSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDsKLQotICAgICAg
cm9vdE5hbWUgPSBkb2NFbGVtLnRhZ05hbWU7Ci0KLSAgICAgIHJvb3ROUyA9IGRvY0VsZW0ubmFt
ZXNwYWNlVVJJOwotCi0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0aW9uOwotbmV3RG9j
ID0gZG9tSW1wbC5jcmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVsbERvY1R5cGUpOwot
ICAgICAgbmV3QXR0ciA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUyh4bWxOUywieG1sOmxhbmciKTsK
LSAgICAgIG5ld1RleHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgTm9kZSIpOwotICAgICAg
bmV3RW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBuZXdBdHRyLmFwcGVuZENoaWxkKG5ld1RleHQpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IG5ld0F0dHIuYXBwZW5kQ2hpbGQobmV3RW50UmVmKTsKLSAgICAgIGFkb3B0ZWRB
dHRyID0gbmV3RG9jLmFkb3B0Tm9kZShuZXdBdHRyKTsKLSAgICAgIAotCWlmKAotCQotCShhZG9w
dGVkQXR0ciAhPSBudWxsKQotCi0JKSB7Ci0Jbm9kZU5hbWUgPSBhZG9wdGVkQXR0ci5ub2RlTmFt
ZTsKLQotICAgICAgbm9kZU5hbWVzcGFjZVVSSSA9IGFkb3B0ZWRBdHRyLm5hbWVzcGFjZVVSSTsK
LQotICAgICAgbm9kZVByZWZpeCA9IGFkb3B0ZWRBdHRyLnByZWZpeDsKLQotICAgICAgYXR0ck93
bmVyRWxlbSA9IGFkb3B0ZWRBdHRyLm93bmVyRWxlbWVudDsKLQotICAgICAgaXNTcGVjaWZpZWQg
PSBhZG9wdGVkQXR0ci5zcGVjaWZpZWQ7Ci0KLSAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRh
ZG9wdG5vZGUwNl9ub2RlTmFtZSIsInhtbDpsYW5nIixub2RlTmFtZSk7Ci0gICAgICAgYXNzZXJ0
RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X25hbWVzcGFjZVVSSSIseG1sTlMsbm9kZU5hbWVz
cGFjZVVSSSk7Ci0gICAgICAgYXNzZXJ0RXF1YWxzKCJkb2N1bWVudGFkb3B0bm9kZTA2X3ByZWZp
eCIsInhtbCIsbm9kZVByZWZpeCk7Ci0gICAgICAgYXNzZXJ0TnVsbCgiZG9jdW1lbnRhZG9wdG5v
ZGUwNl9vd25lckRvYyIsYXR0ck93bmVyRWxlbSk7Ci0gICAgYXNzZXJ0VHJ1ZSgiZG9jdW1lbnRh
ZG9wdG5vZGUwNl9zcGVjaWZpZWQiLGlzU3BlY2lmaWVkKTsKLW5vZGVMaXN0ID0gYWRvcHRlZEF0
dHIuY2hpbGROb2RlczsKLQotICAgICAgYWRvcHRUZXh0ID0gbm9kZUxpc3QuaXRlbSgwKTsKLSAg
ICAgIGFkb3B0RW50UmVmID0gbm9kZUxpc3QuaXRlbSgxKTsKLSAgICAgIGFkb3B0ZWRUZXh0Tm9k
ZVZhbHVlID0gYWRvcHRUZXh0Lm5vZGVWYWx1ZTsKLQotICAgICAgYWRvcHRlZEVudFJlZk5vZGVW
YWx1ZSA9IGFkb3B0RW50UmVmLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoImRvY3Vt
ZW50YWRvcHRub2RlMDZfVGV4dE5vZGVWYWx1ZSIsIlRleHQgTm9kZSIsYWRvcHRlZFRleHROb2Rl
VmFsdWUpOwotICAgICAgIGFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUwNl9FbnRSZWZO
b2RlVmFsdWUiLCJhbHBoYSIsYWRvcHRlZEVudFJlZk5vZGVWYWx1ZSk7Ci0gICAgICAgCi0JfQot
CQotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUw
NigpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2Rv
Y3VtZW50YWRvcHRub2RlMDYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvZG9jdW1lbnRhZG9wdG5vZGUwNi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjkyZDg5MGRhZGI1YTg3MzU5ZjQ5ZmVkNDE5OTQ3MzU4NGQyMTcyMC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUwNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/Pgot
PCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8v
RU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsi
PgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0Nzsi
PgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0
OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVN
ICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRs
JwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAj
SU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0g
ICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMg
Y29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
ZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19z
dGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1s
LmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
ImRvY3VtZW50YWRvcHRub2RlMDYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGFiMTg4NjFmYmU4YTUwZjU5YzgxMmFlYmQwNTMz
OWVhNTdjZjVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2Rl
MTYKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4ZmQ2ZTJmZGMzNDdhMzQxMTA1NWJkYTJlZGU5YTIyMjliZTllZmU0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudGFkb3B0bm9kZTE2LmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMTcwICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRl
IFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5
LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRo
ZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdv
cmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0g
aW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8v
d3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIx
MjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRo
ZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1m
dW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5vZGUxNiI7Ci0g
ICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0K
LS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29y
ayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRo
ZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAg
ICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwot
Ly8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlh
dGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0
LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5u
aW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50
IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNy
ZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAg
Ci0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9
ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAg
ICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAg
ICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAlj
YXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91
cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hy
b25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0
YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVz
dCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICB9Ci19Ci0KLQotLyoqCi0qIAotQ3JlYXRlIGEgZG9jdW1lbnQgZnJhZ21lbnQgd2l0aCBh
biBlbnRpdHkgcmVmZXJlbmNlLCBhZG9wdCB0aGUgbm9kZSBhbmQgY2hlY2sKLXRoYXQgdGhlIGVu
dGl0eSByZWZlcmVuY2UgdmFsdWUgY29tZXMgZnJvbSB0aGUgYWRvcHRpbmcgZG9jdW1lbnRzIERU
RC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0Rv
Y3VtZW50My1hZG9wdE5vZGUKLSovCi1mdW5jdGlvbiBkb2N1bWVudGFkb3B0bm9kZTE2KCkgewot
ICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAiZG9j
dW1lbnRhZG9wdG5vZGUxNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIGRvY0ZyYWdtZW50OwotICAgICAgdmFyIGNoaWxkTGlzdDsKLSAgICAgIHZhciBwYXJlbnQ7
Ci0gICAgICB2YXIgY2hpbGQ7Ci0gICAgICB2YXIgY2hpbGRzQXR0cjsKLSAgICAgIHZhciBlbnRS
ZWY7Ci0gICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICB2YXIgYWRvcHRlZDsKLSAgICAgIHZhciBw
YXJlbnRJbXA7Ci0gICAgICB2YXIgY2hpbGRJbXA7Ci0gICAgICB2YXIgYXR0cmlidXRlczsKLSAg
ICAgIHZhciBjaGlsZEF0dHJJbXA7Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIGFw
cGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIgYXR0ck5vZGU7Ci0gICAgICB2YXIgZmlyc3RDaGlsZDsK
LSAgICAgIHZhciBmaXJzdENoaWxkVHlwZTsKLSAgICAgIHZhciBmaXJzdENoaWxkTmFtZTsKLSAg
ICAgIHZhciBmaXJzdENoaWxkVmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRG
cmFnbWVudCgpOwotICAgICAgcGFyZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoInBhcmVudCIpOwot
ICAgICAgY2hpbGQgPSBkb2MuY3JlYXRlRWxlbWVudCgiY2hpbGQiKTsKLSAgICAgIGNoaWxkc0F0
dHIgPSBkb2MuY3JlYXRlQXR0cmlidXRlKCJzdGF0ZSIpOwotICAgICAgZW50UmVmID0gZG9jLmNy
ZWF0ZUVudGl0eVJlZmVyZW5jZSgiZ2FtbWEiKTsKLSAgICAgIHRleHROb2RlID0gZG9jLmNyZWF0
ZVRleHROb2RlKCJUZXN0Iik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gY2hpbGRzQXR0ci5hcHBl
bmRDaGlsZChlbnRSZWYpOwotICAgICAgYXR0ck5vZGUgPSBjaGlsZC5zZXRBdHRyaWJ1dGVOb2Rl
KGNoaWxkc0F0dHIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGNoaWxkLmFwcGVuZENoaWxkKHRl
eHROb2RlKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGQp
OwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWdtZW50LmFwcGVuZENoaWxkKHBhcmVudCk7
Ci0gICAgICBhZG9wdGVkID0gZG9jLmFkb3B0Tm9kZShkb2NGcmFnbWVudCk7Ci0gICAgICAKLQlp
ZigKLQkKLQkoYWRvcHRlZCAhPSBudWxsKQotCi0JKSB7Ci0JcGFyZW50SW1wID0gYWRvcHRlZC5m
aXJzdENoaWxkOwotCi0gICAgICBjaGlsZEltcCA9IHBhcmVudEltcC5maXJzdENoaWxkOwotCi0g
ICAgICBhdHRyaWJ1dGVzID0gY2hpbGRJbXAuYXR0cmlidXRlczsKLQotICAgICAgY2hpbGRBdHRy
SW1wID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oInN0YXRlIik7Ci0gICAgICBmaXJzdENoaWxk
ID0gY2hpbGRBdHRySW1wLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImZpcnN0
Q2hpbGROb3ROdWxsIixmaXJzdENoaWxkKTsKLWZpcnN0Q2hpbGROYW1lID0gZmlyc3RDaGlsZC5u
b2RlTmFtZTsKLQotICAgICAgZmlyc3RDaGlsZFZhbHVlID0gZmlyc3RDaGlsZC5ub2RlVmFsdWU7
Ci0KLSAgICAgIGZpcnN0Q2hpbGRUeXBlID0gZmlyc3RDaGlsZC5ub2RlVHlwZTsKLQotICAgICAg
Ci0JaWYoCi0JKDUgPT0gZmlyc3RDaGlsZFR5cGUpCi0JKSB7Ci0JYXNzZXJ0RXF1YWxzKCJmaXJz
dENoaWxkRW50M1JlZiIsImdhbW1hIixmaXJzdENoaWxkTmFtZSk7Ci0gICAgICAgCi0JfQotCQot
CQllbHNlIHsKLQkJCWFzc2VydEVxdWFscygiZG9jdW1lbnRhZG9wdG5vZGUxNiIsIlRleGFzIixm
aXJzdENoaWxkVmFsdWUpOwotICAgICAgIAotCQl9Ci0JCi0JfQotCQotfQotCi0KLQotCi1mdW5j
dGlvbiBydW5UZXN0KCkgewotICAgZG9jdW1lbnRhZG9wdG5vZGUxNigpOwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50YWRvcHRub2RlMTYu
eGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRhZG9wdG5v
ZGUxNi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiYjlkZTFmYjkzOGIw
Nzk3NTMwZjExMzBjODcxODZlNzYzN2QxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1l
bnRhZG9wdG5vZGUxNi54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAg
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0
cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0
YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVs
dGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkg
YWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9u
MUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4K
LSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpk
bXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAg
ICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAg
ICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255
bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5U
SVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVt
ZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4
bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4t
LT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4
bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNf
c3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFy
c2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImRvY3VtZW50YWRvcHRub2Rl
MTYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVt
PkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29k
ZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAy
PC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFU
QVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFU
QVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEg
dGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4z
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERh
bGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5S
b2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4K
LSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9w
PgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAw
NDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5l
bCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMs
IFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3
Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwv
c3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAw
MDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJv
YWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVu
YW1lbm9kZTI3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9kb2N1bWVudHJlbmFtZW5vZGUyNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQzNzM0NDFkNDMwMjE0OTJmOTQzN2RmYjY2MGRjMGU0ZmEzNjM4MmQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3Ci1TdGF0dXMJZmFp
bHVyZQotTWVzc2FnZQl0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl8xOiBhc3NlcnRUcnVlIGZhaWxl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50
cmVuYW1lbm9kZTI3LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3Vt
ZW50cmVuYW1lbm9kZTI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjczY2Fj
YmM2ODk2YzY2Y2EyMzMwMmY2YTIxYWI2OWNlM2Q4NGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9kb2N1bWVudHJlbmFtZW5vZGUyNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3IjsKLSAgIH0KLQotdmFyIGRv
Y3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8g
ICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNv
bmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQg
bG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMg
c2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAg
ICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rp
b24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5
IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5
IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJl
ZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBk
b2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcp
IHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVk
ICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAg
IGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6
YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
IHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRl
ZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQg
ZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5n
ZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1
dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0g
MSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQot
Ci0vKioKLSogCi0JSW52b2tlIHRoZSByZW5hbWVOb2RlIG1ldGhvZCB0byBhdHRlbXB0IHRvIHJl
bmFtZSBuZXcgVGV4dCwgQ29tbWVudCwgQ0RhdGFTZWN0aW9uLAotCVByb2Nlc3NpbmdJbnN0cnVj
dGlvbiBhbmQgRW50aXR5UmVmZXJlbmNlIG5vZGVzIG9mIGEgbmV3IERvY3VtZW50LgotCUNoZWNr
IGlmIGEgTk9UX1NVUFBPUlRFRF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBh
dXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1E
T00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjRG9jdW1lbnQzLXJlbmFtZU5vZGUKLSovCi1m
dW5jdGlvbiBkb2N1bWVudHJlbmFtZW5vZGUyNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlm
KGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgImRvY3VtZW50cmVuYW1lbm9kZTI3IikgIT0g
bnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgbmV3RG9jOwotICAgICAgdmFy
IGRvbUltcGw7Ci0gICAgICB2YXIgdGV4dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFy
IGNkYXRhOwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIGVudHJlZjsKLSAgICAgIHZhciByZW5h
bWVkVHh0OwotICAgICAgdmFyIHJlbmFtZWRDb21tZW50OwotICAgICAgdmFyIHJlbmFtZWRDZGF0
YTsKLSAgICAgIHZhciByZW5hbWVkUGk7Ci0gICAgICB2YXIgcmVuYW1lZEVudFJlZjsKLSAgICAg
IHZhciBudWxsRG9jVHlwZSA9IG51bGw7Ci0KLSAgICAgIHZhciBkb2NFbGVtOwotICAgICAgdmFy
IHJvb3ROUzsKLSAgICAgIHZhciByb290TmFtZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVu
dDsKLQotICAgICAgcm9vdE5TID0gZG9jRWxlbS5uYW1lc3BhY2VVUkk7Ci0KLSAgICAgIHJvb3RO
YW1lID0gZG9jRWxlbS50YWdOYW1lOwotCi0gICAgICBkb21JbXBsID0gZG9jLmltcGxlbWVudGF0
aW9uOwotbmV3RG9jID0gZG9tSW1wbC5jcmVhdGVEb2N1bWVudChyb290TlMscm9vdE5hbWUsbnVs
bERvY1R5cGUpOwotICAgICAgdGV4dCA9IG5ld0RvYy5jcmVhdGVUZXh0Tm9kZSgidGV4dCIpOwot
ICAgICAgY29tbWVudCA9IG5ld0RvYy5jcmVhdGVDb21tZW50KCJjb21tZW50Iik7Ci0gICAgICBj
ZGF0YSA9IG5ld0RvYy5jcmVhdGVDREFUQVNlY3Rpb24oImNkYXRhIik7Ci0gICAgICBwaSA9IG5l
d0RvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInBpdCIsInBpZCIpOwotICAgICAgZW50
cmVmID0gbmV3RG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIAotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZFR4dCA9IG5l
d0RvYy5yZW5hbWVOb2RlKHRleHQsImh0dHA6Ly93d3cudzMub3JnL0RPTS9UZXN0IiwidGV4dCIp
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PVF9TVVBQT1JURURfRVJSXzEiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2Vz
cyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVuYW1lZENvbW1lbnQgPSBuZXdEb2Mu
cmVuYW1lTm9kZShjb21tZW50LCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNvbW1lbnQi
KTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXgu
Y29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVl
KCJ0aHJvd19OT1RfU1VQUE9SVEVEX0VSUl8yIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nl
c3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlbmFtZWRDZGF0YSA9IG5ld0RvYy5y
ZW5hbWVOb2RlKGNkYXRhLCJodHRwOi8vd3d3LnczLm9yZy9ET00vVGVzdCIsImNkYXRhIik7Ci0g
ICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUp
ICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOSk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhy
b3dfTk9UX1NVUFBPUlRFRF9FUlJfMyIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW5hbWVkUGkgPSBuZXdEb2MucmVuYW1lTm9k
ZShwaSwiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJwaSIpOwotICAgICAgICB9Ci0JCWNh
dGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVk
JyAmJiBleC5jb2RlID09IDkpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PVF9TVVBQT1JU
RURfRVJSXzQiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgcmVuYW1lZEVudFJlZiA9IG5ld0RvYy5yZW5hbWVOb2RlKGVudHJlZiwi
aHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJlbnRyZWYiKTsKLSAgICAgICAgfQotCQljYXRj
aChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcg
JiYgZXguY29kZSA9PSA5KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT1RfU1VQUE9SVEVE
X0VSUl81IixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgIGRvY3VtZW50cmVuYW1lbm9kZTI3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRyZW5hbWVub2RlMjcueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlNzgxMWI0MmRlMmM0NjdlNWEyYTYwZTE4Mjkx
ZDJkMTA4ZjgzYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50cmVuYW1lbm9kZTI3
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
Ij8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgot
ICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4K
LSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNU
IHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVt
cDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAg
IHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFM
b2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNw
YW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bh
bj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJ
TVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1s
bnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hl
bWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxo
ZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZG9jdW1lbnRyZW5hbWVub2RlMjcuanMiLz48c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFy
dFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2Vt
PgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50
PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMw
IE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0
cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0
aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFu
IGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+
PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1h
OwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5u
ZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVz
PC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAs
MDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNs
YXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+
UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5z
Om5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxz
dHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rvcjwv
Y29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4K
LSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8
Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8
dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBU
ZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjIwLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvbjIwLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyNzhlNGU2NjQ2NmZiZGMxNDA3Njc1NTM4N2E5YTM1ZjBmMWVhOTZlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yMC54aHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQ
SURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhh
ICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1h
ICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNp
bG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBD
REFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRh
dGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Im5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjIwLmpzIi8+PHNjcmlwdCB0eXBl
PSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7
IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0
cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4K
LSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBB
dmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFy
dGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5
UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2Vu
dCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25n
PgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05h
bWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1
NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5j
b20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25n
PgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3Vw
PgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8i
IGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAy
NyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0
cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkpl
bnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0g
IDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255
bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5F
TVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29t
cHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1
NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5MDI0MzczOGY2MGEwODg0NjRkYWQ4NDgyN2VhNmMxNGViMDEzZjcxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yNgotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZW50UmVmQ2hpbGQxTm90TnVsbDogYXNzZXJ0
Tm90TnVsbCBmYWlsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcyBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2U4YjNmYWU4ODc5YTBhMzRkZjAxYjY0NWRjMzc2MGFi
ZTAyNzMxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0
IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0
dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0g
Ci1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwg
Ci1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzND
w4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAw
Mi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBH
ZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRl
bnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAg
IHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29y
ZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotCVVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIGNoZWNrIGlmIHRoZSBFbnRpdHlSZWZl
cmVuY2Ugbm9kZSBjb250YWlucyBhbmQgcHJlY2VkZXMgaXQncyBmaXJzdAotCWNoaWxkRWxlbWVu
dCwgYW5kIHRoYXQgdGhlIGNoaWxkRWxlbWVudCBpcyBjb250YWluZWQgYW5kIGZvbGxvd3MgdGhl
IEVudGl0eVJlZmVyZW5jZSBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkg
SHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29y
ZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rp
b24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAg
ICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yNiIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxp
c3Q7Ci0gICAgICB2YXIgdmFyRWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50
UmVmQ2hpbGQxOwotICAgICAgdmFyIGVudFJlZlBvc2l0aW9uOwotICAgICAgdmFyIGVudFJlZkNo
aWxkMVBvc2l0aW9uOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlm
ICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRo
aXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3Rh
ZmYiKTsKLSAgICAgIAotCWlmKAotCShnZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5k
RW50aXR5UmVmZXJlbmNlcyIpID09IGZhbHNlKQotCSkgewotCXZhckxpc3QgPSBkb2MuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoInZhciIpOwotICAgICAgdmFyRWxlbSA9IHZhckxpc3QuaXRlbSgyKTsK
LSAgICAgIGFzc2VydE5vdE51bGwoInZhckVsZW1Ob3ROdWxsIix2YXJFbGVtKTsKLWVudFJlZiA9
IHZhckVsZW0uZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmTm90TnVs
bCIsZW50UmVmKTsKLQotCX0KLQkKLQkJZWxzZSB7Ci0JCQllbnRSZWYgPSBkb2MuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICAKLQkJfQotCWVudFJlZkNoaWxkMSA9IGVudFJl
Zi5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGlsZDFOb3ROdWxs
IixlbnRSZWZDaGlsZDEpOwotZW50UmVmUG9zaXRpb24gPSBlbnRSZWYuY29tcGFyZURvY3VtZW50
UG9zaXRpb24oZW50UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uSXNDb250YWluZWRGb2xsb3dpbmcyNiIsMjAsZW50UmVmUG9zaXRpb24p
OwotICAgICAgIGVudFJlZkNoaWxkMVBvc2l0aW9uID0gZW50UmVmQ2hpbGQxLmNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uKGVudFJlZik7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbkNvbnRhaW5zUFJFQ0VESU5HMjYiLDEwLGVudFJlZkNoaWxkMVBvc2l0aW9u
KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVjb21w
YXJlZG9jdW1lbnRwb3NpdGlvbjI2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjYueGh0bWwgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MzNlMGQwNjU4YmJm
YmY0ZmE1MDgzZTBhMjM5NzMyYTQ0YzFlOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVj
b21wYXJlZG9jdW1lbnRwb3NpdGlvbjI2LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZ
UEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAg
ICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8
IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8
IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJ
QyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0
aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAg
ICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
aHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAg
ICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRU
TElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
Ci0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5z
dGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlw
dCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVh
ZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDov
L3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1h
cnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhh
cyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNh
LmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwh
W0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVy
IDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3
aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3Jl
dGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAw
MDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFy
dG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMg
OTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0
YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJv
bmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ilkm
YWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4y
NyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4
bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8
c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0
PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249
IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8
L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRp
b24yNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MjliNGNk
ODA1OGEzYzc1Y2E4MTJiNDI1Mjc1YjM2ZjhlNDI5ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3Ci1TdGF0dXMJZmFp
bHVyZQotTWVzc2FnZQllbnRSZWZDaGlsZDFOb3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJl
ZG9jdW1lbnRwb3NpdGlvbjI3LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMWUxOWI3NjcwMmIzNGE5ODVlODI0ZjgxZWFjYWFmM2VlNGJlMGY2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy5qcworKysgL2Rl
di9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQg
V29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2Yg
VGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGlj
cyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZl
ZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExp
Y2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1b
MV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0
d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRl
bnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QK
LSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9j
dW1lbnRwb3NpdGlvbjI3IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZh
ciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
dGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1
aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywg
YXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3Ro
ZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUg
ZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcg
dGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0
VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBj
cmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAv
LwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9j
c0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYg
KHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhp
cy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9j
IiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsK
LSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9
IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7
Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQot
Ly8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8g
ICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8v
ICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwK
LS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8g
ICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBs
ZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgY29tcGFy
ZURvY3VtZW50UG9zaXRpb24gdG8gY2hlY2sgaWYgdGhlIEVudGl0eVJlZmVyZW5jZSBub2RlIGNv
bnRhaW5zIGFuZCBwcmVjZWRlcyBpdCdzIGxhc3QKLQljaGlsZEVsZW1lbnQsIGFuZCB0aGF0IHRo
aXMgY2hpbGRFbGVtZW50IGlzIGNvbnRhaW5lZCBhbmQgZm9sbG93cyB0aGUgRW50aXR5UmVmZXJl
bmNlIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBKZW5ueSBIc3UKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2Nv
cmUjTm9kZTMtY29tcGFyZURvY3VtZW50UG9zaXRpb24KLSovCi1mdW5jdGlvbiBub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb24yNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5p
dGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI3IikgIT0g
bnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgdmFyTGlzdDsKLSAgICAgIHZh
ciB2YXJFbGVtOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDE7Ci0g
ICAgICB2YXIgZW50UmVmUG9zaXRpb247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxUG9zaXRpb247
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
Ci0JaWYoCi0JKGdldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzIikgPT0gZmFsc2UpCi0JKSB7Ci0JdmFyTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgidmFyIik7Ci0gICAgICB2YXJFbGVtID0gdmFyTGlzdC5pdGVtKDIpOwotICAgICAgYXNzZXJ0
Tm90TnVsbCgidmFyRWxlbU5vdE51bGwiLHZhckVsZW0pOwotZW50UmVmID0gdmFyRWxlbS5maXJz
dENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZOb3ROdWxsIixlbnRSZWYpOwot
Ci0JfQotCQotCQllbHNlIHsKLQkJCWVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2Uo
ImVudDQiKTsKLSAgICAgIAotCQl9Ci0JZW50UmVmQ2hpbGQxID0gZW50UmVmLmxhc3RDaGlsZDsK
LQotICAgICAgYXNzZXJ0Tm90TnVsbCgiZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQx
KTsKLWVudFJlZlBvc2l0aW9uID0gZW50UmVmLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVudFJl
ZkNoaWxkMSk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlv
bklzQ29udGFpbmVkRm9sbG93aW5nMjciLDIwLGVudFJlZlBvc2l0aW9uKTsKLSAgICAgICBlbnRS
ZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihl
bnRSZWYpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25D
b250YWluc1BSRUNFRElORyIsMTAsZW50UmVmQ2hpbGQxUG9zaXRpb24pOwotICAgICAgIAotfQot
Ci0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0
aW9uMjcoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yNy54aHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzFhYmUwMWJmOWJkODlkMWExZWFmNmVjYmMwMWIw
OTNlNmViZmIxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBv
c2l0aW9uMjcueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJz
aW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJM
SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3Qu
ZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYj
OTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICIm
Izk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhh
ICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxl
Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8
IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMg
Q0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAg
eG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAg
ICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBl
bnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBk
YXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMg
Q0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08
aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6
eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAg
eHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZm
LnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0i
VVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yNy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNkMzI0OWQ4NGJiM2MyNjE2NzVlM2U0
ZThjYWQzNjI5OGEzZjg1YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWVu
dFJlZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9u
MjguanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjguanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMmIyOGU4
M2MzMDU0NGRhYWE4NDFmMTdmZDE1ZDdiOGRiYzUyZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI4LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4
ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBD
b25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJv
cGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGlj
cywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMg
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhl
IAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3Lncz
Lm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0q
LwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0
LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlv
biBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgi
OwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxs
OwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFt
ZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJ
ZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8v
ICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0
dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1t
ZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUg
dGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAn
cnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1
bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIg
PSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAg
ICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9j
KSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0K
LSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsK
LSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVw
UGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAg
ICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1l
dGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hy
b25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5
bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFn
ZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhl
IHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYg
KCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0
ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyBjb21wYXJlRG9jdW1lbnRQb3NpdGlv
biBjaGVjayB0aGUgZG9jdW1lbnQgcG9zaXRpb24gb2YgdGhlIEVudGl0eVJlZmVyZW5jZSBub2Rl
IGVudDQncwotCWZpcnN0IGNoaWxkIGFuZCBsYXN0IGNoaWxkLiAgSW52b2tlIGNvbXBhcmVEb2N1
bWVudFBvc2l0b24gb24gZmlyc3QgY2hpbGQgd2l0aCBsYXN0IGNoaWxkIGFzIGEgcGFyYW1ldGVy
Ci0Jc2hvdWxkIHJldHVybiBGT0xMT1dJTkcsIGFuZCBzaG91bGQgcmV0dXJuIFBSRUNFRElORyB2
aWNlIHZlcnNhLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgSmVubnkgSHN1Ci0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0qLwotZnVuY3Rpb24gbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjgoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0lu
aXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOCIpICE9
IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHZhckxpc3Q7Ci0gICAgICB2
YXIgdmFyRWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQxOwot
ICAgICAgdmFyIGVudFJlZkNoaWxkMjsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDFQb3NpdGlvbjsK
LSAgICAgIHZhciBlbnRSZWZDaGlsZDJQb3NpdGlvbjsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAKLQlpZigKLQkoZ2V0SW1wbGVtZW50YXRp
b25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiKSA9PSBmYWxzZSkKLQkpIHsKLQl2
YXJMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ2YXIiKTsKLSAgICAgIHZhckVsZW0g
PSB2YXJMaXN0Lml0ZW0oMik7Ci0gICAgICBhc3NlcnROb3ROdWxsKCJ2YXJFbGVtTm90TnVsbCIs
dmFyRWxlbSk7Ci1lbnRSZWYgPSB2YXJFbGVtLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5v
dE51bGwoImVudFJlZk5vdE51bGwiLGVudFJlZik7Ci0KLQl9Ci0JCi0JCWVsc2UgewotCQkJZW50
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgCi0JCX0KLQll
bnRSZWZDaGlsZDEgPSBlbnRSZWYuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0Tm90TnVsbCgi
ZW50UmVmQ2hpbGQxTm90TnVsbCIsZW50UmVmQ2hpbGQxKTsKLWVudFJlZkNoaWxkMiA9IGVudFJl
Zi5sYXN0Q2hpbGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwi
LGVudFJlZkNoaWxkMik7Ci1lbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21w
YXJlRG9jdW1lbnRQb3NpdGlvbihlbnRSZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJu
b2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb25Gb2xsb3dpbmcyOCIsNCxlbnRSZWZDaGlsZDFQb3Np
dGlvbik7Ci0gICAgICAgZW50UmVmQ2hpbGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFy
ZURvY3VtZW50UG9zaXRpb24oZW50UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uUFJFQ0VESU5HMjgiLDIsZW50UmVmQ2hpbGQyUG9zaXRp
b24pOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNv
bXBhcmVkb2N1bWVudHBvc2l0aW9uMjgoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC54aHRtbCBi
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9z
aXRpb24yOC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI1MDgyOWYxMmMy
OTZiNjE5NTZiODFmYzY2NjU4MmUzNjMyMjllYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjgueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyAr
MCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9D
VFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgot
ICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAg
IDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAg
IDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4K
LSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVC
TElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90
YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAg
ICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElT
VCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAg
ICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFB
VFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFB
VFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1l
bnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1p
bnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8
L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIv
PjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rl
Y29tcGFyZWRvY3VtZW50cG9zaXRpb24yOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQg
TWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRl
eGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51
c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwot
PCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1i
ZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9u
IHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVN
UDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVw
YXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50
NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhh
cyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZp
c3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0
cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0g
IDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxp
c3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3Np
dGlvbjI5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJjYTc4
MTdjODE0ODVlZWIxZmQ0YmU0Zjg1YmQxZWUyMTdmNDk2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3Qt
U3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkKLVN0YXR1cwlm
YWlsdXJlCi1NZXNzYWdlCWVudFJlZkNoaWxkMU5vdE51bGw6IGFzc2VydE5vdE51bGwgZmFpbGVk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBh
cmVkb2N1bWVudHBvc2l0aW9uMjkuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZkOWZkNDVmYTkxNWM0ZjUyYTBjMDg3N2ExNmI5NWVhN2EyZDg5MTkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVjb21wYXJlZG9jdW1lbnRwb3NpdGlvbjI5LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTI4ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAw
NCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBv
ZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0
aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2Vy
dmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUg
TGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0K
LVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNv
ZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBp
ZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVz
dAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6
Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjkiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwot
dmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi
eSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qg
c3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25z
LCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBP
dGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRo
ZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmlu
ZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBz
ZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAg
IGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAg
IC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBk
b2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJk
b2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkg
ewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAg
IH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4
KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
Ci0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0v
LyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwot
Ly8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVk
LAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0v
LyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlDcmVhdGUgdHdv
IGVudGl0eSByZWZlcmVuY2Ugbm9kZXMuIFVzaW5nIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHRv
IGNoZWNrIGlmIHRoZSBjaGlsZCBvZiB0aGUgZmlyc3QgRW50aXR5IAotCVJlZiBub2RlIHByZWNl
ZGVzIHRoZSBjaGlsZCBvZiB0aGUgc2Vjb25kIEVudGl0eSBSZWYgbm9kZSwgYW5kIHRoYXQgdGhl
IGNoaWxkIG9mIHRoZSBzZWNvbmQgRW50aXR5IFJlZiBub2RlCi0JZm9sbG93cyB0aGUgY2hpbGQg
b2YgdGhlIGZpcnN0IEVudGl0eSBSZWYgbm9kZS4gIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgSmVubnkgSHN1Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxl
dmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLWNvbXBhcmVEb2N1bWVudFBvc2l0aW9uCi0q
LwotZnVuY3Rpb24gbm9kZWNvbXBhcmVkb2N1bWVudHBvc2l0aW9uMjkoKSB7Ci0gICB2YXIgc3Vj
Y2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yOSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAg
dmFyIGRvY0VsZW07Ci0gICAgICB2YXIgZW50UmVmMTsKLSAgICAgIHZhciBlbnRSZWYyOwotICAg
ICAgdmFyIGVudFJlZkNoaWxkMTsKLSAgICAgIHZhciBlbnRSZWZDaGlsZDI7Ci0gICAgICB2YXIg
ZW50UmVmQ2hpbGQxUG9zaXRpb247Ci0gICAgICB2YXIgZW50UmVmQ2hpbGQyUG9zaXRpb247Ci0g
ICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7
Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBk
b2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9j
IiwgImhjX3N0YWZmIik7Ci0gICAgICBlbnRSZWYxID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5j
ZSgiZW50NCIpOwotICAgICAgZW50UmVmMiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImVu
dDQiKTsKLSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBhcHBl
bmRlZENoaWxkID0gZG9jRWxlbS5hcHBlbmRDaGlsZChlbnRSZWYxKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBkb2NFbGVtLmFwcGVuZENoaWxkKGVudFJlZjIpOwotICAgICAgZW50UmVmQ2hpbGQx
ID0gZW50UmVmMS5maXJzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJlbnRSZWZDaGls
ZDFOb3ROdWxsIixlbnRSZWZDaGlsZDEpOwotZW50UmVmQ2hpbGQyID0gZW50UmVmMi5sYXN0Q2hp
bGQ7Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoImVudFJlZkNoaWxkMk5vdE51bGwiLGVudFJlZkNo
aWxkMik7Ci1lbnRSZWZDaGlsZDFQb3NpdGlvbiA9IGVudFJlZkNoaWxkMS5jb21wYXJlRG9jdW1l
bnRQb3NpdGlvbihlbnRSZWZDaGlsZDIpOwotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlY29tcGFy
ZWRvY3VtZW50cG9zaXRpb25Gb2xsb3dpbmcyOSIsNCxlbnRSZWZDaGlsZDFQb3NpdGlvbik7Ci0g
ICAgICAgZW50UmVmQ2hpbGQyUG9zaXRpb24gPSBlbnRSZWZDaGlsZDIuY29tcGFyZURvY3VtZW50
UG9zaXRpb24oZW50UmVmQ2hpbGQxKTsKLSAgICAgIGFzc2VydEVxdWFscygibm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uUFJFQ0VESU5HMjkiLDIsZW50UmVmQ2hpbGQyUG9zaXRpb24pOwotICAg
ICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZWNvbXBhcmVkb2N1
bWVudHBvc2l0aW9uMjkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlY29tcGFyZWRvY3VtZW50cG9zaXRpb24yOS54
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEzZDJhOWI3MjExZDRkZjYzNWM0
NjViYjU5NmQwNWJhOTEyYmIwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWNvbXBhcmVk
b2N1bWVudHBvc2l0aW9uMjkueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1s
Ci0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1s
MS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZ
IGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZ
IGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5U
SVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3Rh
dGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmls
ZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1s
bnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0g
ICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFj
cm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNw
YW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAg
ICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIK
LSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlY29tcGFyZWRv
Y3VtZW50cG9zaXRpb24yOS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5
IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVz
YS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9z
dHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0g
IDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUx
PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4K
LSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFb
VGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50
MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSBy
ZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9j
b2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2Vt
PgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBN
YW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1Mzwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+
Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAg
PGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8
dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsi
IGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRo
IFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVt
cDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+
Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+
Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4x
ODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwv
Ym9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWdldGZlYXR1cmUwNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDI3YTk1YTFmNjJjZTE0NzQ4ZjM0NjA0MjA0YzczMjhiNzY5NDRiZWEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZWdldGZlYXR1cmUwNAotU3RhdHVzCWVycm9y
Ci1NZXNzYWdlCUxpbmUgMTAxOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0LmpzIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGY5ZjVkMjBmNzdiZmI5ZGNhMGExMGU4MGUxZGY1NWViZmIyM2M0ZGEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRmZWF0dXJlMDQuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwyMDIgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdp
ZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xv
Z3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1h
dGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMg
d29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsx
XSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMg
dGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8K
LWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0ZmVhdHVyZTA0IjsKLSAg
IH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQot
Ly8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3Jr
IGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhl
cmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAg
ICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0v
LyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0
ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3Qu
Ci0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5p
bmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQg
YnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3Jl
YXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotQ2hlY2sgaW1wbGVtZW50YXRpb24gb2YgTm9kZS5nZXRGZWF0
dXJlIG9uIEVudGl0eVJlZmVyZW5jZS4KLQotKiBAYXV0aG9yIEN1cnQgQXJub2xkCi0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI05vZGUzLWdldEZlYXR1cmUKLSovCi1mdW5jdGlvbiBub2RlZ2V0ZmVhdHVyZTA0KCkgewot
ICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9k
ZWdldGZlYXR1cmUwNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFy
IG5vZGU7Ci0gICAgICB2YXIgbnVsbFZlcnNpb24gPSBudWxsOwotCi0gICAgICB2YXIgZmVhdHVy
ZUltcGw7Ci0gICAgICB2YXIgaXNTdXBwb3J0ZWQ7Ci0gICAgICB2YXIgZG9tSW1wbDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImJhcmZvbyIpOwotICAgICAgZG9tSW1wbCA9
IGRvYy5pbXBsZW1lbnRhdGlvbjsKLW5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJl
bnQxIik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiQ29yZSIsbnVsbFZl
cnNpb24pOwotICAgICAgYXNzZXJ0U2FtZSgiY29yZVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxm
ZWF0dXJlSW1wbCk7Ci1mZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiY09yRSIsbnVsbFZl
cnNpb24pOwotICAgICAgYXNzZXJ0U2FtZSgiY09yRVVuc3BlY2lmaWVkVmVyc2lvbiIsbm9kZSxm
ZWF0dXJlSW1wbCk7Ci1mZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiK2NPckUiLG51bGxW
ZXJzaW9uKTsKLSAgICAgIGFzc2VydFNhbWUoIlBsdXNDb3JlVW5zcGVjaWZpZWRWZXJzaW9uIixu
b2RlLGZlYXR1cmVJbXBsKTsKLWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJvcmcudzNj
LmRvbXRzLmJvZ3VzLmZlYXR1cmUiLG51bGxWZXJzaW9uKTsKLSAgICAgIGFzc2VydE51bGwoInVu
cmVjb2duaXplZEZlYXR1cmUiLGZlYXR1cmVJbXBsKTsKLSAgICBmZWF0dXJlSW1wbCA9IG5vZGUu
Z2V0RmVhdHVyZSgiY09yRSIsIjIuMCIpOwotICAgICAgYXNzZXJ0U2FtZSgiQ29yZTIwIixub2Rl
LGZlYXR1cmVJbXBsKTsKLWZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJjT3JFIiwiMy4w
Iik7Ci0gICAgICBhc3NlcnRTYW1lKCJDb3JlMzAiLG5vZGUsZmVhdHVyZUltcGwpOwotaXNTdXBw
b3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1
cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJYTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlm
KAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiWE1MVW5zcGVjaWZpZWQiLG5vZGUs
ZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiU1ZH
IixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiU1ZH
IixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlpZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2Vy
dFNhbWUoIlNWR1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBv
cnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1
cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJIVE1MIixudWxsVmVyc2lvbik7Ci0gICAgICAKLQlp
ZigKLQlpc1N1cHBvcnRlZAotCSkgewotCWFzc2VydFNhbWUoIkhUTUxVbnNwZWNpZmllZCIsbm9k
ZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCJF
dmVudHMiLG51bGxWZXJzaW9uKTsKLSAgICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJl
KCJFdmVudHMiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7
Ci0JYXNzZXJ0U2FtZSgiRXZlbnRzVW5zcGVjaWZpZWQiLG5vZGUsZmVhdHVyZUltcGwpOwotCi0J
fQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgiTFMiLG51bGxWZXJzaW9uKTsKLSAg
ICAgIGZlYXR1cmVJbXBsID0gbm9kZS5nZXRGZWF0dXJlKCJMUyIsbnVsbFZlcnNpb24pOwotICAg
ICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlhc3NlcnRTYW1lKCJMU1Vuc3BlY2lmaWVk
Iixub2RlLGZlYXR1cmVJbXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0
ZWQoIkxTLUFzeW5jIixudWxsVmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0
RmVhdHVyZSgiTFMtQXN5bmMiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9y
dGVkCi0JKSB7Ci0JYXNzZXJ0U2FtZSgiTFNBc3luY1Vuc3BlY2lmaWVkIixub2RlLGZlYXR1cmVJ
bXBsKTsKLQotCX0KLQlpc1N1cHBvcnRlZCA9IG5vZGUuaXNTdXBwb3J0ZWQoIlhQYXRoIixudWxs
VmVyc2lvbik7Ci0gICAgICBmZWF0dXJlSW1wbCA9IG5vZGUuZ2V0RmVhdHVyZSgiWFBhdGgiLG51
bGxWZXJzaW9uKTsKLSAgICAgIAotCWlmKAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0U2Ft
ZSgiWFBhdGhVbnNwZWNpZmllZCIsbm9kZSxmZWF0dXJlSW1wbCk7Ci0KLQl9Ci0JaXNTdXBwb3J0
ZWQgPSBub2RlLmlzU3VwcG9ydGVkKCIrSFRNTCIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVy
ZUltcGwgPSBub2RlLmdldEZlYXR1cmUoIkhUTUwiLG51bGxWZXJzaW9uKTsKLSAgICAgIAotCWlm
KAotCWlzU3VwcG9ydGVkCi0JKSB7Ci0JYXNzZXJ0Tm90TnVsbCgiUGx1c0hUTUxVbnNwZWNpZmll
ZCIsZmVhdHVyZUltcGwpOwotCi0JfQotCWlzU3VwcG9ydGVkID0gbm9kZS5pc1N1cHBvcnRlZCgi
K1NWRyIsbnVsbFZlcnNpb24pOwotICAgICAgZmVhdHVyZUltcGwgPSBub2RlLmdldEZlYXR1cmUo
IlNWRyIsbnVsbFZlcnNpb24pOwotICAgICAgCi0JaWYoCi0JaXNTdXBwb3J0ZWQKLQkpIHsKLQlh
c3NlcnROb3ROdWxsKCJQbHVzU1ZHVW5zcGVjaWZpZWQiLGZlYXR1cmVJbXBsKTsKLQotCX0KLQkK
LX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXRmZWF0dXJlMDQoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0
ZmVhdHVyZTA0LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVn
ZXRmZWF0dXJlMDQueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZDg1YzUz
YzM4MjNiYjgxMWIxZTc0OTMzOWE1NTczYjI1NzA0NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVnZXRmZWF0dXJlMDQueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbCBbCi08IUVOVElUWSBlbnQxICdmb28nPgotPCFFTlRJVFkgZW50MiAnZm9v
PGJyLz4nPgotPCFFTEVNRU5UIGh0bWwgKGhlYWQsIGJvZHkpPgotPCFBVFRMSVNUIGh0bWwgeG1s
bnMgQ0RBVEEgI0lNUExJRUQ+Ci08IUVMRU1FTlQgaGVhZCAodGl0bGUsc2NyaXB0Kik+Ci08IUVM
RU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KLTwhQVRUTElTVCBzY3JpcHQgCi0gICAgIHNyYyBDREFU
QSAjSU1QTElFRAotICAgICB0eXBlIENEQVRBICNJTVBMSUVECi0gICAgIGNoYXJzZXQgQ0RBVEEg
I0lNUExJRUQ+Ci08IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgotPCFFTEVNRU5UIGJvZHkgKHAp
PgotPCFBVFRMSVNUIGJvZHkgb25sb2FkIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHAgKCNQ
Q0RBVEF8YnIpKj4KLTwhRUxFTUVOVCBiciBFTVBUWT4KLV0+Ci08aHRtbCB4bWxucz0naHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCc+Ci08aGVhZD4KLTx0aXRsZT5yZXBsYWNlV2hvbGVUZXh0
IHNhbXBsZTwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdzZWxm
eGh0bWwuanMnPjwvc2NyaXB0PjxzY3JpcHQgY2hhcnNldD0nVVRGLTgnIHR5cGU9J3RleHQvamF2
YXNjcmlwdCcgc3JjPSdub2RlZ2V0ZmVhdHVyZTA0LmpzJz48L3NjcmlwdD48c2NyaXB0IHR5cGU9
J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsg
fTwvc2NyaXB0PjwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotPHA+YmFy
PC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljNWMyOWNkZDk5N2JhZTkxYmMwYzVh
Yjc5NDA1YjgwMTI2ODMzY2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29u
dGVudDE1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJTGluZSAxMjE6IFR5cGVFcnJvcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE1LmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE1LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTQ2N2EzYmM0
MTYyMGQzOTBlYzdkNGQ1ZDkyMjhiODg0MGM5MGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0dGV4dGNvbnRlbnQxNS5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0K
LS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwg
Ci0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFy
Y2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5p
dmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAg
IC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBA
cmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0
VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE1IjsKLSAgIH0KLQotdmFyIGRvY3NM
b2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAg
ICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZp
Z3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9h
ZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0
IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAg
cmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24g
c2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsK
LSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRo
cm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1
aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgibmFtZXNwYWNlQXdh
cmUiLCB0cnVlKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgiZXhwYW5kRW50
aXR5UmVmZXJlbmNlcyIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAot
ICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAn
dW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAg
IGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
ICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0
Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBp
cyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMg
bG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9u
b3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0
dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3Qg
dG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLS8qKgotKiAKLQlUaGUgbWV0aG9kIGdldFRleHRDb250ZW50IHJldHVybnMg
dGhlIHRleHQgY29udGVudCBvZiB0aGlzIG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50cy4KLQkKLQlJ
bnZva2UgdGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbGVtZW50IG5vZGUgd2l0
aCBuZXcgVGV4dCwgRW50aXR5UmVmZXJlbmNlcyAgCi0JQ0RBVEFTZWN0aW9uLCBQSSBhbmQgQ29t
bWVudCBub2RlcyBhbmQgY2hlY2sgaWYgdGhlIHZhbHVlIHJldHVybmVkIGlzIGEgc2luZ2xlIAot
CWNvbmNhdGVuYXRlZCBTdHJpbmcgd2l0aCBpdHMgY29udGVudC4gIAotCi0qIEBhdXRob3IgSUJN
Ci0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0
L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSov
Ci1mdW5jdGlvbiBub2RlZ2V0dGV4dGNvbnRlbnQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAg
IGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE1Iikg
IT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZh
ciB0eHQ7Ci0gICAgICB2YXIgY29tbWVudDsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIg
Y2RhdGE7Ci0gICAgICB2YXIgcGk7Ci0gICAgICB2YXIgdGV4dENvbnRlbnQ7Ci0gICAgICB2YXIg
YXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBp
ZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0
aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0
YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5v
cmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAgIHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9k
ZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVudCAi
KTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImJldGEiKTsKLSAg
ICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiUElUIiwiUElEYXRhICIp
OwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDRGF0YSIpOwotICAgICAg
YXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQodHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVs
ZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVu
ZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNkYXRh
KTsKLSAgICAgIHRleHRDb250ZW50ID0gZWxlbS50ZXh0Q29udGVudDsKLQotICAgICAgZG9jLm5v
cm1hbGl6ZURvY3VtZW50KCk7Ci0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVnZXR0ZXh0Y29udGVu
dDE1IiwiVGV4dCDOskNEYXRhIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlZ2V0dGV4dGNvbnRlbnQxNSgpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVu
dDE1LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE1LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmQzNmNiYTNj
M2RhMDkwY2JhZDc3NDdkMGU4OTFjNWYyNGI2OTQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlZ2V0dGV4dGNvbnRlbnQxNS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0
bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0
bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJ
VFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJ
VFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFF
TlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5v
dGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJG
aWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4
bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwK
LSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAg
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
YWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Jz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qg
c3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1i
ZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAg
ICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl
IgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlw
dCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVnZXR0ZXh0
Y29udGVudDE1LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2Fk
PSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+
Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4K
LSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlz
IGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgot
PCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0g
IDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZi
ZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVt
PkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5Q
ZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85
ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4g
RGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0
cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQg
TXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1
cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9y
ZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5Pjwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
Z2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjYjQxNDRkMDVmZjA4ZDcyZThlOTg0YWExMTMxNTQ4NjRiODExYTRi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNgotU3Rh
dHVzCWVycm9yCi1NZXNzYWdlCUxpbmUgMTIzOiBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcyBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNi5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQxZjdjODQxOWU4ZDExNTY0MjA4ODQ5NTg4
NjhmYWFkNjE1NWQ5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOC
wqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMg
SW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1m
b3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1S
aWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LC
riBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQg
d2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9j
b3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRz
IFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRp
ZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJl
dHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9u
b2RlZ2V0dGV4dGNvbnRlbnQxNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7
Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVz
dCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlv
bnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4g
IE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQg
dGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVy
aW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAg
IHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8v
ICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAg
ICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAg
c2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAg
ICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0
cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCByZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQg
b2YgdGhpcyBub2RlIGFuZCBpdHMgZGVzY2VuZGFudHMuCi0JCi0JSW52b2tlIHRoZSBtZXRob2Qg
Z2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRG9jdW1lbnRGcmFnbWVudCBub2RlIHdpdGggbmV3IFRl
eHQsIEVudGl0eVJlZmVyZW5jZXMgIAotCUNEQVRBU2VjdGlvbiwgUEkgYW5kIENvbW1lbnQgbm9k
ZXMgYW5kIGNoZWNrIGlmIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhIHNpbmdsZSAKLQljb25jYXRl
bmF0ZWQgU3RyaW5nIHdpdGggaXRzIGNvbnRlbnQuICAKLQotKiBAYXV0aG9yIElCTQotKiBAYXV0
aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9N
LUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI05vZGUzLXRleHRDb250ZW50Ci0qLwotZnVuY3Rp
b24gbm9kZWdldHRleHRjb250ZW50MTYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVj
a0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlZ2V0dGV4dGNvbnRlbnQxNiIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxl
bTsKLSAgICAgIHZhciBlbGVtQ2hpbGQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGNvbW1l
bnQ7Ci0gICAgICB2YXIgZW50UmVmOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHBpOwot
ICAgICAgdmFyIHRleHRDb250ZW50OwotICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9
IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVs
ZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvRE9NL1Rlc3QiLCJkb20zOmVsZW0iKTsKLSAgICAg
IHR4dCA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiVGV4dCAiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2Mu
Y3JlYXRlQ29tbWVudCgiQ29tbWVudCAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRp
dHlSZWZlcmVuY2UoImJldGEiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0
cnVjdGlvbigiUElUIiwiUElEYXRhICIpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFT
ZWN0aW9uKCJDRGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQo
dHh0KTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKGNvbW1lbnQpOwot
ICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQg
PSBlbGVtLmFwcGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFn
LmFwcGVuZENoaWxkKGVsZW0pOwotICAgICAgZG9jLm5vcm1hbGl6ZURvY3VtZW50KCk7Ci0gICAg
ICB0ZXh0Q29udGVudCA9IGRvY0ZyYWcudGV4dENvbnRlbnQ7Ci0KLSAgICAgIGFzc2VydEVxdWFs
cygibm9kZWdldHRleHRjb250ZW50MTYiLCJUZXh0IM6yQ0RhdGEiLHRleHRDb250ZW50KTsKLSAg
ICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29u
dGVudDE2KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZWdldHRleHRjb250ZW50MTYueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTYueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGRmZWZjMTVlYjRlZjAxZmIzZmVkMWNiZDg1ODY0ZTQ1NTkxZDFjZjkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE2LnhodG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJ
REFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg
U3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEg
IiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2ls
b24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04g
bm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9u
MiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENE
QVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHht
bG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAj
SU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
IENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0
YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0g
VGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAw
MS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRp
dGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJz
ZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ibm9kZWdldHRleHRjb250ZW50MTYuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2
YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0
PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0i
aHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdh
cmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2
LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFz
LCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93
d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9s
ZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2Ug
bnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2Vj
dGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2Rl
PlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zh
cj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxl
bT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2Rl
PkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+
JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1
MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywg
dGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFs
dGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9y
PC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0i
WWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2Vt
PgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVj
aWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255
bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0dGV4dGNvbnRlbnQxNy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2YmViMzI3ZDgwZGVmMmM5Nzll
YjQ5MTFmYjM3NzcxMDMzMzIyY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0ZXh0
Y29udGVudDE3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVn
ZXR0ZXh0Y29udGVudDE3Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlub2RlZ2V0dGV4dGNvbnRl
bnQxNzogYXNzZXJ0RXF1YWxzIGZhaWxlZCwgYWN0dWFsICwgZXhwZWN0ZWQgzrIuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50
MTcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldHRleHRjb250
ZW50MTcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyNGJhNjAxYTkxZmU1MTU4
YThiMTMyN2M4MzMyMzhjZmI5YTU4NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXR0
ZXh0Y29udGVudDE3LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLQotLyoKLUNv
cHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNz
YWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25z
b3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5
KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0g
ICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4g
dXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7
Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwzL2NvcmUvbm9kZWdldHRleHRjb250ZW50MTciOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9
IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5p
bmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlv
biBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlz
IHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29t
cGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQg
d2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBh
Z2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAv
LwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhj
ZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LQlJbnZva2UgdGhlIG1ldGhvZCBnZXRUZXh0Q29udGVudCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVu
Y2Ugbm9kZSBhbmQgY2hlY2sgaWYgdGhlIAotCXZhbHVlIHJldHVybmVkIGlzIHRoZSBFbnRpdHlS
ZWZlcmVuY2UncyBjb250ZW50LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2RlZ2V0dGV4
dGNvbnRlbnQxNygpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgIm5vZGVnZXR0ZXh0Y29udGVudDE3IikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIg
dGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50
RWxlbWVudDsKLQotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0
YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAg
ICAgIHRleHRDb250ZW50ID0gZW50UmVmLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVh
bHMoIm5vZGVnZXR0ZXh0Y29udGVudDE3IiwizrIiLHRleHRDb250ZW50KTsKLSAgICAgICAKLX0K
LQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVnZXR0ZXh0Y29udGVudDE3KCk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdl
dHRleHRjb250ZW50MTcueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZWdldHRleHRjb250ZW50MTcueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI3OWMyMmM0ZDFlNTg0ZGEwZGFmOWU4MzZkYzQ1YzFhNjM0Mzk0ZTMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVnZXR0ZXh0Y29udGVudDE3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08
IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+
Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+
Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5
OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24x
IFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0g
Im5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwn
Ci0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENE
QVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFU
VExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAot
ICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAg
IDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJ
TVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAg
IDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBj
b21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hl
bWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0
YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwu
anMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
bm9kZWdldHRleHRjb250ZW50MTcuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48
Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRp
bjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3Vw
PgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5
ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NE
QVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIg
JmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRo
IGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFy
eTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4K
LSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAz
PC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1l
bnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1
NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5j
b20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+
Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4K
LSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxw
aGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBT
b3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ry
b25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9j
b2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+
Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzk3ZmE4MzEwZDM3ZGVlMDEwYmU1YzQ5MTc5MDY2NTE3
ZThiMzFlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTExLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMQot
U3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZWluc2VydGJlZm9yZTExLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlOGE4YjllYzJjMjA0MGRiMTgyZDExYjZjMWRjODlkZmQ4MjQ1NDQyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUg
KzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENv
bnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9w
ZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNz
LCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBk
aXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUg
Ci1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMu
b3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSov
Ci0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3Qu
Ci0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9u
IGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEiOwotICAgfQotCi12
YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8g
ICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3Jl
Ci0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUg
bm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1
bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAg
ICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8v
ICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1m
dW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0g
ICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVy
LCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25m
aWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NM
b2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0g
ICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0
aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBz
dGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxv
YWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMg
Y2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUg
ZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRl
ZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLS8qKgotKiAKLQotCi0KLQlVc2luZyBpbnNlcnRCZWZvcmUgb24gYSBEb2N1bWVudEZy
YWdtZW50IG5vZGUgYXR0ZW1wdCB0byBpbnNlcnQgYSBjaGlsZCBub2RlcyBiZWZvcmUKLQlvdGhl
ciBwZXJtaXNzaWJsZSBub2RlcyBhbmQgdmVyaWZ5IHRoZSBjb250ZW50cy9uYW1lIG9mIGVhY2gg
aW5zZXJ0ZWQgbm9kZS4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0q
IEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0
MDQwNy9jb3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUxMSgp
IHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwg
Im5vZGVpbnNlcnRiZWZvcmUxMSIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAg
ICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZh
ciBjb21tZW50OwotICAgICAgdmFyIHR4dDsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBl
UmVmOwotICAgICAgdmFyIGluc2VydGVkOwotICAgICAgdmFyIGluc2VydGVkVmFsOwotICAgICAg
dmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgZG9jRnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7
Ci0gICAgICBlbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCIsImJvZHkiKTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVj
dGlvbigiUElUYXJnZXQiLCJQSURhdGEiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29t
bWVudCgiQ29tbWVudCIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7
Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEQVRBIik7Ci0gICAgICBl
UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYWxwaGEiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGVsZW0pOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IGRvY0ZyYWcuYXBwZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcu
YXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBl
bmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQo
Y2RhdGEpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZVJlZik7
Ci0gICAgICBpbnNlcnRlZCA9IGRvY0ZyYWcuaW5zZXJ0QmVmb3JlKGNvbW1lbnQscGkpOwotICAg
ICAgaW5zZXJ0ZWRWYWwgPSBpbnNlcnRlZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5v
ZGVpbnNlcnRiZWZvcmUxMV9Db21tZW50IiwiQ29tbWVudCIsaW5zZXJ0ZWRWYWwpOwotICAgICAg
IGluc2VydGVkID0gZG9jRnJhZy5pbnNlcnRCZWZvcmUodHh0LGNvbW1lbnQpOwotICAgICAgaW5z
ZXJ0ZWRWYWwgPSBpbnNlcnRlZC5kYXRhOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNl
cnRiZWZvcmUxMV9UZXh0IiwiVGV4dCIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0g
ZG9jRnJhZy5pbnNlcnRCZWZvcmUoY2RhdGEsdHh0KTsKLSAgICAgIGluc2VydGVkVmFsID0gaW5z
ZXJ0ZWQuZGF0YTsKLQotICAgICAgYXNzZXJ0RXF1YWxzKCJub2RlaW5zZXJ0YmVmb3JlMTFfQ0RB
VEEiLCJDREFUQSIsaW5zZXJ0ZWRWYWwpOwotICAgICAgIGluc2VydGVkID0gZG9jRnJhZy5pbnNl
cnRCZWZvcmUoZVJlZixjZGF0YSk7Ci0gICAgICBpbnNlcnRlZFZhbCA9IGluc2VydGVkLm5vZGVO
YW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVpbnNlcnRiZWZvcmUxMV9FbnQxIiwiYWxw
aGEiLGluc2VydGVkVmFsKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgIG5vZGVpbnNlcnRiZWZvcmUxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRtbCBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTEueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNGFhNjgzNzM4NWUwMDAzMzNkNmJjNWM0ODExODY3
OTQ2YWQ1ZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxMS54aHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/
VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9E
VEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwh
RU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwh
RU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8
IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0g
ICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0g
ICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElF
RAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENE
QVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxu
czp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHht
bG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9Q
SXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElF
RD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9j
YXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVpbnNlcnRiZWZvcmUxMS5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQyZjNlNjM1NDc1
MDdlZTVkYTJkZjM2ZWVkMTViNGNjMmZkNTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
aW5zZXJ0YmVmb3JlMTUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBA
Ci1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUv
bm9kZWluc2VydGJlZm9yZTE1Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmMzcxNmVhMTlkNGFmNzE3ZGI2NGExYjA2MzVlNDU5NTkw
NWUzZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNlcnRiZWZvcmUxNS5qcworKysg
L2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVpbnNlcnRi
ZWZvcmUxNSI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRl
ciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0
aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8v
Ci0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJv
bm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwg
dGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5
IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0
YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0
ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAg
YnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQg
PSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19z
dGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChl
eCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAg
ICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAg
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFj
aCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4g
ZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAg
IHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9k
eSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsK
LSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0g
J2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAotCUEgTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSIGlzIHJhaXNlZCBpZiB0aGUgbm9kZSBpcyByZWFkLW9ubHkuCi0JCi0JVXNpbmcg
aW5zZXJ0QmVmb3JlIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0dGVtcHQgdG8gaW5z
ZXJ0IEVsZW1lbnQsIFRleHQsCi0JQ29tbWVudCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZCBD
REFUQVNlY3Rpb24gbm9kZXMgYmVmb3JlIGFuIGVsZW1lbnQgY2hpbGQKLQlhbmQgdmVyaWZ5IGlm
IGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRocm93bi4KLQotKiBAYXV0aG9yIElC
TQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
NC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTk1MjI4MDcyNwotKi8KLWZ1
bmN0aW9uIG5vZGVpbnNlcnRiZWZvcmUxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNo
ZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVpbnNlcnRiZWZvcmUxNSIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBlbGVt
Q2hpbGQ7Ci0gICAgICB2YXIgdHh0OwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgY29tbWVu
dDsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciBpbnNlcnRlZDsK
LSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMu
ZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAg
IH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBl
bnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgZWxlbUNo
aWxkID0gZW50UmVmLmZpcnN0Q2hpbGQ7Ci0KLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRB
U2VjdGlvbigiQ0RBVEFTZWN0aW9uIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsK
LQkJdHJ5IHsKLSAgICAgICAgICAgIGluc2VydGVkID0gZW50UmVmLmluc2VydEJlZm9yZShjZGF0
YSxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNz
KTsKLQl9Ci1waSA9IGRvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRh
dGEiKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAg
ICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0QmVmb3JlKHBpLGVsZW1DaGlsZCk7Ci0gICAgICAg
IH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1
bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzIiLHN1Y2Nlc3MpOwotCX0KLWNvbW1lbnQgPSBkb2Mu
Y3JlYXRlQ29tbWVudCgiQ29tbWVudCIpOwotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7
Ci0JCXRyeSB7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IGVudFJlZi5pbnNlcnRCZWZvcmUoY29t
bWVudCxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNz
ID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9
Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNj
ZXNzKTsKLQl9Ci10eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIAotCXsK
LQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRS
ZWYuaW5zZXJ0QmVmb3JlKHR4dCxlbGVtQ2hpbGQpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7
Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5j
b2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUl80IixzdWNjZXNzKTsKLQl9Ci1lbGVtID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImJvZHkiKTsKLSAgICAgIAotCXsKLQkJc3VjY2Vz
cyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgaW5zZXJ0ZWQgPSBlbnRSZWYuaW5zZXJ0
QmVmb3JlKGVsZW0sZWxlbUNoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAg
c3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3
KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJf
NSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBu
b2RlaW5zZXJ0YmVmb3JlMTUoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWluc2VydGJlZm9yZTE1LnhodG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2ZjBkMDBiOWNhMTYzNzFlZmMwMmY4ZTQwMWViNDVkODU3ZjQxZGMx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMTUueGh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZ
TEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1M
IDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBh
bHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBn
YW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkg
ZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RB
VElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBk
aXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1Q
TElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENE
QVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQg
UElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgot
PCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgi
Lz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJub2RlaW5zZXJ0YmVmb3JlMTUuanMiLz48c2NyaXB0IHR5cGU9J3RleHQv
amF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2Ny
aXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1h
cmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3Vw
PjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFs
bGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5
bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVu
Y2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRB
U2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxj
b2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0g
IDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxj
b2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2
YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85
ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmlu
ZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3
LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29u
bm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45
NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIg
Y2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwv
cD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8
L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBT
cGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNy
b255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMGUxNzU0ZjdhOTJjZmVlODk0MTky
OGI0ZWY2YjE3YjlhNzdmMWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDEyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVj
aGlsZDEyCi1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0ZTE4YTIyNzFlOGFjOWU4NjliYzFmOWFmNWQxNzExNjM3ODk4Yjg1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEyIjsKLSAgIH0K
LQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8K
LS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJl
Zm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUg
YXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAg
ZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAg
ICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5
Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0v
LwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcn
OwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVp
bGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRl
Q29uZmlndXJlZEJ1aWxkZXIoKTsKLSAgICAgICBzZXRJbXBsZW1lbnRhdGlvbkF0dHJpYnV0ZSgi
bmFtZXNwYWNlQXdhcmUiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAK
LSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0g
J3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAg
ICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAg
ICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VT
dGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNh
dGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3Vz
IGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJv
bm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3Rh
dHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0
IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2Rv
Y3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCByZW1vdmVDaGlsZCByZW1vdmVzIHRo
ZSBjaGlsZCBub2RlIGluZGljYXRlZCBieSBvbGRDaGlsZCBmcm9tIHRoZSBsaXN0IAotCW9mIGNo
aWxkcmVuLCBhbmQgcmV0dXJucyBpdC4gCi0KLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBE
b2N1bWVudEZyYWdtZW50IG5vZGUgYXR0ZW1wdCB0byByZW1vdmUgYSBuZXcgRW50aXR5UmVmZXJl
bmNlIG5vZGUuCi0gICAgICAgIEFsc28gYXR0ZW1wdCB0byByZW1vdmUgdGhlIGRvY3VtZW50IGZy
YWdtZW50IG5vZGUgZnJvbSB0aGUgRW50aXR5UmVmZXJlbmNlLiAgVmVyaWZ5IHRoYXQgYSAKLSAg
ICAgICAgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIChFbnRpdHlSZWZlcmVuY2Ugbm9kZSBp
cyByZWFkLW9ubHkpIG9yIGEgTk9UX0ZPVU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJ
Qk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIw
MDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwot
ZnVuY3Rpb24gbm9kZXJlbW92ZWNoaWxkMTIoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihj
aGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxMiIpICE9IG51bGwp
IHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvY0ZyYWc7Ci0gICAgICB2YXIgZVJl
ZjsKLSAgICAgIHZhciByZW1vdmVkRVJlZjsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgdmFyIHJlbW92ZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0g
ICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NS
ZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQxIik7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZG9jRnJhZy5hcHBlbmRDaGlsZChlUmVmKTsKLSAgICAgIHJlbW92
ZWRDaGlsZCA9IGRvY0ZyYWcucmVtb3ZlQ2hpbGQoZVJlZik7Ci0gICAgICByZW1vdmVkRVJlZiA9
IGRvY0ZyYWcuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0TnVsbCgibm9kZXJlbW92ZWNoaWxk
MTIiLHJlbW92ZWRFUmVmKTsKLSAgICAKLSAgICAgIHRyeSB7Ci0gICAgICByZW1vdmVkQ2hpbGQg
PSBlUmVmLnJlbW92ZUNoaWxkKGRvY0ZyYWcpOwotICAgICAgCi0gICAgICB9IGNhdGNoIChleCkg
ewotCQkgIGlmICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcpIHsgICAgICAKLSAgICAg
ICBzd2l0Y2goZXguY29kZSkgewotICAgICAgIGNhc2UgLyogTk9UX0ZPVU5EX0VSUiAqLyA4IDoK
LSAgICAgICBicmVhazsKLSAgICAgIGNhc2UgLyogTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJS
ICovIDcgOgotICAgICAgIGJyZWFrOwotICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgdGhy
b3cgZXg7Ci0gICAgICAgICAgfQotICAgICAgIH0gZWxzZSB7IAotICAgICAgIHRocm93IGV4Owot
ICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTIoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxMi54aHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM2ZWQ5MmYwM2JhNTRhZWM4MjdkYjc4NGY2MDU2
ZDkyMzQ5NDk0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTIueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3ZlY2hpbGQxMi5qcyIvPjxzY3JpcHQgdHlw
ZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgp
OyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxz
dHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+
Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGgg
QXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1h
cnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0
eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNl
bnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9u
Zz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9O
YW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1
NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8u
Y29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9u
Zz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1
cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5v
IiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3gg
MjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0
dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5K
ZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgot
ICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRs
ZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+
RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNv
bXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4
NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZlNTZhNmM2YTA2MzIw
MDg2NTE1MGZkZTg4YzgzZjk0ZjUyYTRhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
bW92ZWNoaWxkMTMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1U
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9k
ZXJlbW92ZWNoaWxkMTMKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXR4dE5vdE51bGw6IGFzc2Vy
dE5vdE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDZjODBmZmI0YTY1MmQ5MDJkYTJkMmRmZjUxNzY4NjdmZTk2MmYzZDQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICsw
LDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25z
b3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVh
biBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywg
S2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAot
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwot
Ci0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0Lgot
ICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBn
ZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTMiOwotICAgfQotCi12YXIg
ZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0v
LyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8g
Y29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVu
dCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBp
cyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAg
ICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5j
dGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0
cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBt
YXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1
cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2Fk
ZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAg
ICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdj
b21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFs
aXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQg
b24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFy
dGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRl
ZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hh
bmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhl
Y3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9
PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQot
Ci0KLS8qKgotKiAKLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ug
bm9kZSBhdHRlbXB0IHRvIHJlbW92ZSB0aGUgZmlyc3QgY2hpbGQgCi0Jb2YgdGhpcyBub2RlIGFu
ZCB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLgotCi0q
IEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBodHRwOi8vd3d3Lncz
Lm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjSUQtMTczNDgz
NDA2NgotKi8KLWZ1bmN0aW9uIG5vZGVyZW1vdmVjaGlsZDEzKCkgewotICAgdmFyIHN1Y2Nlc3M7
Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJlbW92ZWNoaWxkMTMi
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2
YXIgZVJlZjsKLSAgICAgIHZhciByZW1vdmVkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYs
ICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJl
bmNlKCJhbHBoYSIpOwotICAgICAgdHh0ID0gZVJlZi5maXJzdENoaWxkOwotCi0gICAgICBhc3Nl
cnROb3ROdWxsKCJ0eHROb3ROdWxsIix0eHQpOwotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0J
CXRyeSB7Ci0gICAgICAgICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZCh0eHQpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVtb3ZlY2hpbGQxMygpOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDEz
LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGls
ZDEzLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTMxN2E0NjNlMTllOTZk
OWMxMjU0Njc5ZmI1NzVlN2I5ZmMwNTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVt
b3ZlY2hpbGQxMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmlj
dC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAi
JiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEg
IiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxw
aGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZp
bGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAg
IDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0
YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAg
ICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAg
ICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZ
IGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50
IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxu
cyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4K
LTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxu
czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAg
ICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3Rh
ZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0
PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDEzLmpz
Ii8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxl
dGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNj
b3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+
Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0
aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhp
cyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAm
dGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMs
ICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIK
LSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxz
dXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2Vt
PgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGly
ZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0
LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9u
Zz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1
cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQx
NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
bW92ZWNoaWxkMTQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
MjM1YmY0ZGZkYjAwZTI1ZTA4MThiMTZkMGQwY2FhNTg5NWY3OTYyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcGlO
b3ROdWxsOiBhc3NlcnROb3ROdWxsIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LmpzIGIvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwM2Q1YTE5MzNlZTk3NjVhMjljNTc1YmNiNWYwZjU5ZGQxYWZlZWExLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC5qcworKysgL2Rldi9udWxs
CkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQg
V2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5v
bG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQg
TWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhp
cyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2Ug
WzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0
cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0y
MDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmll
cyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAq
LwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0IjsK
LSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsK
LQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3
b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYg
dGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAg
ICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVz
Ci0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVk
aWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRl
c3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1
bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1l
bnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0g
Y3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAg
ICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykg
IT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0g
ICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0g
ICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBh
Z2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAg
CWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRo
b2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9u
b3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5j
aHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ug
c3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0
ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgr
K2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVtb3ZlQ2hpbGQgb24gYSBuZXcgRW50
aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byByZW1vdmUgaXRzIGxhc3QgUHJvY2Vzc2luZ0lu
c3RydWN0aW9uIAotCWNoaWxkIG5vZGUgYW5kIHZlcmlmeSBpZiBhIE5PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERl
bGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNv
cmUtMjAwNDA0MDcvY29yZSNJRC0xNzM0ODM0MDY2Ci0qLwotZnVuY3Rpb24gbm9kZXJlbW92ZWNo
aWxkMTQoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1
aWxkZXIsICJub2RlcmVtb3ZlY2hpbGQxNCIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9j
OwotICAgICAgdmFyIHJlbW92ZWQ7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBwaTsKLSAg
ICAgIHZhciBlbnROYW1lOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIGVSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7
Ci0gICAgICBwaSA9IGVSZWYubGFzdENoaWxkOwotCi0gICAgICBhc3NlcnROb3ROdWxsKCJwaU5v
dE51bGwiLHBpKTsKLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAg
ICAgcmVtb3ZlZCA9IGVSZWYucmVtb3ZlQ2hpbGQocGkpOwotICAgICAgICB9Ci0JCWNhdGNoKGV4
KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBl
eC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9B
TExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICBub2RlcmVtb3ZlY2hpbGQxNCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sIGIvTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZW1vdmVjaGlsZDE0LnhodG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDg0ZjdkNzQ1ZWZkMjdjNDZlZDg1NzVmNjc3ZDgyZjA4
NzY0MzZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNC54aHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVT
VC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5U
SVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5U
SVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVO
VElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8
IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElP
TiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAg
ICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRB
ICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4
c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24g
Q0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRh
cmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4K
LV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRp
b249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZW1vdmVjaGlsZDE0LmpzIi8+PHNjcmlwdCB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08
L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9u
Zz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAg
PHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUu
IERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhh
IFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVm
ZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBD
REFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgot
ICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20i
PgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgot
ICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgot
ICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlk
PSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJ
cnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDov
L3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkg
T2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxz
dXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAw
MDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0
ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8
L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3ZlY2hpbGQxNS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDJlMGMyYmE4YmY4ZWNhNjFh
ODUyZjk1NmYwYzgxZDViYjhjOTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVtb3Zl
Y2hpbGQxNS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVt
b3ZlY2hpbGQxNQotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZWxlbU5vdE51bGw6IGFzc2VydE5v
dE51bGwgZmFpbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTUuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUz
YjNmN2NjOGUwODExYmI4MGIzZTdiNGNhOTkwNDlkZDA5NWM3ZDAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZW1vdmVjaGlsZDE1LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAg
QEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0
aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBS
ZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2Vp
byBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0K
LQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAg
ICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRU
YXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlbW92ZWNoaWxkMTUiOwotICAgfQotCi12YXIgZG9j
c0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlz
IGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAg
ICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29u
ZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBs
b2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBz
ZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAg
ICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlv
biBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkg
ewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkg
dGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVk
QnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQg
Kz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAg
aWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21w
bGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXph
dGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24g
dGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVk
IGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBk
b2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdl
ZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0
ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAx
KSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0K
LS8qKgotKiAKLQlVc2luZyByZW1vdmVDaGlsZCBvbiBhIG5ldyBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZSBhdHRlbXB0IHRvIHJlbW92ZSBhbiBFbGVtZW50IGNoaWxkIAotCWFuZCB2ZXJpZnkgaWYgYSBO
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMgdGhyb3duLiAKLQotKiBAYXV0aG9yIElCTQot
KiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9S
RUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTE3MzQ4MzQwNjYKLSovCi1mdW5j
dGlvbiBub2RlcmVtb3ZlY2hpbGQxNSgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNr
SW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZW1vdmVjaGlsZDE1IikgIT0gbnVsbCkgcmV0
dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIgZVJlZjsKLSAgICAgIHZhciBlbGVtOwotICAg
ICAgdmFyIGVudE5hbWU7Ci0gICAgICB2YXIgcmVtb3ZlZDsKLSAgICAgIAotICAgICAgdmFyIGRv
Y1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykg
ewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQo
ZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlUmVmID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZW50NCIpOwotICAgICAgZWxlbSA9IGVSZWYuZmlyc3RDaGlsZDsKLQotICAg
ICAgYXNzZXJ0Tm90TnVsbCgiZWxlbU5vdE51bGwiLGVsZW0pOwotCi0JewotCQlzdWNjZXNzID0g
ZmFsc2U7Ci0JCXRyeSB7Ci0gICAgICAgICAgICByZW1vdmVkID0gZVJlZi5yZW1vdmVDaGlsZChl
bGVtKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2Yo
ZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRU
cnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlbW92ZWNoaWxkMTUoKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVt
b3ZlY2hpbGQxNS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVtb3ZlY2hpbGQxNS54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE0ODYy
N2E1YzExYmUyNjdlMGRjYTM0ZDA1OGI4NGRiOTA1MmM1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlbW92ZWNoaWxkMTUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBA
Ci08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBo
dG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInho
dG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5U
SVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5U
SVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwh
RU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJu
b3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24y
RmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAg
eG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1s
Ci0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAg
ICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNU
IHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVt
YmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAg
ICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5j
ZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxl
PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3Jp
cHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVtb3Zl
Y2hpbGQxNS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDE4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2RlcmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzZDlmODQxODhkZjFhMDFkOTRlMDNiYzUyNDc2NzUxYjMyOTEyMTVkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE4Ci1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQxOC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMTguanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMGI2NzJiYzQ4
ZDlhN2M1NjA5YzY2ZjY4ZmI5YzBjMWE5MjI0OGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQxOC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0KLS8q
Ci1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0o
TWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2gg
Q29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVy
c2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
Ci10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1
bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8q
KgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0
dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJ
KCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOCI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVk
ID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVu
bmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0
aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcg
aXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBj
b21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNl
ZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVw
UGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAg
IC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBl
eGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVy
KCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0g
bnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAg
ICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVs
b2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsK
LSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJy
b3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwot
ICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29t
cGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0
VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50
IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNo
IGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1
bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0q
IAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBhdHRlbXB0
IHRvIHJlcGxhY2UgYSBDREFUQVNlY3Rpb24gbm9kZSB3aXRoIAotCWEgRW50aXR5UmVmZXJlbmNl
IGFuZCB2aWNlIHZlcnNhIHZlcmlmeSB0aGUgZGF0YSBvZiB0aGUgcmVwbGFjZWQgbm9kZXMuCi0K
LSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4
ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMTgoKSB7Ci0gICB2YXIgc3VjY2Vz
czsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxk
MTgiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NGcmFnOwot
ICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0YTsKLSAgICAgIHZhciByZXBsYWNlZENE
YXRhOwotICAgICAgdmFyIHJlcGxhY2VkRXJlZjsKLSAgICAgIHZhciBjZGF0YU5hbWU7Ci0gICAg
ICB2YXIgZXJlZk5hbWU7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAg
dmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZp
bmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9
IGxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBkb2NGcmFnID0gZG9jLmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgIGNkYXRhID0gZG9jLmNyZWF0ZUNEQVRBU2Vj
dGlvbigiQ0RBVEFTZWN0aW9uIik7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVm
ZXJlbmNlKCJhbHBoYSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hp
bGQoZW50UmVmKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBkb2NGcmFnLmFwcGVuZENoaWxkKGNk
YXRhKTsKLSAgICAgIHJlcGxhY2VkQ0RhdGEgPSBkb2NGcmFnLnJlcGxhY2VDaGlsZChlbnRSZWYs
Y2RhdGEpOwotICAgICAgY2RhdGFOYW1lID0gcmVwbGFjZWRDRGF0YS5ub2RlVmFsdWU7Ci0KLSAg
ICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE4XzEiLCJDREFUQVNlY3Rpb24iLGNk
YXRhTmFtZSk7Ci0gICAgICAgcmVwbGFjZWRFcmVmID0gZG9jRnJhZy5yZXBsYWNlQ2hpbGQoY2Rh
dGEsZW50UmVmKTsKLSAgICAgIGVyZWZOYW1lID0gcmVwbGFjZWRFcmVmLm5vZGVOYW1lOwotCi0g
ICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQxOF8yIiwiYWxwaGEiLGVyZWZOYW1l
KTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBs
YWNlY2hpbGQxOCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTgueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDFkNzY3YjllYWY4NGUyYWNlZDMxY2E1OWNmYTM5MTQzNmQzYzJlM2EuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOC54aHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURB
VEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0
cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICIm
Izk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICIm
Izk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9u
ICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5v
dGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIg
U1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFU
QSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxu
czpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgot
ICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJ
RUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/
PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRo
aXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv
WE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2
PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRs
ZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2Vs
ZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Im5vZGVyZXBsYWNlY2hpbGQxOC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0Jz5mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9o
ZWFkPjxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRw
Oi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQg
TWFydGluPC9zdHJvbmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRl
eGFzIDk4NTUxPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51
c2EuY29tIj4KLSAgPGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwot
PCFbQ0RBVEFbVGhpcyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1i
ZXIgMiAmZW50MjtdXT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9u
IHdpdGggYSByZWZlcmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2Vj
cmV0YXJ5PC9jb2RlPgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgot
ICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVN
UDAwMDM8L2VtPgotICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVw
YXJ0bWVudCBNYW5hZ2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50
NDs8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4
c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhh
cyA5ODU1MzwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZp
c3RhLmNvbSI+Ci0gIDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0
cm9uZz4KLSAgPGNvZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwv
c3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0i
WSZhbHBoYTsiIGlkPSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PjI3IFNvdXRoIFJvYWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxw
IHhtbG5zOmVtcDI9Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0g
IDxzdHJvbmc+Um9iZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxp
c3Q8L2NvZGU+Ci0gIDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
bj0iWWVzIj4xODIxIE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgot
IDwvcD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTktZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGEyZDM2MWU5MTA2ZDRkMWQ4MGU1MTJiY2Rl
YzU4MGIzYjBlNzQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDE5Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRiOWExN2RmOTdmNDNkMDM1MmYzYmQ4YWQxYzVjOTM0MDhmMzViMWUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOS5qcworKysgL2Rldi9udWxsCkBAIC0x
LDExOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBX
ZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwg
RXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVt
YXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3Jr
IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGlu
IHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIz
MQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUg
dGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVu
Y3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQxOSI7Ci0gICB9
Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8v
Ci0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBi
ZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJl
IGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAg
IGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8g
ICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVs
eQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0Lgot
Ly8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5n
JzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1
aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0
ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0g
ICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAg
ZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAg
ICAKLSAgICAgICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRj
aEluaXRpYWxpemF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbiB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBs
b2FkIHN0YXJ0ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25v
dXMgbG9hZGVkIGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1
cyBpcyBjaGFuZ2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0
byBiZSBleGVjdXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2Nz
TG9hZGVkID09IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotLyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIERvY3VtZW50RnJh
Z21lbnQgbm9kZSBhdHRlbXB0IHRvIHJlcGxhY2UgYW4gRWxlbWVudCBub2RlIHdpdGggCi0JaXRz
IEVudGl0eVJlZmVyZW5jZSBjaGlsZCB2ZXJpZnkgdGhlIG5vZGVOYW1lIG9mIHRoZSByZXBsYWNl
ZCBub2RlLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2Nv
cmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDE5KCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJl
cGxhY2VjaGlsZDE5IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZG9jRnJhZzsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBy
ZXBsYWNlZDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIGRv
Y0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgZWxlbSA9IGRvYy5j
cmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsK
LSAgICAgIGVudFJlZiA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImFscGhhIik7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5k
ZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICByZXBsYWNlZCA9IGRv
Y0ZyYWcucmVwbGFjZUNoaWxkKGVudFJlZixlbGVtKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFj
ZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDE5Iiwi
ZG9tMzpwIixub2RlTmFtZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMTkoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0bWwgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDE5LnhodG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMjViMmNiM2IzYmU3MGVkNzk0YmUxZjAyMDMwYjM2
ZDE5MzQ3M2U3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMTkueGh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48
P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8
IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgotICAg
PCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsiPgot
ICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9U
QVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAot
ICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJ
RUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAgeG1s
bnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0
aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNl
U2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/
UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJ
RUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0n
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMTkuanMiLz48c2NyaXB0IHR5
cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3Qo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4
bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8
c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2Rl
PgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRo
IEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1z
dGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5N
YXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRp
dHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFj
ZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJv
bmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4
NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJv
LmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJv
bmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9z
dXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJO
byIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94
IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJo
dHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+
SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4K
LSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0
bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVt
PkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5D
b21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1h
bGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5
ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIy
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxZGFmMmZlZjM1
ZWRiMzczOTVmNDQ5NzNjODgxNTUyMjZiYjdiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXJlcGxhY2VjaGlsZDIyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBA
QAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQyMgotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMgYi9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIyLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDNmNDIzZjczNWYzZjFiMjVjYTVlNGNiMzYwODI1NjMw
M2E3NDVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjIuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0y
MDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl
IG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3Jt
YXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVz
ZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2Fy
ZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAK
LQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQt
c29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0
IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0
ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMjIiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxk
ZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVz
dGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0v
LwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hy
b25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2Us
IHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRp
b24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9k
eSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VT
dGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMg
dGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAg
IGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVk
ID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9m
KHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsK
LSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2go
ZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8g
ICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVh
Y2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVu
IGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAg
ICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJv
ZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7
Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9
ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hpbGQg
b24gYSBuZXcgRW50aXR5UmVmZXJlbmNlIG5vZGUgYXR0ZW1wdCB0byByZXBsYWNlIGFuIEVudGl0
eVJlZmVyZW5jZSBub2RlIHdpdGggCi0JaXRzIEVsZW1lbnQgcGFyZW50LCB3aXRoIGl0c2VsZiBh
bmQgdmljZSB2ZXJzYSB2ZXJpZnkgaWYgYSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaXMg
dGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxpbWEKLSogQHNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2Nv
cmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGlsZDIyKCkgewotICAg
dmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXJl
cGxhY2VjaGlsZDIyIikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0gICAgICB2YXIg
ZW50UmVmTWFpbjsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZh
ciBhcHBlbmRlZENoaWxkOwotICAgICAgdmFyIHJlcGxhY2VkQ2hpbGQ7Ci0gICAgICAKLSAgICAg
IHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2Mg
PSBsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVh
dGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAg
ICAgIGVudFJlZk1haW4gPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAg
ICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0YSIpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAgICAgIAotCXsKLQkJc3Vj
Y2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWRDaGlsZCA9IGVudFJl
Zk1haW4ucmVwbGFjZUNoaWxkKGVsZW0sZW50UmVmKTsKLSAgICAgICAgfQotCQljYXRjaChleCkg
ewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXgu
Y29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJvd19OT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlJfMSIsc3VjY2Vzcyk7Ci0JfQotCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICByZXBsYWNlZENoaWxkID0gZW50UmVmTWFpbi5yZXBsYWNlQ2hpbGQo
ZW50UmVmLGVsZW0pOwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0g
KHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0J
CWFzc2VydFRydWUoInRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8yIixzdWNjZXNz
KTsKLQl9Ci0KLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJl
cGxhY2VkQ2hpbGQgPSBlbnRSZWZNYWluLnJlcGxhY2VDaGlsZChlbnRSZWZNYWluLGVudFJlZik7
Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNv
ZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgi
dGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSXzMiLHN1Y2Nlc3MpOwotCX0KLQotfQot
Ci0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDIyKCk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDIyLnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQyMi54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YzMjU0
ZTJjYWJhMzJiYjQwNTNkNzQ2NDljYzlmYTgzMDFhZWQwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDIyLnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBA
QAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUg
aHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4
aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVO
VElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVO
VElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8
IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAi
bm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9u
MkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAg
IHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBM
SUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRt
bAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAg
ICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElT
VCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgot
ICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElT
VCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51
bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0g
ICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFu
Y2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRs
ZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2Ny
aXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxh
Y2VjaGlsZDIyLmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxv
YWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2Fk
PSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+
Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4K
LSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5G
ZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9u
eW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+
RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlz
IGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgot
PCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5j
ZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0g
IDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxl
PSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZi
ZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxz
dHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8
L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNy
b255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVt
PkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5Q
ZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85
ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4g
RGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0
cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQg
TXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1
cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9y
ZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5Pjwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQxOGI3N2IzOGUzYmMxYzM3YWJhZjY2ZGNhZWFjMGQ5NGFlYjQ5ZjkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQyMy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMjMKLVN0YXR1cwlTdWNj
ZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDIzLmpzIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQyMy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMzMWFmYzlk
YzdlNTQwM2E4NWNmNDc1NGQ4NmJmYzRlZDJlNmExOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDIzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLQot
LyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAK
LShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJj
aCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2
ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0
aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAg
LyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEBy
ZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRV
UkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDIzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2Fk
ZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBy
dW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3Vy
YXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGlu
ZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRv
IGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFp
c2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0
VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAg
ICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93
IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxk
ZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYg
PSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAg
ICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHBy
ZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChk
b2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUn
OwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25F
cnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBj
b21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBz
ZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1l
bnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hp
Y2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgot
ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewot
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioK
LSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3IEVudGl0eVJlZmVyZW5jZSBub2RlIGF0
dGVtcHQgdG8gcmVwbGFjZSBhbiBFbGVtZW50LCBUZXh0LAotCUNvbW1lbnQsIFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiBhbmQgQ0RBVEFTZWN0aW9uIG5vZGVzIHdpdGggZWFjaCBvdGhlciBhbmQgaW4g
ZWFjaCBjYXNlCi0JdmVyaWZ5IGlmIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlzIHRo
cm93bi4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0
cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3Jl
I0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQyMygpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBs
YWNlY2hpbGQyMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGVu
dFJlZjsKLSAgICAgIHZhciB0eHQ7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBjb21tZW50
OwotICAgICAgdmFyIHBpOwotICAgICAgdmFyIGNkYXRhOwotICAgICAgdmFyIHJlcGxhY2VkOwot
ICAgICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkb20zOnAiKTsKLSAgICAgIGVudFJlZiA9IGRvYy5j
cmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4
dE5vZGUoIlRleHQiKTsKLSAgICAgIGNvbW1lbnQgPSBkb2MuY3JlYXRlQ29tbWVudCgiQ29tbWVu
dCIpOwotICAgICAgY2RhdGEgPSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24i
KTsKLSAgICAgIHBpID0gZG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0Iiwi
ZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsK
LSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFwcGVuZENoaWxkKHR4dCk7Ci0gICAgICBhcHBl
bmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZChjb21tZW50KTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBlbGVtLmFwcGVuZENoaWxkKHBpKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBlbGVtLmFw
cGVuZENoaWxkKGNkYXRhKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkg
ewotICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGNkYXRhLGVsZW0p
OwotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5j
b2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUo
InRocm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8xIixzdWNjZXNzKTsKLQl9Ci0KLQl7
Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50
UmVmLnJlcGxhY2VDaGlsZChwaSxjZGF0YSk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSXzIiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGNvbW1lbnQscGkpOwot
ICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2Rl
KSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRo
cm93X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUl8zIixzdWNjZXNzKTsKLQl9Ci0KLQl7Ci0J
CXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAgICAgICAgIHJlcGxhY2VkID0gZW50UmVm
LnJlcGxhY2VDaGlsZCh0eHQsY29tbWVudCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAg
ICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUg
PT0gNyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgidGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSXzQiLHN1Y2Nlc3MpOwotCX0KLQotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewot
ICAgICAgICAgICAgcmVwbGFjZWQgPSBlbnRSZWYucmVwbGFjZUNoaWxkKGVsZW0sdHh0KTsKLSAg
ICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9ICh0eXBlb2YoZXguY29kZSkg
IT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA3KTsKLQkJfQotCQlhc3NlcnRUcnVlKCJ0aHJv
d19OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlJfNSIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQot
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMjMoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMjMueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDIzLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNThhMWQyNTE2
M2ZkNWEzZmJhYzdkMTAxNDkzZDRhNTcxYWViMTdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMjMueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1s
Ci0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1s
MS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZ
IGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZ
IGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5U
SVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3Rh
dGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmls
ZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1s
bnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQK
LSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0g
ICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAg
ICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFj
cm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8
IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+
RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNw
YW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVy
IDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAg
ICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIK
LSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQg
Y2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNo
aWxkMjMuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENv
bXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9Imxv
YWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8
Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2Nh
dGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBD
REFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtD
REFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRv
IGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1
cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9Illl
cyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7
IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0
Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9u
Zz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29k
ZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3Jvbnlt
IHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0g
PC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1Q
MDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNv
bm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8
L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2
IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxs
YXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8v
d3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVy
czwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkw
LDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xh
c3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMu
IFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXJlcGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDlmODNlNzRiOTI2NzMzMWMxNzAzYmQyOGQxNmVmYzIxZjQ2ZmIwNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMAotU3RhdHVzCVN1Y2Nlc3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzAuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDMwLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNzM1OGY5MzQ3MjYz
YjgyN2E4ZTg4ODEzZTdhZTM3YzBiNzYzMmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzAuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotCi0vKgot
Q29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENv
bnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNp
dHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRl
ciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAot
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0v
TGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioK
LSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVy
biB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgp
IHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzAiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9
IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5p
bmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlv
biBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlz
IHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29t
cGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQg
d2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBh
Z2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAv
LwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhj
ZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigp
OwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51
bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAg
ICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9h
ZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NM
b2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9y
KGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBs
ZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVw
VGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBo
YXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBh
bGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5j
dGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAK
LQotCi0KLQlVc2luZyByZXBsYWNlQ2hpbGQgb24gYW4gRWxlbWVudCBub2RlIGF0dGVtcHQgdG8g
cmVwbGFjZSBhIG5ldyBFbGVtZW50IGNoaWxkIG5vZGUgd2l0aCAKLQluZXcgY2hpbGQgbm9kZXMg
YW5kIHZpY2UgdmVyc2EgYW5kIGluIGVhY2ggY2FzZSB2ZXJpZnkgdGhlIG5hbWUgb2YgdGhlIHJl
cGxhY2VkIG5vZGUuCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBA
c2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0
MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVwbGFjZWNoaWxkMzAoKSB7
Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJu
b2RlcmVwbGFjZWNoaWxkMzAiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAg
IHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2YXIgbmV3RWxlbWVudDsK
LSAgICAgIHZhciBuZXdUZXh0OwotICAgICAgdmFyIG5ld0NvbW1lbnQ7Ci0gICAgICB2YXIgbmV3
UEk7Ci0gICAgICB2YXIgbmV3Q2RhdGE7Ci0gICAgICB2YXIgbmV3RVJlZjsKLSAgICAgIHZhciBy
ZXBsYWNlZDsKLSAgICAgIHZhciBub2RlTmFtZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBh
cmVudCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
LCJ4aHRtbDpodG1sIik7Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4aHRtbDpoZWFkIik7Ci0gICAgICBuZXdFbGVt
ZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIs
InhodG1sOmJvZHkiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQo
b2xkQ2hpbGQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IHBhcmVudC5hcHBlbmRDaGlsZChuZXdF
bGVtZW50KTsKLSAgICAgIG5ld1RleHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAg
ICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3VGV4dCk7Ci0gICAgICBu
ZXdDb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3Q29tbWVudCk7Ci0gICAgICBuZXdQSSA9IGRv
Yy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oInRhcmdldCIsImRhdGEiKTsKLSAgICAgIGFw
cGVuZGVkQ2hpbGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQobmV3UEkpOwotICAgICAgbmV3Q2RhdGEg
PSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDZGF0YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9
IHBhcmVudC5hcHBlbmRDaGlsZChuZXdDZGF0YSk7Ci0gICAgICBuZXdFUmVmID0gZG9jLmNyZWF0
ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hpbGQgPSBwYXJlbnQu
YXBwZW5kQ2hpbGQobmV3RVJlZik7Ci0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hp
bGQobmV3RWxlbWVudCxvbGRDaGlsZCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVO
YW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF8xIiwieGh0bWw6
aGVhZCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChv
bGRDaGlsZCxuZXdFbGVtZW50KTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzIiLCJ4aHRtbDpib2R5
Iixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld1Rl
eHQsb2xkQ2hpbGQpOwotICAgICAgbm9kZU5hbWUgPSByZXBsYWNlZC5ub2RlTmFtZTsKLQotICAg
ICAgYXNzZXJ0RXF1YWxzKCJub2RlcmVwbGFjZWNoaWxkMzBfMyIsInhodG1sOmhlYWQiLG5vZGVO
YW1lKTsKLSAgICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQob2xkQ2hpbGQsbmV3
VGV4dCk7Ci0gICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3Nl
cnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMF80IiwiI3RleHQiLG5vZGVOYW1lKTsKLSAgICAg
ICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q29tbWVudCxvbGRDaGlsZCk7Ci0g
ICAgICBub2RlTmFtZSA9IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMo
Im5vZGVyZXBsYWNlY2hpbGQzMF81IiwieGh0bWw6aGVhZCIsbm9kZU5hbWUpOwotICAgICAgIHJl
cGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdDb21tZW50KTsKLSAgICAg
IG5vZGVOYW1lID0gcmVwbGFjZWQubm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9k
ZXJlcGxhY2VjaGlsZDMwXzYiLCIjY29tbWVudCIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2Vk
ID0gcGFyZW50LnJlcGxhY2VDaGlsZChvbGRDaGlsZCxuZXdQSSk7Ci0gICAgICBub2RlTmFtZSA9
IHJlcGxhY2VkLm5vZGVOYW1lOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hp
bGQzMF83IiwidGFyZ2V0Iixub2RlTmFtZSk7Ci0gICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVw
bGFjZUNoaWxkKG9sZENoaWxkLG5ld0NkYXRhKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQu
bm9kZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzgiLCIj
Y2RhdGEtc2VjdGlvbiIsbm9kZU5hbWUpOwotICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxh
Y2VDaGlsZChvbGRDaGlsZCxuZXdFUmVmKTsKLSAgICAgIG5vZGVOYW1lID0gcmVwbGFjZWQubm9k
ZU5hbWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZXJlcGxhY2VjaGlsZDMwXzkiLCJkZWx0
YSIsbm9kZU5hbWUpOwotICAgICAgIAotfQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewot
ICAgbm9kZXJlcGxhY2VjaGlsZDMwKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMC54aHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2RiNWNiYjEzM2ZhYWYyZWI0ZjEwNDNkMjFmYzQzNTA4Yjdk
YzdlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMwLnhodG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNU
LVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBY
SFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJ
VFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5U
SVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAg
ICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEg
I0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhz
aSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBD
REFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFy
Z2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgot
XT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53
My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlv
bj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVU
Ri04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJlcGxhY2VjaGlsZDMwLmpzIi8+PHNjcmlwdCB0eXBlPSd0
ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08
L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9u
Zz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAg
PHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9
IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUu
IERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJo
dHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhh
IFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVm
ZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBD
REFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgot
ICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVz
cGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwv
YWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20i
PgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgot
ICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgot
ICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlk
PSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJ
cnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDov
L3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkg
T2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxz
dXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9j
YXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAw
MDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0
ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92
YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8
L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzM2Y5MjkzMzU4MmE3MDU0
MjYxNWQxMjUwYTQ5MTBhNzQ5M2QwYTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBs
YWNlY2hpbGQzMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRl
c3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rl
cmVwbGFjZWNoaWxkMzMKLVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTc0YmU0NGQ0YjBhNzcxY2I3OTIwNDM2YzdhM2MyZDhhNjIxNjRi
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDMzLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTIwICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBX
b3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBU
ZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNz
IGFuZCBNYXRoZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVk
LiBUaGlzIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGlj
ZW5zZSBbMV0gaW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsx
XSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3
YXJlLTIwMDIxMjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVu
dGlmaWVzIHRoZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAot
ICAgICovCi1mdW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDMzIjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBidWlsZGVyID0g
bnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRlc3Rpbmcg
ZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLgotLy8KLS8v
ICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5bmNocm9ub3Vz
Ci0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3aXNlLCB0aGUg
c3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhjZXB0aW9uIGlz
IGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhlIGJvZHkgb2Yg
dGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQYWdlU3RhdHVz
ID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVhdGVzIHRlc3Qg
ZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwotICAgICBidWls
ZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xvYWRlZCA9IDA7
Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVvZih0aGlz
LmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAg
ICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZm
Iik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNoKGV4KSB7
Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAgICAgIHNl
dFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8vICAgVGhp
cyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBlYWNoIGFz
eWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hlbiBldmVy
eSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAgICAgdGhl
IHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBib2R5IG9m
IHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgewotICAg
IGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNpbmcgcmVwbGFjZUNoaWxkIG9uIGEg
ZGVmYXVsdCBBdHRyIG5vZGUgdG8gcmVwbGFjZSBpdHMgVGV4dCBDaGlsZCB3aXRoIGEgCi0JbmV3
IEVudGl0eVJlZmVyZW5jZSBOb2RlIGFuZCB2ZXJpZnkgdGhlIHZhbHVlIG9mIHRoZSByZXBsYWNl
ZCBjaGlsZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUg
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9j
b3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzMygpIHsKLSAg
IHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVy
ZXBsYWNlY2hpbGQzMyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFy
IGNoaWxkTGlzdDsKLSAgICAgIHZhciBlbGVtOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZh
ciBvbGRDaGlsZDsKLSAgICAgIHZhciBuZXdDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAg
ICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAg
ICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVm
ID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRvYyIsICJo
Y19zdGFmZiIpOwotICAgICAgbmV3Q2hpbGQgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJk
ZWx0YSIpOwotICAgICAgY2hpbGRMaXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIik7
Ci0gICAgICBlbGVtID0gY2hpbGRMaXN0Lml0ZW0oMyk7Ci0gICAgICBwYXJlbnQgPSBlbGVtLmdl
dEF0dHJpYnV0ZU5vZGUoImRpciIpOwotICAgICAgb2xkQ2hpbGQgPSBwYXJlbnQubGFzdENoaWxk
OwotCi0gICAgICByZXBsYWNlZCA9IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hp
bGQpOwotICAgICAgbm9kZVZhbHVlID0gcmVwbGFjZWQubm9kZVZhbHVlOwotCi0gICAgICBhc3Nl
cnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQzMyIsInJ0bCIsbm9kZVZhbHVlKTsKLSAgICAgICAK
LX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzMygp
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzMy54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzMueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3
OTkwYzE1ODA2NTU1ZWRlY2QxNWYzMjEwMWE4Y2ZhMjQ2M2E2N2QuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
My9jb3JlL25vZGVyZXBsYWNlY2hpbGQzMy54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICsw
LDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NU
WVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0g
ICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAg
PCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAg
PCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgot
ICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJM
SUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3Rh
dGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAg
ICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAj
SU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNU
IGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAg
ICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFU
VExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFU
VExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVu
dCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
JwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWlu
c3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwv
dGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+
PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVy
ZXBsYWNlY2hpbGQzMy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9u
bG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhp
cyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50Mjtd
XT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2Rl
PgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0g
IDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNv
ZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlk
PSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9
Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9i
ZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0g
IDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIx
IE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0MzVlZTRkNTg2Y2YwMDk4NmM5MDFlZWQ0ZjE0Yzk0NzNiYzczZWJj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIw
MDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0Ci1TdGF0dXMJ
U3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2RlcmVwbGFjZWNoaWxkMzQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNGEz
NWEwMWVhNGUzZThmYmE5YzA5MzIxYTJmODA0ODgyZTViZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzNC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBA
Ci0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1
bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8g
VW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29u
c29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0K
LSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAq
ICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFy
Z2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNCI7Ci0gICB9Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotCVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2Ug
aXRzIG5ldyBFbnRpdHlSZWZlcmVuY2UgQ2hpbGQgd2l0aCBhIAotCW5ldyBUZXh0IE5vZGUgYW5k
IHZlcmlmeSB0aGUgdmFsdWUgb2YgdGhlIG5ldyBjaGlsZC4KLQotKiBAYXV0aG9yIElCTQotKiBA
YXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMt
RE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lELTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9u
IG5vZGVyZXBsYWNlY2hpbGQzNCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5p
dGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNlY2hpbGQzNCIpICE9IG51bGwpIHJldHVy
bjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIHBhcmVudDsKLSAgICAgIHZhciBvbGRDaGlsZDsK
LSAgICAgIHZhciBuZXdDaGlsZDsKLSAgICAgIHZhciBub2RlVmFsdWU7Ci0gICAgICB2YXIgYXBw
ZW5kZWRDaGlsZDsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIAotICAgICAgdmFyIGRvY1Jl
ZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewot
ICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9j
UmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBwYXJlbnQgPSBkb2MuY3JlYXRlQXR0cmli
dXRlTlMoImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIik7
Ci0gICAgICBvbGRDaGlsZCA9IGRvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0g
ICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAg
IG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRleHROb2RlKCJUZXh0Iik7Ci0gICAgICByZXBsYWNlZCA9
IHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsb2xkQ2hpbGQpOwotICAgICAgbm9kZVZhbHVl
ID0gcGFyZW50LnZhbHVlOwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVyZXBsYWNlY2hpbGQz
NCIsIlRleHQiLG5vZGVWYWx1ZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzQoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQueGh0bWwgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM0LnhodG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDY5YmIwMzgwZDE1ZGNlMzVhY2E4NTBhNTgz
NjJiNGQxYjZjMmI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzQu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzQuanMiLz48c2NyaXB0
IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRl
c3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8
cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgot
ICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9j
b2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255
bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5v
cnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6
ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9u
Zz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBF
bnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFk
amFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9z
dHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAg
PHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwot
IDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6
ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9z
dHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAw
PC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8g
Qm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5t
PSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJv
bmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29k
ZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VT
Y2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAg
PGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29k
ZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFy
Pm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFt
ZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhh
cyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGls
ZDM1LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUxYzk4OGY2
NGZjOTgzMjM1ODcyOGMxMDM3NWE3Mjk2YTA3NzZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXJlcGxhY2VjaGlsZDM1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAs
MCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL25vZGVyZXBsYWNlY2hpbGQzNQotU3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMgYi9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM1LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYmFlODY3YTVlZjJiYjdkY2E5MWViNzI3ZjJkYzU1
YzYwODExOWIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzUuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAw
MS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0
dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5m
b3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMg
UmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0
d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmln
aHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0
aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBv
ZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAi
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2RlcmVw
bGFjZWNoaWxkMzUiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1
aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUg
dGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUu
Ci0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3lu
Y2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndp
c2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNl
cHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUg
Ym9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBh
Z2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0
ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0g
ICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9h
ZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAi
aGNfc3RhZmYiKTsKLSAgICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAg
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0
Y2goZXgpIHsKLSAgICAJY2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAg
ICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwot
Ly8gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAg
IGVhY2ggYXN5Y2hyb25vdXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBX
aGVuIGV2ZXJ5IHN5bmNocm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8g
ICAgICB0aGUgcGFnZSBzdGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAg
IGJvZHkgb2YgdGhlIHRlc3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUo
KSB7Ci0gICAgaWYgKCsrZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1
cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQlVc2luZyByZXBsYWNlQ2hp
bGQgb24gYSBuZXcgQXR0ciBub2RlLCByZXBsYWNlIGl0cyBuZXcgRW50aXR5UmVmZXJuZWNlIENo
aWxkIHdpdGggYSAKLQluZXcgQXR0ciBOb2RlIGFuZCB2ZXJpZnkgaWYgYSBISUVSQVJDSFlfUkVR
VUVTVF9FUlIgaXMgdGhyb3duLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjSUQtNzg1ODg3MzA3Ci0qLwotZnVuY3Rpb24gbm9kZXJlcGxhY2VjaGls
ZDM1KCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWls
ZGVyLCAibm9kZXJlcGxhY2VjaGlsZDM1IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7
Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0No
aWxkOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciBhcHBlbmRlZENoaWxkOwotICAg
ICAgdmFyIHJlcGxhY2VkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIHBhcmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3
dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxk
ID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIGFwcGVuZGVkQ2hp
bGQgPSBwYXJlbnQuYXBwZW5kQ2hpbGQob2xkQ2hpbGQpOwotICAgICAgbmV3Q2hpbGQgPSBkb2Mu
Y3JlYXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIs
InhtbDpsYW5nIik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAg
ICAgICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGls
ZCk7Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4
LmNvZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gMyk7Ci0JCX0KLQkJYXNzZXJ0VHJ1
ZSgidGhyb3dfSElFUkFSQ0hZX1JFUVVFU1RfRVJSIixzdWNjZXNzKTsKLQl9Ci0KLX0KLQotCi0K
LQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVyZXBsYWNlY2hpbGQzNSgpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hp
bGQzNS54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzUueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNjcyMWNkOTRm
MTVlMjZjZmU1YWNmODM1NDIzZmZkNmQ2OTg4YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/
eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwK
LSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwx
LXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkg
YmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkg
ZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJ
VFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0
aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxl
Ij4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxu
czpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAot
ICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAg
ICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAg
ICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNy
b255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwh
RU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5F
bGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3Bh
biB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIg
MS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAg
ICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgot
ICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwg
aGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBj
aGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVyZXBsYWNlY2hp
bGQzNS5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2FkQ29t
cGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0ibG9h
ZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0gIDxj
b2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxl
PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAw
MDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBhIENE
QVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwhW0NE
QVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8g
YSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8c3Vw
PjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVz
IiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0YTsg
RGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3Rj
PSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ryb25n
PlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9jb2Rl
PgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9ueW0g
dGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFM
b2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4KLSA8
L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5FTVAw
MDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVyc29u
bmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwv
dmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1NTYi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERhbGxh
cywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6Ly93
d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15ZXJz
PC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+OTAs
MDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFz
cz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRpYy4g
Um9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29y
ZS9ub2RlcmVwbGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5MTk5ZTAxNjExOWJjYjkwNDEyNDkzYzcyZjEwZWFmMTg3M2M0NzYxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2Ci1TdGF0dXMJU3VjY2Vzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNl
Y2hpbGQzNi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFj
ZWNoaWxkMzYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlYTIyNWJlZWYyZmEz
OGVlYzk1ZTAwOGUxMmI2Nzk1NzZjMGE0YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzNi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0KLS8qCi1D
b3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFz
c2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29u
c29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0
eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10
aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9M
ZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgot
ICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJu
IHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkg
ewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNiI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0g
LTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmlu
ZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9u
IGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMg
c3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21w
bGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3
aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFn
ZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8v
Ci0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNl
cHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7
Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVs
bDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
IGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2Fk
KGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBpZiAoZG9jc0xv
YWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAg
ICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0aW9uRXJyb3Io
YnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAg
IH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgY29tcGxl
dGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQgaW4gc2V0VXBU
ZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRvY3VtZW50IGhh
cyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2VkIHdoaWNoIGFs
bG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRlZC4KLWZ1bmN0
aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotLyoqCi0qIAot
CVVzaW5nIHJlcGxhY2VDaGlsZCBvbiBhIG5ldyBBdHRyIG5vZGUsIHJlcGxhY2UgaXRzIG5ldyBF
bnRpdHlSZWZlcm5lY2Ugbm9kZSB3aXRoIGEgCi0JbmV3IFRleHQgTm9kZSBhbmQgdmVyaWZ5IGlm
IGEgTk9UX0ZPVU5EX0VSUiBpcyB0aHJvd24uCi0KLSogQGF1dGhvciBJQk0KLSogQGF1dGhvciBO
ZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZl
bC0zLUNvcmUtMjAwNDA0MDcvY29yZSNJRC03ODU4ODczMDcKLSovCi1mdW5jdGlvbiBub2RlcmVw
bGFjZWNoaWxkMzYoKSB7Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0
aW9uKGJ1aWxkZXIsICJub2RlcmVwbGFjZWNoaWxkMzYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAg
dmFyIGRvYzsKLSAgICAgIHZhciBwYXJlbnQ7Ci0gICAgICB2YXIgb2xkQ2hpbGQ7Ci0gICAgICB2
YXIgbmV3Q2hpbGQ7Ci0gICAgICB2YXIgbm9kZVZhbHVlOwotICAgICAgdmFyIHJlcGxhY2VkOwot
ICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5k
b2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAg
fQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAgIHBh
cmVudCA9IGRvYy5jcmVhdGVBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgv
bmFtZXNwYWNlIiwieG1sOmxhbmciKTsKLSAgICAgIG9sZENoaWxkID0gZG9jLmNyZWF0ZUVudGl0
eVJlZmVyZW5jZSgiZGVsdGEiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jLmNyZWF0ZVRleHROb2Rl
KCJUZXh0Iik7Ci0gICAgICAKLQl7Ci0JCXN1Y2Nlc3MgPSBmYWxzZTsKLQkJdHJ5IHsKLSAgICAg
ICAgICAgIHJlcGxhY2VkID0gcGFyZW50LnJlcGxhY2VDaGlsZChuZXdDaGlsZCxvbGRDaGlsZCk7
Ci0gICAgICAgIH0KLQkJY2F0Y2goZXgpIHsKLSAgICAgIHN1Y2Nlc3MgPSAodHlwZW9mKGV4LmNv
ZGUpICE9ICd1bmRlZmluZWQnICYmIGV4LmNvZGUgPT0gOCk7Ci0JCX0KLQkJYXNzZXJ0VHJ1ZSgi
dGhyb3dfTk9UX0ZPVU5EX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0KLWZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICBub2RlcmVwbGFjZWNoaWxkMzYoKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzYueGh0bWwg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM2Lnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWE4ODBiMDcyYTM1Nzg0MDFmYjFi
ZWVmZDdhMjRhNmFjMTg4MGM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNo
aWxkMzYueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRk
IiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2
OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0
ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICIm
Izk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4K
LSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFU
VExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RB
VEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1s
bnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAg
ICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNj
aGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0
ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRh
PC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RB
VEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRt
bCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNp
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNp
OnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhz
ZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRG
LTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2RlcmVwbGFjZWNoaWxkMzYuanMiLz48
c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBz
dGFydFRlc3QoKTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgp
Ij4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8
L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50
YW50PC9jb2RlPgotICA8c3VwPjU2LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4x
MjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBUZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAg
eG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAg
PHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMKLTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24g
d2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVtYmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlz
IGFuIGFkamFjZW50IENEQVRBU2VjdGlvbiB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7
XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNlY3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1
cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Illl
cyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdh
bW1hOwotIDk4NTU0PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3
dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5FTVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpv
bmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRlcGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4x
MDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVudDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMi
IGNsYXNzPSJObyIgaWQ9Il85ODU1MyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+UE8gQm94IDI3IElydmluZywgdGV4YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0g
IDxzdHJvbmc+SmVueSBPY29ubm9yPC9zdHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3Rv
cjwvY29kZT4KLSAgPHN1cD45NSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1l
c3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4
NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292
Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgotICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgot
ICA8Y29kZT5Db21wdXRlciBTcGVjaWFsaXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgot
ICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmlu
ZyBUZXhhcyA5ODU1ODwvYWNyb255bT4KLSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJlcGxh
Y2VjaGlsZDM3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJj
MWFhNWJmODg5ZDI1NjZhYTM1M2IwOWM0NDFhYTc3YTBiZjZhMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhy
b3dfV1JPTkdfRE9DVU1FTlRfRVJSOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5qcyBiL0xh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzcuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmZDAyNjQ0MTNkYjc2NmJiNGFmZjIwNjM0YTk4
N2MzOTIxNzQ0ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzNy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVy
ZXBsYWNlY2hpbGQzNyI7Ci0gICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIg
YnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRo
ZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0
ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFz
eW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVy
d2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4
Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRo
ZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVw
UGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3Jl
YXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8K
LSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NM
b2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIs
ICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgIHZhciBkb2MyUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MyKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2MyUmVm
ID0gdGhpcy5kb2MyOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCArPSBwcmVsb2FkKGRvYzJS
ZWYsICJkb2MyIiwgImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVk
ID09IDIpIHsKLSAgICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAg
IH0KLSAgICB9IGNhdGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWls
ZGVyLCBleCk7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQot
fQotCi0KLQotLy8KLS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9u
IG9mIAotLy8gICAgICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3Rz
LgotLy8KLS8vICAgV2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNv
bXBsZXRlZCwKLS8vICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dz
IHRoZQotLy8gICAgICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24g
bG9hZENvbXBsZXRlKCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMikgewotICAgICAgICBz
ZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVXNp
bmcgcmVwbGFjZUNoaWxkIG9uIGEgbmV3IEF0dHIgbm9kZSwgcmVwbGFjZSBpdHMgbmV3IFRleHQg
bm9kZSB3aXRoIGEgCi0JbmV3IEVudGl0eVJlZmVyZW5jZSBOb2RlIGNyZWF0ZWQgYnkgYW5vdGhl
ciBkb2N1bWVudCBhbmQgdmVyaWZ5IGlmIGEgCi0JV1JPTkdfRE9DVU1FTlRfRVJSIGlzIHJhaXNl
ZC4KLQotKiBAYXV0aG9yIElCTQotKiBAYXV0aG9yIE5laWwgRGVsaW1hCi0qIEBzZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0yMDA0MDQwNy9jb3JlI0lE
LTc4NTg4NzMwNwotKi8KLWZ1bmN0aW9uIG5vZGVyZXBsYWNlY2hpbGQzNygpIHsKLSAgIHZhciBz
dWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgIm5vZGVyZXBsYWNl
Y2hpbGQzNyIpICE9IG51bGwpIHJldHVybjsKLSAgICB2YXIgZG9jOwotICAgICAgdmFyIGRvYzI7
Ci0gICAgICB2YXIgcGFyZW50OwotICAgICAgdmFyIG9sZENoaWxkOwotICAgICAgdmFyIG5ld0No
aWxkOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIHZhciByZXBsYWNlZDsKLSAgICAgIHZh
ciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIAotICAgICAgdmFyIGRvYzJSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYzIpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvYzJSZWYgPSB0aGlz
LmRvYzI7Ci0gICAgICB9Ci0gICAgICBkb2MyID0gbG9hZChkb2MyUmVmLCAiZG9jMiIsICJoY19z
dGFmZiIpOwotICAgICAgcGFyZW50ID0gZG9jLmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3
LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6bGFuZyIpOwotICAgICAgb2xkQ2hpbGQg
PSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQiKTsKLSAgICAgIG5ld0NoaWxkID0gZG9jMi5jcmVh
dGVFbnRpdHlSZWZlcmVuY2UoImRlbHRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gcGFyZW50
LmFwcGVuZENoaWxkKG9sZENoaWxkKTsKLSAgICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwot
CQl0cnkgewotICAgICAgICAgICAgcmVwbGFjZWQgPSBwYXJlbnQucmVwbGFjZUNoaWxkKG5ld0No
aWxkLG9sZENoaWxkKTsKLSAgICAgICAgfQotCQljYXRjaChleCkgewotICAgICAgc3VjY2VzcyA9
ICh0eXBlb2YoZXguY29kZSkgIT0gJ3VuZGVmaW5lZCcgJiYgZXguY29kZSA9PSA0KTsKLQkJfQot
CQlhc3NlcnRUcnVlKCJ0aHJvd19XUk9OR19ET0NVTUVOVF9FUlIiLHN1Y2Nlc3MpOwotCX0KLQot
fQotCi0KLQotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXJlcGxhY2VjaGlsZDM3KCk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXJl
cGxhY2VjaGlsZDM3LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25v
ZGVyZXBsYWNlY2hpbGQzNy54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlk
ZGJkMjMzMTk5N2UzMzM4NWZhYTBmZjI3MzI5NDliZWZiYWY2OS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXJlcGxhY2VjaGlsZDM3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZ
UEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAg
ICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8
IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8
IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJ
QyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0
aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAg
ICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJ
TVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1Qg
aHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAg
ICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRU
TElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVE
PgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRU
TElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50
IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
Ci0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5z
dGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90
aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48
c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibm9kZXJl
cGxhY2VjaGlsZDM3LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9u
IGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25s
b2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNv
bSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9u
Zz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZh
cj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2No
ZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fj
cm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8
ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlz
IGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11d
PgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVy
ZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+
Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRp
dGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1s
bnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0g
IDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFn
ZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8
YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFj
ZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3Jv
bnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAg
PGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29k
ZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+
RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9
Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9h
ZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0i
aHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2Jl
cnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAg
PHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZ
ZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEg
Tm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9u
b2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkNzYwOTM0ZmVjNGQ5NDc4NmFlMWJmNThmNWQ0NWE1OWIxYTky
YzU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMAot
U3RhdHVzCVN1Y2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTU3MWFlNzczOGEwYjI4M2JjOTJjODdhZmQzYWM1MTM2MjliMzE1Ni4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTAuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwxMzEgKzAsMCBAQAotCi0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUg
V2ViIENvbnNvcnRpdW0sIAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ks
IEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhl
bWF0aWNzLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29y
ayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBp
biB0aGUgCi1ob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93
d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEy
MzEKLSovCi0KLQotCi0gICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhl
IHRlc3QuCi0gICAgKiAgQHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1
bmN0aW9uIGdldFRhcmdldFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMCI7Ci0g
ICB9Ci0KLXZhciBkb2NzTG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0K
LS8vCi0vLyAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29y
ayBiZWZvcmUKLS8vICAgICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRo
ZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAg
ICAgIGRvY3VtZW50IGxvYWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwot
Ly8gICAgICAgIGlzIHNldCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlh
dGVseQotLy8gICAgICAgIHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0
LgotLy8KLWZ1bmN0aW9uIHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5u
aW5nJzsKLSAgIHRyeSB7Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50
IGJ1aWxkZXIsIG1heSB0aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNy
ZWF0ZUNvbmZpZ3VyZWRCdWlsZGVyKCk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRyaWJ1
dGUoIm5hbWVzcGFjZUF3YXJlIiwgdHJ1ZSk7Ci0gICAgICAgc2V0SW1wbGVtZW50YXRpb25BdHRy
aWJ1dGUoImV4cGFuZEVudGl0eVJlZmVyZW5jZXMiLCB0cnVlKTsKLQotICAgICAgZG9jc0xvYWRl
ZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5cGVv
Zih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5kb2M7
Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwgImhj
X3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JVGhlIG1ldGhvZCBzZXRUZXh0
Q29udGVudCBoYXMgbm8gZWZmZWN0IHdoZW4gdGhlIG5vZGUgaXMgZGVmaW5lZCB0byBiZSBudWxs
LgotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEgbmV3IEVsZW1lbnQgbm9kZSwgYXR0ZW1w
dCB0byBzZXQgaXRzIGNvbnRlbnQgdG8gRUxFTUVOVC4KLQlSZXRyZWl2ZSB0aGUgdGV4dENvbnRl
bnQgYW5kIHZlcmlmeSBpZiBpdCBpcyB3YXMgc2V0IHRvIEVMRU1FTlQuCi0KLSogQGF1dGhvciBJ
Qk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIw
MDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0Q29udGVudAot
Ki8KLWZ1bmN0aW9uIG5vZGVzZXR0ZXh0Y29udGVudDEwKCkgewotICAgdmFyIHN1Y2Nlc3M7Ci0g
ICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRjb250ZW50MTAi
KSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBlbGVtOwotICAgICAg
dmFyIHR4dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZh
ciBjZGF0YTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZh
ciBhcHBlbmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIGVsZW0gPSBkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3Lncz
Lm9yZy9ET00vVGVzdCIsImRvbTM6ZWxlbSIpOwotICAgICAgdHh0ID0gZG9jLmNyZWF0ZVRleHRO
b2RlKCJUZXh0ICIpOwotICAgICAgY29tbWVudCA9IGRvYy5jcmVhdGVDb21tZW50KCJDb21tZW50
ICIpOwotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiZW50MSIpOwot
ICAgICAgcGkgPSBkb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEg
Iik7Ci0gICAgICBjZGF0YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRD
aGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0g
ZWxlbS5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQocGkpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2Rh
dGEpOwotICAgICAgZWxlbS50ZXh0Q29udGVudCA9ICJFTEVNRU5UIjsKLQotICAgICAgdGV4dENv
bnRlbnQgPSBlbGVtLnRleHRDb250ZW50OwotCi0gICAgICBhc3NlcnRFcXVhbHMoIm5vZGVzZXR0
ZXh0Y29udGVudDEwIiwiRUxFTUVOVCIsdGV4dENvbnRlbnQpOwotICAgICAgIAotfQotCi0KLQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgbm9kZXNldHRleHRjb250ZW50MTAoKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMC54aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkZTc2
MGYwZjBhMmI3NThlNmYyZWU4MGUzMGM1YzlmNGE1NzQ1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2Nv
cmUvbm9kZXNldHRleHRjb250ZW50MTAueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQ
RSBodG1sCi0gICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAg
InhodG1sMS1zdHJpY3QuZHRkIiBbCi0gICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwh
RU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0gICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwh
RU5USVRZIGRlbHRhICImIzk0ODsiPgotICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAg
IDwhRU5USVRZIGFscGhhICImIzk1MDsiPgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElD
ICJub3RhdGlvbjFGaWxlIj4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRp
b24yRmlsZSI+Ci0gICA8IUFUVExJU1QgcAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAg
ICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6ZW1wMiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBo
dG1sCi0gICAgICAgICAgICAgICAgICAgeG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAg
ICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRM
SVNUIGFjcm9ueW0geHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+
Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3BhbiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFuPjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRM
SVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lNUExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQg
bnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcK
LSAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0
YW5jZSIKLSAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3Rp
dGxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxz
Y3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJub2Rlc2V0
dGV4dGNvbnRlbnQxMC5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlv
biBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9u
bG9hZD0ibG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5j
b20iPgotICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJv
bmc+Ci0gIDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2
YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNj
aGVtYUxvY2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9h
Y3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAg
PGVtPkVNUDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhp
cyBpcyBhIENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50Mjtd
XT4KLTwhW0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZl
cmVuY2UgdG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2Rl
PgotICA8c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0
aXRsZT0iWWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4mYmV0YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgot
ICA8c3Ryb25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5h
Z2VyPC9jb2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAg
PGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3Bh
Y2VTY2hlbWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNy
b255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0g
IDxlbT5FTVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNv
ZGU+UGVyc29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFy
PkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlk
PSJfOTg1NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJv
YWQuIERhbGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9
Imh0dHA6Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9i
ZXJ0IE15ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0g
IDxzdXA+OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIx
IE5vcmRpYy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYmJjMTQ3MDg4NmJmMDRlNGIwOTUyNjdmNjUzNDVlMDRiM2Vh
MzM2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEK
LVN0YXR1cwlTdWNjZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQ0NDMxZjc5MjMxZjAwYjI0YzU0ODA4YTk2OGMzOTM5ZTYzMWUyZWMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMTM1ICswLDAgQEAKLQotLyoKLUNvcHlyaWdodCDDgsKpIDIwMDEtMjAwNCBXb3JsZCBXaWRl
IFdlYiBDb25zb3J0aXVtLCAKLShNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5
LCBFdXJvcGVhbiBSZXNlYXJjaCBDb25zb3J0aXVtIAotZm9yIEluZm9ybWF0aWNzIGFuZCBNYXRo
ZW1hdGljcywgS2VpbyBVbml2ZXJzaXR5KS4gQWxsIAotUmlnaHRzIFJlc2VydmVkLiBUaGlzIHdv
cmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFczQ8OCwq4gU29mdHdhcmUgTGljZW5zZSBbMV0g
aW4gdGhlIAotaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiAKLXRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCi0KLVsxXSBodHRwOi8v
d3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIx
MjMxCi0qLwotCi0KLQotICAgLyoqCi0gICAgKiAgR2V0cyBVUkkgdGhhdCBpZGVudGlmaWVzIHRo
ZSB0ZXN0LgotICAgICogIEByZXR1cm4gdXJpIGlkZW50aWZpZXIgb2YgdGVzdAotICAgICovCi1m
dW5jdGlvbiBnZXRUYXJnZXRVUkkoKSB7Ci0gICAgICByZXR1cm4gImh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvbm9kZXNldHRleHRjb250ZW50MTEiOwot
ICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwot
Ci0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdv
cmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0
aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAg
ICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMK
LS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRp
YXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVz
dC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVu
bmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVu
dCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBj
cmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAg
IAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAh
PSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAg
ICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAg
ICAgICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFn
ZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJ
Y2F0Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdl
U3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25v
dXMgbG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNo
cm9ub3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBz
dGF0dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRl
c3QgdG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsr
ZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7
Ci0gICAgfQotfQotCi0KLS8qKgotKiAKLQotCQotCVVzaW5nIHNldFRleHRDb250ZW50IG9uIGEg
bmV3IERvY3VtZW50RnJhZ21lbnQgbm9kZSBFbGVtZW50IGNoaWxkLCBhdHRlbXB0IHRvIHNldCBp
dHMgY29udGVudCB0byAKLQlET0NVTUVOVEZSQUdNRU5ULiAgUmV0cmVpdmUgdGhlIHRleHRDb250
ZW50IGFuZCB2ZXJpZnkgaWYgaXQgaXMgd2FzIHNldCB0byBET0NVTUVOVEZSQUdNRU5UCi0KLSog
QGF1dGhvciBJQk0KLSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMu
b3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNOb2RlMy10ZXh0
Q29udGVudAotKi8KLWZ1bmN0aW9uIG5vZGVzZXR0ZXh0Y29udGVudDExKCkgewotICAgdmFyIHN1
Y2Nlc3M7Ci0gICAgaWYoY2hlY2tJbml0aWFsaXphdGlvbihidWlsZGVyLCAibm9kZXNldHRleHRj
b250ZW50MTEiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBkb2NG
cmFnOwotICAgICAgdmFyIGVsZW07Ci0gICAgICB2YXIgZWxlbUNoaWxkOwotICAgICAgdmFyIHR4
dDsKLSAgICAgIHZhciBjb21tZW50OwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBjZGF0
YTsKLSAgICAgIHZhciBwaTsKLSAgICAgIHZhciB0ZXh0Q29udGVudDsKLSAgICAgIHZhciBhcHBl
bmRlZENoaWxkOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0
eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMu
ZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYi
KTsKLSAgICAgIGRvY0ZyYWcgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAg
ZWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
LCJ4aHRtbDpwIik7Ci0gICAgICB0eHQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoIlRleHQgIik7Ci0g
ICAgICBjb21tZW50ID0gZG9jLmNyZWF0ZUNvbW1lbnQoIkNvbW1lbnQgIik7Ci0gICAgICBlbnRS
ZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJhbHBoYSIpOwotICAgICAgcGkgPSBkb2Mu
Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJQSVQiLCJQSURhdGEgIik7Ci0gICAgICBjZGF0
YSA9IGRvYy5jcmVhdGVDREFUQVNlY3Rpb24oIkNEYXRhIik7Ci0gICAgICBhcHBlbmRlZENoaWxk
ID0gZWxlbS5hcHBlbmRDaGlsZCh0eHQpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBw
ZW5kQ2hpbGQoY29tbWVudCk7Ci0gICAgICBhcHBlbmRlZENoaWxkID0gZWxlbS5hcHBlbmRDaGls
ZChlbnRSZWYpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQocGkpOwot
ICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoY2RhdGEpOwotICAgICAgYXBw
ZW5kZWRDaGlsZCA9IGRvY0ZyYWcuYXBwZW5kQ2hpbGQoZWxlbSk7Ci0gICAgICBlbGVtLnRleHRD
b250ZW50ID0gIkRPQ1VNRU5URlJBR01FTlQiOwotCi0gICAgICBlbGVtQ2hpbGQgPSBkb2NGcmFn
Lmxhc3RDaGlsZDsKLQotICAgICAgdGV4dENvbnRlbnQgPSBlbGVtQ2hpbGQudGV4dENvbnRlbnQ7
Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZWdldHRleHRjb250ZW50MTEiLCJET0NVTUVOVEZS
QUdNRU5UIix0ZXh0Q29udGVudCk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICBub2Rlc2V0dGV4dGNvbnRlbnQxMSgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnhodG1sIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDExLnho
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MmNiZDA0YWM5MWZkOThmNDAyMTM5
NzQzMTk4NWRkZTFiODEzZmZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNv
bnRlbnQxMS54aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNp
b249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQSURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5k
dGQiIFsKLSAgIDwhRU5USVRZIGFscGhhICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5
NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1hICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYj
OTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNpbG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEg
IiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwh
QVRUTElTVCBwCi0gICAgICAgIGRpciBDREFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBD
REFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczplbXAyIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAg
ICAgICAgICB4bWxuczp4c2kgQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6
c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVu
dDQgIjxzcGFuIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRh
dGE8L3NwYW4+PD9QSXRhcmdldCBQSWRhdGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBD
REFUQSAjSU1QTElFRD4KLV0+Ci08IS0tIFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxo
dG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4
c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4
c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYu
eHNkIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJV
VEYtOCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5vZGVzZXR0ZXh0Y29udGVudDExLmpz
Ii8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgp
IHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxl
dGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAw
MDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNj
b3VudGFudDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgot
IDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+
Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0
aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhp
cyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAm
dGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMs
ICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6
Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIK
LSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxz
dXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9u
PSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2Vt
PgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGly
ZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0g
IDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5v
TmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhh
cyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0
LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9u
Zz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1
cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJ
cnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRl
bnQxMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9k
ZXNldHRleHRjb250ZW50MTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyYTBmYmY0MmIyZTk2NzUwODNmMjE3YzE1ZmFkNzgyZGQ3ZmRkNDRiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMgotU3RhdHVzCVN1Y2Nlc3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4
dGNvbnRlbnQxMi5qcyBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0
dGV4dGNvbnRlbnQxMi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZjMzZmZTZi
MTFlY2JlODFjNTYzNmRhYWVhODBiNDU5YjcwYTg3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAot
Ci0vKgotQ29weXJpZ2h0IMOCwqkgMjAwMS0yMDA0IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0s
IAotKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2Vh
cmNoIENvbnNvcnRpdW0gCi1mb3IgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzLCBLZWlvIFVu
aXZlcnNpdHkpLiBBbGwgCi1SaWdodHMgUmVzZXJ2ZWQuIFRoaXMgd29yayBpcyBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgVzNDw4LCriBTb2Z0d2FyZSBMaWNlbnNlIFsxXSBpbiB0aGUgCi1ob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIAotdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKLQotWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNv
cnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKLSovCi0KLQotCi0g
ICAvKioKLSAgICAqICBHZXRzIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhlIHRlc3QuCi0gICAgKiAg
QHJldHVybiB1cmkgaWRlbnRpZmllciBvZiB0ZXN0Ci0gICAgKi8KLWZ1bmN0aW9uIGdldFRhcmdl
dFVSSSgpIHsKLSAgICAgIHJldHVybiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDMvY29yZS9ub2Rlc2V0dGV4dGNvbnRlbnQxMiI7Ci0gICB9Ci0KLXZhciBkb2Nz
TG9hZGVkID0gLTEwMDAwMDA7Ci12YXIgYnVpbGRlciA9IG51bGw7Ci0KLS8vCi0vLyAgIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSB0ZXN0aW5nIGZyYW1ld29yayBiZWZvcmUKLS8vICAg
ICAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZS4KLS8vCi0vLyAgIElmIHRoZXJlIGFyZSBubyBjb25m
aWd1cmF0aW9uIGV4Y2VwdGlvbnMsIGFzeW5jaHJvbm91cwotLy8gICAgICAgIGRvY3VtZW50IGxv
YWRpbmcgaXMgc3RhcnRlZC4gIE90aGVyd2lzZSwgdGhlIHN0YXR1cwotLy8gICAgICAgIGlzIHNl
dCB0byBjb21wbGV0ZSBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBpbW1lZGlhdGVseQotLy8gICAgICAg
IHJhaXNlZCB3aGVuIGVudGVyaW5nIHRoZSBib2R5IG9mIHRoZSB0ZXN0LgotLy8KLWZ1bmN0aW9u
IHNldFVwUGFnZSgpIHsKLSAgIHNldFVwUGFnZVN0YXR1cyA9ICdydW5uaW5nJzsKLSAgIHRyeSB7
Ci0gICAgIC8vCi0gICAgIC8vICAgY3JlYXRlcyB0ZXN0IGRvY3VtZW50IGJ1aWxkZXIsIG1heSB0
aHJvdyBleGNlcHRpb24KLSAgICAgLy8KLSAgICAgYnVpbGRlciA9IGNyZWF0ZUNvbmZpZ3VyZWRC
dWlsZGVyKCk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIgZG9j
UmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7
Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRlZCAr
PSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAgICBp
ZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBs
ZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxpemF0
aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxl
dGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0
aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0ZWQg
aW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVkIGRv
Y3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFuZ2Vk
IHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVjdXRl
ZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09IDEp
IHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQot
LyoqCi0qIAotCi0JCi0JVXNpbmcgc2V0VGV4dENvbnRlbnQgb24gYSBuZXcgRW50aXR5UmVmZXJl
bmNlIG5vZGUsIGF0dGVtcHQgdG8gc2V0IGl0cyB2YWx1ZS4KLQlTaW5jZSBFbnRpdHlSZWZlcmVu
Y2Ugbm9kZXMgYXJlIFJlYWRPbmx5LCBjaGVjayBpZiBhIE5PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUiAgCi0JaXMgcmFpc2VkLgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtdGV4dENvbnRlbnQKLSovCi1mdW5jdGlvbiBub2Rlc2V0dGV4
dGNvbnRlbnQxMigpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRp
b24oYnVpbGRlciwgIm5vZGVzZXR0ZXh0Y29udGVudDEyIikgIT0gbnVsbCkgcmV0dXJuOwotICAg
IHZhciBkb2M7Ci0gICAgICB2YXIgZWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIg
dGV4dENvbnRlbnQ7Ci0gICAgICB2YXIgYXBwZW5kZWRDaGlsZDsKLSAgICAgIAotICAgICAgdmFy
IGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVk
JykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxv
YWQoZG9jUmVmLCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBlbGVtID0gZG9jLmRvY3VtZW50
RWxlbWVudDsKLQotICAgICAgZW50UmVmID0gZG9jLmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgiYmV0
YSIpOwotICAgICAgYXBwZW5kZWRDaGlsZCA9IGVsZW0uYXBwZW5kQ2hpbGQoZW50UmVmKTsKLSAg
ICAgIAotCXsKLQkJc3VjY2VzcyA9IGZhbHNlOwotCQl0cnkgewotICAgICAgICAgICAgZW50UmVm
LnRleHRDb250ZW50ID0gIk5BIjsKLQotICAgICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBz
dWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAhPSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcp
OwotCQl9Ci0JCWFzc2VydFRydWUoIm5vZGVzZXR0ZXh0Y29udGVudDEyIixzdWNjZXNzKTsKLQl9
Ci0KLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIG5vZGVzZXR0ZXh0Y29udGVu
dDEyKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUv
bm9kZXNldHRleHRjb250ZW50MTIueGh0bWwgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvbm9kZXNldHRleHRjb250ZW50MTIueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY0YmY5Njg3YTBlYjRkODczOTQyNzMzNTVmMDczNDNkMWYxYmM5MzcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR0ZXh0Y29udGVudDEyLnhodG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFU
QT8+Ci08IURPQ1RZUEUgaHRtbAotICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIKLSAgICJ4aHRtbDEtc3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYj
OTQ1OyI+Ci0gICA8IUVOVElUWSBiZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYj
OTQ3OyI+Ci0gICA8IUVOVElUWSBkZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24g
IiYjOTQ5OyI+Ci0gICA8IUVOVElUWSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90
YXRpb24xIFBVQkxJQyAibm90YXRpb24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBT
WVNURU0gIm5vdGF0aW9uMkZpbGUiPgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRB
ICdydGwnCi0gICAgICAgIHhtbG5zOmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5z
Om5tIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0g
ICA8IUFUVExJU1QgaHRtbAotICAgICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1Q
TElFRAotICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElF
RD4KLSAgIDwhQVRUTElTVCBhY3JvbnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENE
QVRBICNJTVBMSUVEPgotICAgPCFFTlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnPkVsZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+
Ij4KLSAgIDwhQVRUTElTVCBzcGFuIHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhp
cyBpcyBjb21tZW50IG51bWJlciAxLi0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnCi0gICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9Y
TUxTY2hlbWEtaW5zdGFuY2UiCi0gICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCBoY19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxl
PmhjX3N0YWZmPC90aXRsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxm
eGh0bWwuanMiLz48c2NyaXB0IGNoYXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0ibm9kZXNldHRleHRjb250ZW50MTIuanMiLz48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNj
cmlwdCc+ZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgfTwvc2NyaXB0Pjwv
aGVhZD48Ym9keSBvbmxvYWQ9ImxvYWRDb21wbGV0ZSgpIj4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0
cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVNUDAwMDE8L2VtPgotICA8c3Ryb25nPk1hcmdhcmV0
IE1hcnRpbjwvc3Ryb25nPgotICA8Y29kZT5BY2NvdW50YW50PC9jb2RlPgotICA8c3VwPjU2LDAw
MDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiB4c2k6
bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xMjMwIE5vcnRoIEF2ZS4gRGFsbGFzLCBU
ZXhhcyA5ODU1MTwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
dXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAyPC9lbT4KLSAgPHN0cm9uZz5NYXJ0aGEgUmF5bm9sZHMK
LTwhW0NEQVRBW1RoaXMgaXMgYSBDREFUQVNlY3Rpb24gd2l0aCBFbnRpdHlSZWZlcmVuY2UgbnVt
YmVyIDIgJmVudDI7XV0+Ci08IVtDREFUQVtUaGlzIGlzIGFuIGFkamFjZW50IENEQVRBU2VjdGlv
biB3aXRoIGEgcmVmZXJlbmNlIHRvIGEgdGFiICZ0YWI7XV0+PC9zdHJvbmc+Ci0gIDxjb2RlPlNl
Y3JldGFyeTwvY29kZT4KLSAgPHN1cD4zNSwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4K
LSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1h
TG9jYXRpb249IlllcyI+JmJldGE7IERhbGxhcywgJmdhbW1hOwotIDk4NTU0PC9hY3JvbnltPgot
IDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy5uZXR6ZXJvLmNvbSI+Ci0gIDxlbT5F
TVAwMDAzPC9lbT4KLSAgPHN0cm9uZz5Sb2dlcgotIEpvbmVzPC9zdHJvbmc+Ci0gIDxjb2RlPkRl
cGFydG1lbnQgTWFuYWdlcjwvY29kZT4KLSAgPHN1cD4xMDAsMDAwPC9zdXA+Ci0gIDx2YXI+JmVu
dDQ7PC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJObyIgaWQ9Il85ODU1MyIg
eHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+UE8gQm94IDI3IElydmluZywgdGV4
YXMgOTg1NTM8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOm5tPSJodHRwOi8vd3d3LmFsdGF2
aXN0YS5jb20iPgotICA8ZW0+RU1QMDAwNDwvZW0+Ci0gIDxzdHJvbmc+SmVueSBPY29ubm9yPC9z
dHJvbmc+Ci0gIDxjb2RlPlBlcnNvbm5lbCBEaXJlY3RvcjwvY29kZT4KLSAgPHN1cD45NSwwMDA8
L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9
IlkmYWxwaGE7IiBpZD0iXzk4NTU2IiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVz
Ij4yNyBTb3V0aCBSb2FkLiBEYWxsYXMsIFRleGFzIDk4NTU2PC9hY3JvbnltPgotIDwvcD4KLSA8
cCB4bWxuczplbXAyPSJodHRwOi8vd3d3Lm5pc3QuZ292Ij4KLSAgPGVtPkVNUDAwMDU8L2VtPgot
ICA8c3Ryb25nPlJvYmVydCBNeWVyczwvc3Ryb25nPgotICA8Y29kZT5Db21wdXRlciBTcGVjaWFs
aXN0PC9jb2RlPgotICA8c3VwPjkwLDAwMDwvc3VwPgotICA8dmFyPm1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgY2xhc3M9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRp
b249IlllcyI+MTgyMSBOb3JkaWMuIFJvYWQsIElydmluZyBUZXhhcyA5ODU1ODwvYWNyb255bT4K
LSA8L3A+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4ZDdhZjJmZjk4M2UxNzMxZTA2ZGFkYjUzZjQ4
MDJmZGRlMmY2ZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4
Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJTGluZSAxMTM6IFR5cGVFcnJvcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzIGIv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjZmNTg2M2JmNDY3OGFlNTBhZTk1ZDg4NmQ2
NmUwYzhlMzU0ZGQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAy
MDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0
aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJ
bmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0
cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNv
ZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJy
YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHly
aWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJ
IHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVy
IG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJu
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVz
ZXR1c2VyZGF0YTA4IjsKLSAgIH0KLQotdmFyIGRvY3NMb2FkZWQgPSAtMTAwMDAwMDsKLXZhciBi
dWlsZGVyID0gbnVsbDsKLQotLy8KLS8vICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhl
IHRlc3RpbmcgZnJhbWV3b3JrIGJlZm9yZQotLy8gICAgICBydW5uaW5nIHRoZSB0ZXN0IHN1aXRl
LgotLy8KLS8vICAgSWYgdGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gZXhjZXB0aW9ucywgYXN5
bmNocm9ub3VzCi0vLyAgICAgICAgZG9jdW1lbnQgbG9hZGluZyBpcyBzdGFydGVkLiAgT3RoZXJ3
aXNlLCB0aGUgc3RhdHVzCi0vLyAgICAgICAgaXMgc2V0IHRvIGNvbXBsZXRlIGFuZCB0aGUgZXhj
ZXB0aW9uIGlzIGltbWVkaWF0ZWx5Ci0vLyAgICAgICAgcmFpc2VkIHdoZW4gZW50ZXJpbmcgdGhl
IGJvZHkgb2YgdGhlIHRlc3QuCi0vLwotZnVuY3Rpb24gc2V0VXBQYWdlKCkgewotICAgc2V0VXBQ
YWdlU3RhdHVzID0gJ3J1bm5pbmcnOwotICAgdHJ5IHsKLSAgICAgLy8KLSAgICAgLy8gICBjcmVh
dGVzIHRlc3QgZG9jdW1lbnQgYnVpbGRlciwgbWF5IHRocm93IGV4Y2VwdGlvbgotICAgICAvLwot
ICAgICBidWlsZGVyID0gY3JlYXRlQ29uZmlndXJlZEJ1aWxkZXIoKTsKLQotICAgICAgZG9jc0xv
YWRlZCA9IDA7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxsOwotICAgICAgaWYgKHR5
cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgZG9jUmVmID0gdGhpcy5k
b2M7Ci0gICAgICB9Ci0gICAgICBkb2NzTG9hZGVkICs9IHByZWxvYWQoZG9jUmVmLCAiZG9jIiwg
ImhjX3N0YWZmIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAg
ICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNh
dGNoKGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0g
ICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8K
LS8vICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAg
ICBlYWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAg
V2hlbiBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8v
ICAgICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAg
ICBib2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRl
KCkgewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0
dXMgPSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi0JSW52b2tlIHNldFVzZXJE
YXRhIG9uIGEgQ0RBVEFTZWN0aW9uIGFuZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZSB0byBzZXQgdGhl
aXIgCi0JVXNlckRhdGEgdG8gdGhpcyBEb2N1bWVudCBhbmQgRG9jdW1lbnRFbGVtZW50IG5vZGUu
ICBWZXJpZnkgaWYgdGhlIFVzZXJEYXRhIAotCW9iamVjdCB0aGF0IHdhcyBzZXQgZm9yIGJvdGgg
bm9kZXMgaXMgZGlmZmVyZW50LgotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRob3IgTmVpbCBEZWxp
bWEKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3Jl
LTIwMDQwNDA3L2NvcmUjTm9kZTMtc2V0VXNlckRhdGEKLSovCi1mdW5jdGlvbiBub2Rlc2V0dXNl
cmRhdGEwOCgpIHsKLSAgIHZhciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24o
YnVpbGRlciwgIm5vZGVzZXR1c2VyZGF0YTA4IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBk
b2M7Ci0gICAgICB2YXIgZG9jRWxlbTsKLSAgICAgIHZhciBlbnRSZWY7Ci0gICAgICB2YXIgY0Rh
dGE7Ci0gICAgICB2YXIgZWxlbUxpc3Q7Ci0gICAgICB2YXIgZWxlbU5hbWU7Ci0gICAgICB2YXIg
dXNlckRhdGE7Ci0gICAgICB2YXIgcmV0dXJuZWQxOwotICAgICAgdmFyIHJldHVybmVkMjsKLSAg
ICAgIHZhciBzdWNjZXNzOwotICAgICAgdmFyIHJldFVzZXJEYXRhOwotICAgICAgdmFyIG51bGxI
YW5kbGVyID0gbnVsbDsKLQotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAg
IGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9
IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiaGNf
c3RhZmYiKTsKLSAgICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50OwotCi0gICAgICBl
bnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJkZWx0YSIpOwotICAgICAgY0RhdGEg
PSBkb2MuY3JlYXRlQ0RBVEFTZWN0aW9uKCJDREFUQVNlY3Rpb24iKTsKLSAgICAgIGlmIChudWxs
ID09IG51bGxIYW5kbGVyKSB7Ci0gICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEoIktleTEiLCBk
b2MsIG51bGwpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBlbnRSZWYuc2V0VXNlckRhdGEo
IktleTEiLCBkb2MsIG51bGxIYW5kbGVyLmhhbmRsZSk7Ci0gICAgICB9Ci0gICAgICAgaWYgKG51
bGwgPT0gbnVsbEhhbmRsZXIpIHsKLSAgICAgICAgIGNEYXRhLnNldFVzZXJEYXRhKCJLZXkyIiwg
ZG9jRWxlbSwgbnVsbCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIGNEYXRhLnNldFVzZXJE
YXRhKCJLZXkyIiwgZG9jRWxlbSwgbnVsbEhhbmRsZXIuaGFuZGxlKTsKLSAgICAgIH0KLSAgICAg
ICByZXR1cm5lZDEgPSBlbnRSZWYuZ2V0VXNlckRhdGEoIktleTEiKTsKLSAgICAgIHJldHVybmVk
MiA9IGNEYXRhLmdldFVzZXJEYXRhKCJLZXkyIik7Ci0gICAgICBzdWNjZXNzID0gcmV0dXJuZWQx
LmlzRXF1YWxOb2RlKHJldHVybmVkMik7Ci0gICAgICBhc3NlcnRGYWxzZSgibm9kZXNldHVzZXJk
YXRhMDgiLHN1Y2Nlc3MpOwotCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICBu
b2Rlc2V0dXNlcmRhdGEwOCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LnhodG1sIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVzZXR1c2VyZGF0YTA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0ZjQ2NDA2OTZlNmY5MjQzYTYwODFmNzkyMjE3OGRjMWViNmFhZmNhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2Rlc2V0dXNlcmRhdGEwOC54aHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDczICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCI/Pjw/VEVTVC1TVFlMRSBQ
SURBVEE/PgotPCFET0NUWVBFIGh0bWwKLSAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IFN0cmljdC8vRU4iCi0gICAieGh0bWwxLXN0cmljdC5kdGQiIFsKLSAgIDwhRU5USVRZIGFscGhh
ICImIzk0NTsiPgotICAgPCFFTlRJVFkgYmV0YSAiJiM5NDY7Ij4KLSAgIDwhRU5USVRZIGdhbW1h
ICImIzk0NzsiPgotICAgPCFFTlRJVFkgZGVsdGEgIiYjOTQ4OyI+Ci0gICA8IUVOVElUWSBlcHNp
bG9uICImIzk0OTsiPgotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTUwOyI+Ci0gICA8IU5PVEFUSU9O
IG5vdGF0aW9uMSBQVUJMSUMgIm5vdGF0aW9uMUZpbGUiPgotICAgPCFOT1RBVElPTiBub3RhdGlv
bjIgU1lTVEVNICJub3RhdGlvbjJGaWxlIj4KLSAgIDwhQVRUTElTVCBwCi0gICAgICAgIGRpciBD
REFUQSAncnRsJwotICAgICAgICB4bWxuczpkbXN0YyBDREFUQSAjSU1QTElFRAotICAgICAgICB4
bWxuczpubSBDREFUQSAjSU1QTElFRAotICAgICAgICB4bWxuczplbXAyIENEQVRBICNJTVBMSUVE
PgotICAgPCFBVFRMSVNUIGh0bWwKLSAgICAgICAgICAgICAgICAgICB4bWxuczp4c2kgQ0RBVEEg
I0lNUExJRUQKLSAgICAgICAgICAgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lN
UExJRUQ+Ci0gICA8IUFUVExJU1QgYWNyb255bSB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlv
biBDREFUQSAjSU1QTElFRD4KLSAgIDwhRU5USVRZIGVudDQgIjxzcGFuIHhtbG5zPSdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJz5FbGVtZW50IGRhdGE8L3NwYW4+PD9QSXRhcmdldCBQSWRh
dGE/PiI+Ci0gICA8IUFUVExJU1Qgc3BhbiB4bWxucyBDREFUQSAjSU1QTElFRD4KLV0+Ci08IS0t
IFRoaXMgaXMgY29tbWVudCBudW1iZXIgMS4tLT4KLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJwotICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDEvWE1MU2NoZW1hLWluc3RhbmNlIgotICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwgaGNfc3RhZmYueHNkIj48aGVhZD48bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPjx0
aXRsZT5oY19zdGFmZjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
c2VsZnhodG1sLmpzIi8+PHNjcmlwdCBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Im5vZGVzZXR1c2VyZGF0YTA4LmpzIi8+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48
L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0
dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9lbT4KLSAgPHN0cm9uZz5NYXJnYXJl
dCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFudDwvY29kZT4KLSAgPHN1cD41Niww
MDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFjcm9ueW0gdGl0bGU9IlllcyIgeHNp
Om5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIzMCBOb3J0aCBBdmUuIERhbGxhcywg
VGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3
LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxzdHJvbmc+TWFydGhhIFJheW5vbGRz
Ci08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdpdGggRW50aXR5UmVmZXJlbmNlIG51
bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBhbiBhZGphY2VudCBDREFUQVNlY3Rp
b24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11dPjwvc3Ryb25nPgotICA8Y29kZT5T
ZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+
Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVt
YUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1tYTsKLSA5ODU1NDwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cubmV0emVyby5jb20iPgotICA8ZW0+
RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25lczwvc3Ryb25nPgotICA8Y29kZT5E
ZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAwLDAwMDwvc3VwPgotICA8dmFyPiZl
bnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iTm8iIGlkPSJfOTg1NTMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPlBPIEJveCAyNyBJcnZpbmcsIHRl
eGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxuczpubT0iaHR0cDovL3d3dy5hbHRh
dmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8c3Ryb25nPkplbnkgT2Nvbm5vcjwv
c3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8L2NvZGU+Ci0gIDxzdXA+OTUsMDAw
PC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNz
PSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Illl
cyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1NjwvYWNyb255bT4KLSA8L3A+Ci0g
PHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+Ci0gIDxlbT5FTVAwMDA1PC9lbT4K
LSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAgPGNvZGU+Q29tcHV0ZXIgU3BlY2lh
bGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAgPHZhcj5tYWxlPC92YXI+Ci0gIDxh
Y3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0
aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcgVGV4YXMgOTg1NTg8L2Fjcm9ueW0+
Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTI1YTM4MDlkNzkwMWZhMDQ0
NmM3Nzc3YjRlYWFjYmQ0ZjRlZTExYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxh
Y2V3aG9sZXRleHQwNi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS90
ZXh0cmVwbGFjZXdob2xldGV4dDA2Ci1TdGF0dXMJU3VjY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYuanMgYi9M
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNi5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQxOGYyNzYxMjQzNTE0YWJhMTZmYmY0
MzJmY2VjOGFmZDM3Y2QwMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9s
ZXRleHQwNi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0KLS8qCi1Db3B5cmln
aHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVz
ZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1
bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFs
bCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBX
M0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1w
bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICog
IEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBp
ZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAg
ICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9j
b3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0x
MDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcg
dGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBl
eGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0
YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxl
dGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hl
biBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2Uo
KSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwot
ICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0
aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwot
ICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJuYW1lc3BhY2VBd2FyZSIsIHRydWUp
OwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzIiwgdHJ1ZSk7Ci0KLSAgICAgIGRvY3NMb2FkZWQgPSAwOwotICAgICAgCi0gICAgICB2YXIg
ZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2YodGhpcy5kb2MpICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwotICAgICAgfQotICAgICAgZG9jc0xvYWRl
ZCArPSBwcmVsb2FkKGRvY1JlZiwgImRvYyIsICJoY19zdGFmZiIpOwotICAgICAgICAKLSAgICAg
ICBpZiAoZG9jc0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2Nv
bXBsZXRlJzsKLSAgICAgICB9Ci0gICAgfSBjYXRjaChleCkgewotICAgIAljYXRjaEluaXRpYWxp
emF0aW9uRXJyb3IoYnVpbGRlciwgZXgpOwotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29t
cGxldGUnOwotICAgIH0KLX0KLQotCi0KLS8vCi0vLyAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBv
biB0aGUgY29tcGxldGlvbiBvZiAKLS8vICAgICAgZWFjaCBhc3ljaHJvbm91cyBsb2FkIHN0YXJ0
ZWQgaW4gc2V0VXBUZXN0cy4KLS8vCi0vLyAgIFdoZW4gZXZlcnkgc3luY2hyb25vdXMgbG9hZGVk
IGRvY3VtZW50IGhhcyBjb21wbGV0ZWQsCi0vLyAgICAgIHRoZSBwYWdlIHN0YXR1cyBpcyBjaGFu
Z2VkIHdoaWNoIGFsbG93cyB0aGUKLS8vICAgICAgYm9keSBvZiB0aGUgdGVzdCB0byBiZSBleGVj
dXRlZC4KLWZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsKLSAgICBpZiAoKytkb2NzTG9hZGVkID09
IDEpIHsKLSAgICAgICAgc2V0VXBQYWdlU3RhdHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0K
LQotLyoqCi0qIAotCVRoZSBtZXRob2QgcmVwbGFjZVdob2xlVGV4dCBzdWJzdGl0dXRlcyB0aGUg
YSBzcGVjaWZpZWQgdGV4dCBmb3IgdGhlIHRleHQgb2YgCi0JdGhlIGN1cnJlbnQgbm9kZSBhbmQg
YWxsIGxvZ2ljYWxseS1hZGphY2VudCB0ZXh0IG5vZGVzLiAgVGhpcyBtZXRob2QgcmFpc2VzCi0J
YSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaWYgb25lIG9mIHRoZSBUZXh0IG5vZGVzIGJl
aW5nIHJlcGxhY2VkIGlzIHJlYWRvbmx5LgotCQotCUludm9rZSByZXBsYWNlV2hvbGVUZXh0IG9u
IGFuIGV4aXN0aW5nIHRleHQgbm9kZSB3aXRoIG5ld2x5IGNyZWF0ZWQgdGV4dCBhbmQgRW50aXR5
cmVmZXJlbmNlCi0Jbm9kZXMgKHdob3NlIHJlcGxhY2VtZW50IHRleHQgaXMgYSBjaGFyYWN0ZXIg
ZW50aXR5IHJlZmVyZW5jZSkgYXBwZW5kZWQgYXMgY2hpbGRyZW4gb2YgaXRzIHBhcmVudCBlbGVt
ZW50IG5vZGUuICAKLQlXaGVyZSB0aGUgbm9kZXMgdG8gYmUgcmVtb3ZlZCBhcmUgcmVhZC1vbmx5
IGRlc2NlbmRhbnRzIG9mIGFuIEVudGl0eVJlZmVyZW5jZSwgdGhlIEVudGl0eVJlZmVyZW5jZSAK
LSAgICAgICAgbXVzdCBiZSByZW1vdmVkIGluc3RlYWQgb2YgdGhlIHJlYWQtb25seSBub2Rlcy4g
T25seSBpZiBhbnkgRW50aXR5UmVmZXJlbmNlIHRvIGJlIHJlbW92ZWQgaGFzIAotICAgICAgICBk
ZXNjZW5kYW50cyB0aGF0IGFyZSBub3QgRW50aXR5UmVmZXJlbmNlLCBUZXh0LCBvciBDREFUQVNl
Y3Rpb24gbm9kZXMsIHRoZSByZXBsYWNlV2hvbGVUZXh0IAotICAgICAgICBtZXRob2QgbXVzdCBm
YWlsLCByYWlzaW5nIGEgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSLiBWZXJpZnkgdGhhdCB0
aGUgbWV0aG9kIGRvZXMgbm90IHJhaXNlCi0gICAgICAgIGFuIGV4Y2VwdGlvbiBhbmQgdmVyaWZ5
IHRoZSBjb250ZW50IG9mIHRoZSByZXR1cm5lZCB0ZXh0IG5vZGUuCi0KLSogQGF1dGhvciBJQk0K
LSogQGF1dGhvciBOZWlsIERlbGltYQotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQv
UkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1yZXBsYWNlV2hvbGVUZXh0
Ci0qLwotZnVuY3Rpb24gdGV4dHJlcGxhY2V3aG9sZXRleHQwNigpIHsKLSAgIHZhciBzdWNjZXNz
OwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBsYWNld2hvbGV0
ZXh0MDYiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZhciBpdGVtTGlz
dDsKLSAgICAgIHZhciBlbGVtZW50U3Ryb25nOwotICAgICAgdmFyIHRleHROb2RlOwotICAgICAg
dmFyIGVyZWZOb2RlOwotICAgICAgdmFyIHJlcGxhY2VkVGV4dDsKLSAgICAgIHZhciBhcHBlbmRl
ZENoaWxkOwotICAgICAgdmFyIG5vZGVWYWx1ZTsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9
IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAg
ICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAgIGRvYyA9IGxvYWQoZG9jUmVm
LCAiZG9jIiwgImhjX3N0YWZmIik7Ci0gICAgICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5
VGFnTmFtZSgic3Ryb25nIik7Ci0gICAgICBlbGVtZW50U3Ryb25nID0gaXRlbUxpc3QuaXRlbSgw
KTsKLSAgICAgIHRleHROb2RlID0gZG9jLmNyZWF0ZVRleHROb2RlKCJOZXcgVGV4dCIpOwotICAg
ICAgZXJlZk5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJiZXRhIik7Ci0gICAgICBh
cHBlbmRlZENoaWxkID0gZWxlbWVudFN0cm9uZy5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAg
ICBhcHBlbmRlZENoaWxkID0gZWxlbWVudFN0cm9uZy5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0g
ICAgICB0ZXh0Tm9kZSA9IGVsZW1lbnRTdHJvbmcuZmlyc3RDaGlsZDsKLQotICAgICAgcmVwbGFj
ZWRUZXh0ID0gdGV4dE5vZGUucmVwbGFjZVdob2xlVGV4dCgiTmV3IFRleHQgYW5kIENkYXRhIik7
Ci0gICAgICBub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2RlVmFsdWU7Ci0KLSAgICAgIGFzc2VydEVx
dWFscygidGV4dHJlcGxhY2V3aG9sZXRleHQwNiIsIk5ldyBUZXh0IGFuZCBDZGF0YSIsbm9kZVZh
bHVlKTsKLSAgICAgICAKLX0KLQotCi0KLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgIHRleHRy
ZXBsYWNld2hvbGV0ZXh0MDYoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA2LnhodG1sIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYueGh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5NzBiNjBiMTA5MDhhMGM3OWZkNTdjODEzOWJkOTE4
YzM3MWVjMmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDYu
eGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
Pz48P1RFU1QtU1RZTEUgUElEQVRBPz4KLTwhRE9DVFlQRSBodG1sCi0gICBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgotICAgInhodG1sMS1zdHJpY3QuZHRkIiBbCi0g
ICA8IUVOVElUWSBhbHBoYSAiJiM5NDU7Ij4KLSAgIDwhRU5USVRZIGJldGEgIiYjOTQ2OyI+Ci0g
ICA8IUVOVElUWSBnYW1tYSAiJiM5NDc7Ij4KLSAgIDwhRU5USVRZIGRlbHRhICImIzk0ODsiPgot
ICAgPCFFTlRJVFkgZXBzaWxvbiAiJiM5NDk7Ij4KLSAgIDwhRU5USVRZIGFscGhhICImIzk1MDsi
PgotICAgPCFOT1RBVElPTiBub3RhdGlvbjEgUFVCTElDICJub3RhdGlvbjFGaWxlIj4KLSAgIDwh
Tk9UQVRJT04gbm90YXRpb24yIFNZU1RFTSAibm90YXRpb24yRmlsZSI+Ci0gICA8IUFUVExJU1Qg
cAotICAgICAgICBkaXIgQ0RBVEEgJ3J0bCcKLSAgICAgICAgeG1sbnM6ZG1zdGMgQ0RBVEEgI0lN
UExJRUQKLSAgICAgICAgeG1sbnM6bm0gQ0RBVEEgI0lNUExJRUQKLSAgICAgICAgeG1sbnM6ZW1w
MiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBodG1sCi0gICAgICAgICAgICAgICAgICAg
eG1sbnM6eHNpIENEQVRBICNJTVBMSUVECi0gICAgICAgICAgICAgICAgICAgeHNpOnNjaGVtYUxv
Y2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFBVFRMSVNUIGFjcm9ueW0geHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUVOVElUWSBlbnQ0ICI8c3Bh
biB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCc+RWxlbWVudCBkYXRhPC9zcGFu
Pjw/UEl0YXJnZXQgUElkYXRhPz4iPgotICAgPCFBVFRMSVNUIHNwYW4geG1sbnMgQ0RBVEEgI0lN
UExJRUQ+Ci1dPgotPCEtLSBUaGlzIGlzIGNvbW1lbnQgbnVtYmVyIDEuLS0+Ci08aHRtbCB4bWxu
cz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKLSAgICAgICAgeG1sbnM6eHNpPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKLSAgICAgICAgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIGhjX3N0YWZmLnhzZCI+PGhl
YWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiLz48dGl0bGU+aGNfc3RhZmY8L3RpdGxlPjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InNlbGZ4aHRtbC5qcyIvPjxzY3JpcHQgY2hhcnNldD0iVVRGLTgiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0ZXh0cmVwbGFjZXdob2xldGV4dDA2LmpzIi8+PHNj
cmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0ZSgpIHsgc3Rh
cnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSJsb2FkQ29tcGxldGUoKSI+
Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cudXNhLmNvbSI+Ci0gIDxlbT5FTVAwMDAxPC9l
bT4KLSAgPHN0cm9uZz5NYXJnYXJldCBNYXJ0aW48L3N0cm9uZz4KLSAgPGNvZGU+QWNjb3VudGFu
dDwvY29kZT4KLSAgPHN1cD41NiwwMDA8L3N1cD4KLSAgPHZhcj5GZW1hbGU8L3Zhcj4KLSAgPGFj
cm9ueW0gdGl0bGU9IlllcyIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249IlllcyI+MTIz
MCBOb3J0aCBBdmUuIERhbGxhcywgVGV4YXMgOTg1NTE8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHht
bG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgotICA8ZW0+RU1QMDAwMjwvZW0+Ci0gIDxz
dHJvbmc+TWFydGhhIFJheW5vbGRzCi08IVtDREFUQVtUaGlzIGlzIGEgQ0RBVEFTZWN0aW9uIHdp
dGggRW50aXR5UmVmZXJlbmNlIG51bWJlciAyICZlbnQyO11dPgotPCFbQ0RBVEFbVGhpcyBpcyBh
biBhZGphY2VudCBDREFUQVNlY3Rpb24gd2l0aCBhIHJlZmVyZW5jZSB0byBhIHRhYiAmdGFiO11d
Pjwvc3Ryb25nPgotICA8Y29kZT5TZWNyZXRhcnk8L2NvZGU+Ci0gIDxzdXA+MzUsMDAwPC9zdXA+
Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMi
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPiZiZXRhOyBEYWxsYXMsICZnYW1t
YTsKLSA5ODU1NDwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZG1zdGM9Imh0dHA6Ly93d3cu
bmV0emVyby5jb20iPgotICA8ZW0+RU1QMDAwMzwvZW0+Ci0gIDxzdHJvbmc+Um9nZXIKLSBKb25l
czwvc3Ryb25nPgotICA8Y29kZT5EZXBhcnRtZW50IE1hbmFnZXI8L2NvZGU+Ci0gIDxzdXA+MTAw
LDAwMDwvc3VwPgotICA8dmFyPiZlbnQ0OzwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iTm8iIGlkPSJfOTg1NTMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMi
PlBPIEJveCAyNyBJcnZpbmcsIHRleGFzIDk4NTUzPC9hY3JvbnltPgotIDwvcD4KLSA8cCB4bWxu
czpubT0iaHR0cDovL3d3dy5hbHRhdmlzdGEuY29tIj4KLSAgPGVtPkVNUDAwMDQ8L2VtPgotICA8
c3Ryb25nPkplbnkgT2Nvbm5vcjwvc3Ryb25nPgotICA8Y29kZT5QZXJzb25uZWwgRGlyZWN0b3I8
L2NvZGU+Ci0gIDxzdXA+OTUsMDAwPC9zdXA+Ci0gIDx2YXI+RmVtYWxlPC92YXI+Ci0gIDxhY3Jv
bnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZJmFscGhhOyIgaWQ9Il85ODU1NiIgeHNpOm5vTmFtZXNw
YWNlU2NoZW1hTG9jYXRpb249IlllcyI+MjcgU291dGggUm9hZC4gRGFsbGFzLCBUZXhhcyA5ODU1
NjwvYWNyb255bT4KLSA8L3A+Ci0gPHAgeG1sbnM6ZW1wMj0iaHR0cDovL3d3dy5uaXN0LmdvdiI+
Ci0gIDxlbT5FTVAwMDA1PC9lbT4KLSAgPHN0cm9uZz5Sb2JlcnQgTXllcnM8L3N0cm9uZz4KLSAg
PGNvZGU+Q29tcHV0ZXIgU3BlY2lhbGlzdDwvY29kZT4KLSAgPHN1cD45MCwwMDA8L3N1cD4KLSAg
PHZhcj5tYWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIGNsYXNzPSJZZXMiIHhzaTpu
b05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjE4MjEgTm9yZGljLiBSb2FkLCBJcnZpbmcg
VGV4YXMgOTg1NTg8L2Fjcm9ueW0+Ci0gPC9wPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTA3NWVjYmQwOGU2ODZmNjlmYWZlNGE2MzdhYzk2NTYyMGEyZjQ5Yy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVz
dC1TdWl0ZS9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA3Ci1TdGF0dXMJU3VjY2Vz
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBs
YWNld2hvbGV0ZXh0MDcuanMgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4
dHJlcGxhY2V3aG9sZXRleHQwNy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU2
NGQzMmRkMzEzMjlkNjdhOTkxYTc5MTQyMTAwZjAwMWYzZWIwNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwz
L2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEzOSAr
MCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIwMDQgV29ybGQgV2lkZSBXZWIgQ29u
c29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3Bl
YW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3Ms
IEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNlcnZlZC4gVGhpcyB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJlIExpY2Vuc2UgWzFdIGluIHRoZSAK
LWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAotCi1bMV0gaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQotKi8K
LQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQgaWRlbnRpZmllcyB0aGUgdGVzdC4K
LSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRlc3QKLSAgICAqLwotZnVuY3Rpb24g
Z2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RP
TS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDciOwotICAgfQot
Ci12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1aWxkZXIgPSBudWxsOwotCi0vLwot
Ly8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgdGVzdGluZyBmcmFtZXdvcmsgYmVm
b3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUuCi0vLwotLy8gICBJZiB0aGVyZSBh
cmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3luY2hyb25vdXMKLS8vICAgICAgICBk
b2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndpc2UsIHRoZSBzdGF0dXMKLS8vICAg
ICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNlcHRpb24gaXMgaW1tZWRpYXRlbHkK
LS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUgYm9keSBvZiB0aGUgdGVzdC4KLS8v
Ci1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBhZ2VTdGF0dXMgPSAncnVubmluZyc7
Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0ZXMgdGVzdCBkb2N1bWVudCBidWls
ZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0gICAgIGJ1aWxkZXIgPSBjcmVhdGVD
b25maWd1cmVkQnVpbGRlcigpOwotICAgICAgIHNldEltcGxlbWVudGF0aW9uQXR0cmlidXRlKCJu
YW1lc3BhY2VBd2FyZSIsIHRydWUpOwotCi0gICAgICBkb2NzTG9hZGVkID0gMDsKLSAgICAgIAot
ICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlwZW9mKHRoaXMuZG9jKSAhPSAn
dW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRvYzsKLSAgICAgIH0KLSAgICAg
IGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAiaGNfc3RhZmYiKTsKLSAgICAg
ICAgCi0gICAgICAgaWYgKGRvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICAgIHNldFVwUGFnZVN0
YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgICAgfQotICAgIH0gY2F0Y2goZXgpIHsKLSAgICAJY2F0
Y2hJbml0aWFsaXphdGlvbkVycm9yKGJ1aWxkZXIsIGV4KTsKLSAgICAgICAgc2V0VXBQYWdlU3Rh
dHVzID0gJ2NvbXBsZXRlJzsKLSAgICB9Ci19Ci0KLQotCi0vLwotLy8gICBUaGlzIG1ldGhvZCBp
cyBjYWxsZWQgb24gdGhlIGNvbXBsZXRpb24gb2YgCi0vLyAgICAgIGVhY2ggYXN5Y2hyb25vdXMg
bG9hZCBzdGFydGVkIGluIHNldFVwVGVzdHMuCi0vLwotLy8gICBXaGVuIGV2ZXJ5IHN5bmNocm9u
b3VzIGxvYWRlZCBkb2N1bWVudCBoYXMgY29tcGxldGVkLAotLy8gICAgICB0aGUgcGFnZSBzdGF0
dXMgaXMgY2hhbmdlZCB3aGljaCBhbGxvd3MgdGhlCi0vLyAgICAgIGJvZHkgb2YgdGhlIHRlc3Qg
dG8gYmUgZXhlY3V0ZWQuCi1mdW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7Ci0gICAgaWYgKCsrZG9j
c0xvYWRlZCA9PSAxKSB7Ci0gICAgICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0g
ICAgfQotfQotCi0KLS8qKgotKiAKLUFwcGVuZCBhbiBlbnRpdHkgcmVmZXJlbmNlIGFuZCBhIHRl
eHQgbm9kZSBhZnRlciB0byB0aGUgY29udGVudCBvZiB0aGUKLWZpcnN0IHN0cm9uZyBlbGVtZW50
LiAgVGhlbiBjYWxsIHJlcGxhY2VXaG9sZVRleHQgb24gaW5pdGlhbCBjb250ZW50Ci1vZiB0aGF0
IGVsZW1lbnQuICBTaW5jZSB0aGUgZW50aXR5IHJlZmVyZW5jZSBkb2VzIG5vdCBjb250YWluIGFu
eSAKLWxvZ2ljYWxseS1hZGphY2VudCB0ZXh0IGNvbnRlbnQsIG9ubHkgdGhlIGluaXRpYWwgdGV4
dCBlbGVtZW50IHNob3VsZAotYmUgcmVwbGFjZWQuIAotCi0qIEBhdXRob3IgSUJNCi0qIEBhdXRo
b3IgTmVpbCBEZWxpbWEKLSogQGF1dGhvciBDdXJ0IEFybm9sZAotKiBAc2VlIGh0dHA6Ly93d3cu
dzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvY29yZSNUZXh0My1y
ZXBsYWNlV2hvbGVUZXh0Ci0qIEBzZWUgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hv
d19idWcuY2dpP2lkPTQyNQotKi8KLWZ1bmN0aW9uIHRleHRyZXBsYWNld2hvbGV0ZXh0MDcoKSB7
Ci0gICB2YXIgc3VjY2VzczsKLSAgICBpZihjaGVja0luaXRpYWxpemF0aW9uKGJ1aWxkZXIsICJ0
ZXh0cmVwbGFjZXdob2xldGV4dDA3IikgIT0gbnVsbCkgcmV0dXJuOwotICAgIHZhciBkb2M7Ci0g
ICAgICB2YXIgaXRlbUxpc3Q7Ci0gICAgICB2YXIgZWxlbWVudE5hbWU7Ci0gICAgICB2YXIgdGV4
dE5vZGU7Ci0gICAgICB2YXIgZXJlZk5vZGU7Ci0gICAgICB2YXIgcmVwbGFjZWRUZXh0OwotICAg
ICAgdmFyIGFwcGVuZGVkQ2hpbGQ7Ci0gICAgICB2YXIgbm9kZTsKLSAgICAgIHZhciBub2RlVmFs
dWU7Ci0gICAgICB2YXIgbm9kZVR5cGU7Ci0gICAgICAKLSAgICAgIHZhciBkb2NSZWYgPSBudWxs
OwotICAgICAgaWYgKHR5cGVvZih0aGlzLmRvYykgIT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAg
ZG9jUmVmID0gdGhpcy5kb2M7Ci0gICAgICB9Ci0gICAgICBkb2MgPSBsb2FkKGRvY1JlZiwgImRv
YyIsICJoY19zdGFmZiIpOwotICAgICAgaXRlbUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoInN0cm9uZyIpOwotICAgICAgZWxlbWVudE5hbWUgPSBpdGVtTGlzdC5pdGVtKDApOwotICAg
ICAgZXJlZk5vZGUgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJlbnQ0Iik7Ci0gICAgICB0
ZXh0Tm9kZSA9IGRvYy5jcmVhdGVUZXh0Tm9kZSgiTmV3IFRleHQiKTsKLSAgICAgIGFwcGVuZGVk
Q2hpbGQgPSBlbGVtZW50TmFtZS5hcHBlbmRDaGlsZChlcmVmTm9kZSk7Ci0gICAgICBhcHBlbmRl
ZENoaWxkID0gZWxlbWVudE5hbWUuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgdGV4dE5v
ZGUgPSBlbGVtZW50TmFtZS5maXJzdENoaWxkOwotCi0gICAgICByZXBsYWNlZFRleHQgPSB0ZXh0
Tm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJOZXcgVGV4dCBhbmQgQ2RhdGEiKTsKLSAgICAgIHRleHRO
b2RlID0gZWxlbWVudE5hbWUuZmlyc3RDaGlsZDsKLQotICAgICAgYXNzZXJ0U2FtZSgicmV0dmFs
X3NhbWUiLHRleHROb2RlLHJlcGxhY2VkVGV4dCk7Ci1ub2RlVmFsdWUgPSB0ZXh0Tm9kZS5ub2Rl
VmFsdWU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygibm9kZVZhbHVlU2FtZSIsIk5ldyBUZXh0IGFu
ZCBDZGF0YSIsbm9kZVZhbHVlKTsKLSAgICAgICBub2RlID0gdGV4dE5vZGUubmV4dFNpYmxpbmc7
Ci0KLSAgICAgIGFzc2VydE5vdE51bGwoInNlY29uZENoaWxkTm90TnVsbCIsbm9kZSk7Ci1ub2Rl
VHlwZSA9IG5vZGUubm9kZVR5cGU7Ci0KLSAgICAgIGFzc2VydEVxdWFscygic2Vjb25kQ2hpbGRJ
c0VudFJlZiIsNSxub2RlVHlwZSk7Ci0gICAgICAgCi19Ci0KLQotCi0KLWZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA3KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwNy54aHRt
bCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4
dDA3LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDI5NzdiYTE4OGFhMWIx
Mzg4NjZlZGFiMzU1NWI3OTdjMjQxNzgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0cmVw
bGFjZXdob2xldGV4dDA3LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIj8+PD9URVNULVNUWUxFIFBJREFUQT8+Ci08IURPQ1RZUEUgaHRtbAot
ICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKLSAgICJ4aHRtbDEt
c3RyaWN0LmR0ZCIgWwotICAgPCFFTlRJVFkgYWxwaGEgIiYjOTQ1OyI+Ci0gICA8IUVOVElUWSBi
ZXRhICImIzk0NjsiPgotICAgPCFFTlRJVFkgZ2FtbWEgIiYjOTQ3OyI+Ci0gICA8IUVOVElUWSBk
ZWx0YSAiJiM5NDg7Ij4KLSAgIDwhRU5USVRZIGVwc2lsb24gIiYjOTQ5OyI+Ci0gICA8IUVOVElU
WSBhbHBoYSAiJiM5NTA7Ij4KLSAgIDwhTk9UQVRJT04gbm90YXRpb24xIFBVQkxJQyAibm90YXRp
b24xRmlsZSI+Ci0gICA8IU5PVEFUSU9OIG5vdGF0aW9uMiBTWVNURU0gIm5vdGF0aW9uMkZpbGUi
PgotICAgPCFBVFRMSVNUIHAKLSAgICAgICAgZGlyIENEQVRBICdydGwnCi0gICAgICAgIHhtbG5z
OmRtc3RjIENEQVRBICNJTVBMSUVECi0gICAgICAgIHhtbG5zOm5tIENEQVRBICNJTVBMSUVECi0g
ICAgICAgIHhtbG5zOmVtcDIgQ0RBVEEgI0lNUExJRUQ+Ci0gICA8IUFUVExJU1QgaHRtbAotICAg
ICAgICAgICAgICAgICAgIHhtbG5zOnhzaSBDREFUQSAjSU1QTElFRAotICAgICAgICAgICAgICAg
ICAgIHhzaTpzY2hlbWFMb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KLSAgIDwhQVRUTElTVCBhY3Jv
bnltIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgotICAgPCFF
TlRJVFkgZW50NCAiPHNwYW4geG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPkVs
ZW1lbnQgZGF0YTwvc3Bhbj48P1BJdGFyZ2V0IFBJZGF0YT8+Ij4KLSAgIDwhQVRUTElTVCBzcGFu
IHhtbG5zIENEQVRBICNJTVBMSUVEPgotXT4KLTwhLS0gVGhpcyBpcyBjb21tZW50IG51bWJlciAx
Li0tPgotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCi0gICAgICAg
IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCi0g
ICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCBo
Y19zdGFmZi54c2QiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+PHRpdGxlPmhjX3N0YWZmPC90aXRsZT48c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWxmeGh0bWwuanMiLz48c2NyaXB0IGNo
YXJzZXQ9IlVURi04IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0idGV4dHJlcGxhY2V3aG9s
ZXRleHQwNy5qcyIvPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiBsb2Fk
Q29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyB9PC9zY3JpcHQ+PC9oZWFkPjxib2R5IG9ubG9hZD0i
bG9hZENvbXBsZXRlKCkiPgotIDxwIHhtbG5zOmRtc3RjPSJodHRwOi8vd3d3LnVzYS5jb20iPgot
ICA8ZW0+RU1QMDAwMTwvZW0+Ci0gIDxzdHJvbmc+TWFyZ2FyZXQgTWFydGluPC9zdHJvbmc+Ci0g
IDxjb2RlPkFjY291bnRhbnQ8L2NvZGU+Ci0gIDxzdXA+NTYsMDAwPC9zdXA+Ci0gIDx2YXI+RmVt
YWxlPC92YXI+Ci0gIDxhY3JvbnltIHRpdGxlPSJZZXMiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxv
Y2F0aW9uPSJZZXMiPjEyMzAgTm9ydGggQXZlLiBEYWxsYXMsIFRleGFzIDk4NTUxPC9hY3Jvbnlt
PgotIDwvcD4KLSA8cCB4bWxuczpkbXN0Yz0iaHR0cDovL3d3dy51c2EuY29tIj4KLSAgPGVtPkVN
UDAwMDI8L2VtPgotICA8c3Ryb25nPk1hcnRoYSBSYXlub2xkcwotPCFbQ0RBVEFbVGhpcyBpcyBh
IENEQVRBU2VjdGlvbiB3aXRoIEVudGl0eVJlZmVyZW5jZSBudW1iZXIgMiAmZW50MjtdXT4KLTwh
W0NEQVRBW1RoaXMgaXMgYW4gYWRqYWNlbnQgQ0RBVEFTZWN0aW9uIHdpdGggYSByZWZlcmVuY2Ug
dG8gYSB0YWIgJnRhYjtdXT48L3N0cm9uZz4KLSAgPGNvZGU+U2VjcmV0YXJ5PC9jb2RlPgotICA8
c3VwPjM1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0i
WWVzIiBjbGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4mYmV0
YTsgRGFsbGFzLCAmZ2FtbWE7Ci0gOTg1NTQ8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmRt
c3RjPSJodHRwOi8vd3d3Lm5ldHplcm8uY29tIj4KLSAgPGVtPkVNUDAwMDM8L2VtPgotICA8c3Ry
b25nPlJvZ2VyCi0gSm9uZXM8L3N0cm9uZz4KLSAgPGNvZGU+RGVwYXJ0bWVudCBNYW5hZ2VyPC9j
b2RlPgotICA8c3VwPjEwMCwwMDA8L3N1cD4KLSAgPHZhcj4mZW50NDs8L3Zhcj4KLSAgPGFjcm9u
eW0gdGl0bGU9IlllcyIgY2xhc3M9Ik5vIiBpZD0iXzk4NTUzIiB4c2k6bm9OYW1lc3BhY2VTY2hl
bWFMb2NhdGlvbj0iWWVzIj5QTyBCb3ggMjcgSXJ2aW5nLCB0ZXhhcyA5ODU1MzwvYWNyb255bT4K
LSA8L3A+Ci0gPHAgeG1sbnM6bm09Imh0dHA6Ly93d3cuYWx0YXZpc3RhLmNvbSI+Ci0gIDxlbT5F
TVAwMDA0PC9lbT4KLSAgPHN0cm9uZz5KZW55IE9jb25ub3I8L3N0cm9uZz4KLSAgPGNvZGU+UGVy
c29ubmVsIERpcmVjdG9yPC9jb2RlPgotICA8c3VwPjk1LDAwMDwvc3VwPgotICA8dmFyPkZlbWFs
ZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBjbGFzcz0iWSZhbHBoYTsiIGlkPSJfOTg1
NTYiIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJZZXMiPjI3IFNvdXRoIFJvYWQuIERh
bGxhcywgVGV4YXMgOTg1NTY8L2Fjcm9ueW0+Ci0gPC9wPgotIDxwIHhtbG5zOmVtcDI9Imh0dHA6
Ly93d3cubmlzdC5nb3YiPgotICA8ZW0+RU1QMDAwNTwvZW0+Ci0gIDxzdHJvbmc+Um9iZXJ0IE15
ZXJzPC9zdHJvbmc+Ci0gIDxjb2RlPkNvbXB1dGVyIFNwZWNpYWxpc3Q8L2NvZGU+Ci0gIDxzdXA+
OTAsMDAwPC9zdXA+Ci0gIDx2YXI+bWFsZTwvdmFyPgotICA8YWNyb255bSB0aXRsZT0iWWVzIiBj
bGFzcz0iWWVzIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iWWVzIj4xODIxIE5vcmRp
Yy4gUm9hZCwgSXJ2aW5nIFRleGFzIDk4NTU4PC9hY3JvbnltPgotIDwvcD4KLTwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJl
cGxhY2V3aG9sZXRleHQwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDI0NTFhNDY2YjY0MzFhMjRkNmI3YTQ5MzJhNmRjZDMxNDQ1ZTY0
MmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDgtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQw
OAotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGhyb3dfTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSOiBhc3NlcnRUcnVlIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMy9jb3JlL3RleHRyZXBsYWNld2hvbGV0ZXh0MDguanMgYi9MYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTA4NTRiMzBmMmZmYTc0ZDczYTcxNGFmZjdkYzdiZDMwYTA1ODlj
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0KLS8qCi1Db3B5cmlnaHQgw4LCqSAyMDAxLTIw
MDQgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgCi0oTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUg
b2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSAKLWZvciBJbmZvcm1h
dGljcyBhbmQgTWF0aGVtYXRpY3MsIEtlaW8gVW5pdmVyc2l0eSkuIEFsbCAKLVJpZ2h0cyBSZXNl
cnZlZC4gVGhpcyB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBXM0PDgsKuIFNvZnR3YXJl
IExpY2Vuc2UgWzFdIGluIHRoZSAKLWhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gCi10aGUgaW1wbGllZCB3YXJyYW50eSBv
ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIAot
Ci1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDAyL2NvcHlyaWdodC1z
b2Z0d2FyZS0yMDAyMTIzMQotKi8KLQotCi0KLSAgIC8qKgotICAgICogIEdldHMgVVJJIHRoYXQg
aWRlbnRpZmllcyB0aGUgdGVzdC4KLSAgICAqICBAcmV0dXJuIHVyaSBpZGVudGlmaWVyIG9mIHRl
c3QKLSAgICAqLwotZnVuY3Rpb24gZ2V0VGFyZ2V0VVJJKCkgewotICAgICAgcmV0dXJuICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL3RleHRyZXBsYWNl
d2hvbGV0ZXh0MDgiOwotICAgfQotCi12YXIgZG9jc0xvYWRlZCA9IC0xMDAwMDAwOwotdmFyIGJ1
aWxkZXIgPSBudWxsOwotCi0vLwotLy8gICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUg
dGVzdGluZyBmcmFtZXdvcmsgYmVmb3JlCi0vLyAgICAgIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUu
Ci0vLwotLy8gICBJZiB0aGVyZSBhcmUgbm8gY29uZmlndXJhdGlvbiBleGNlcHRpb25zLCBhc3lu
Y2hyb25vdXMKLS8vICAgICAgICBkb2N1bWVudCBsb2FkaW5nIGlzIHN0YXJ0ZWQuICBPdGhlcndp
c2UsIHRoZSBzdGF0dXMKLS8vICAgICAgICBpcyBzZXQgdG8gY29tcGxldGUgYW5kIHRoZSBleGNl
cHRpb24gaXMgaW1tZWRpYXRlbHkKLS8vICAgICAgICByYWlzZWQgd2hlbiBlbnRlcmluZyB0aGUg
Ym9keSBvZiB0aGUgdGVzdC4KLS8vCi1mdW5jdGlvbiBzZXRVcFBhZ2UoKSB7Ci0gICBzZXRVcFBh
Z2VTdGF0dXMgPSAncnVubmluZyc7Ci0gICB0cnkgewotICAgICAvLwotICAgICAvLyAgIGNyZWF0
ZXMgdGVzdCBkb2N1bWVudCBidWlsZGVyLCBtYXkgdGhyb3cgZXhjZXB0aW9uCi0gICAgIC8vCi0g
ICAgIGJ1aWxkZXIgPSBjcmVhdGVDb25maWd1cmVkQnVpbGRlcigpOwotCi0gICAgICBkb2NzTG9h
ZGVkID0gMDsKLSAgICAgIAotICAgICAgdmFyIGRvY1JlZiA9IG51bGw7Ci0gICAgICBpZiAodHlw
ZW9mKHRoaXMuZG9jKSAhPSAndW5kZWZpbmVkJykgewotICAgICAgICBkb2NSZWYgPSB0aGlzLmRv
YzsKLSAgICAgIH0KLSAgICAgIGRvY3NMb2FkZWQgKz0gcHJlbG9hZChkb2NSZWYsICJkb2MiLCAi
YmFyZm9vIik7Ci0gICAgICAgIAotICAgICAgIGlmIChkb2NzTG9hZGVkID09IDEpIHsKLSAgICAg
ICAgICBzZXRVcFBhZ2VTdGF0dXMgPSAnY29tcGxldGUnOwotICAgICAgIH0KLSAgICB9IGNhdGNo
KGV4KSB7Ci0gICAgCWNhdGNoSW5pdGlhbGl6YXRpb25FcnJvcihidWlsZGVyLCBleCk7Ci0gICAg
ICAgIHNldFVwUGFnZVN0YXR1cyA9ICdjb21wbGV0ZSc7Ci0gICAgfQotfQotCi0KLQotLy8KLS8v
ICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBjb21wbGV0aW9uIG9mIAotLy8gICAgICBl
YWNoIGFzeWNocm9ub3VzIGxvYWQgc3RhcnRlZCBpbiBzZXRVcFRlc3RzLgotLy8KLS8vICAgV2hl
biBldmVyeSBzeW5jaHJvbm91cyBsb2FkZWQgZG9jdW1lbnQgaGFzIGNvbXBsZXRlZCwKLS8vICAg
ICAgdGhlIHBhZ2Ugc3RhdHVzIGlzIGNoYW5nZWQgd2hpY2ggYWxsb3dzIHRoZQotLy8gICAgICBi
b2R5IG9mIHRoZSB0ZXN0IHRvIGJlIGV4ZWN1dGVkLgotZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkg
ewotICAgIGlmICgrK2RvY3NMb2FkZWQgPT0gMSkgewotICAgICAgICBzZXRVcFBhZ2VTdGF0dXMg
PSAnY29tcGxldGUnOwotICAgIH0KLX0KLQotCi0vKioKLSogCi1BcHBlbmRzIGFuIGVudGl0eSBy
ZWZlcmVuY2UgY29udGFpbmluZyB0ZXh0IGFuZCBhbiBlbGVtZW50IHRvIGFuIGV4aXN0aW5nCi10
ZXh0IG5vZGUsIHRoZW4gY2FsbHMgVGV4dC5yZXBsYWNlV2hvbGVUZXh0IG9uIHRoZSBleGlzdGlu
ZyB0ZXh0IG5vZGUuCi1BIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBzaG91bGQgYmUgdGhy
b3duLgotCi0qIEBhdXRob3IgQ3VydCBBcm5vbGQKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9U
Ui8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3L2NvcmUjVGV4dDMtcmVwbGFjZVdo
b2xlVGV4dAotKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNn
aT9pZD00MjUKLSogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5j
Z2k/aWQ9NTQwCi0qLwotZnVuY3Rpb24gdGV4dHJlcGxhY2V3aG9sZXRleHQwOCgpIHsKLSAgIHZh
ciBzdWNjZXNzOwotICAgIGlmKGNoZWNrSW5pdGlhbGl6YXRpb24oYnVpbGRlciwgInRleHRyZXBs
YWNld2hvbGV0ZXh0MDgiKSAhPSBudWxsKSByZXR1cm47Ci0gICAgdmFyIGRvYzsKLSAgICAgIHZh
ciBpdGVtTGlzdDsKLSAgICAgIHZhciBwOwotICAgICAgdmFyIGVudFJlZjsKLSAgICAgIHZhciBu
b2RlOwotICAgICAgCi0gICAgICB2YXIgZG9jUmVmID0gbnVsbDsKLSAgICAgIGlmICh0eXBlb2Yo
dGhpcy5kb2MpICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgIGRvY1JlZiA9IHRoaXMuZG9jOwot
ICAgICAgfQotICAgICAgZG9jID0gbG9hZChkb2NSZWYsICJkb2MiLCAiYmFyZm9vIik7Ci0gICAg
ICBpdGVtTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicCIpOwotICAgICAgcCA9IGl0
ZW1MaXN0Lml0ZW0oMCk7Ci0gICAgICBlbnRSZWYgPSBkb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNl
KCJlbnQyIik7Ci0gICAgICBub2RlID0gcC5hcHBlbmRDaGlsZChlbnRSZWYpOwotICAgICAgbm9k
ZSA9IHAuZmlyc3RDaGlsZDsKLQotICAgICAgCi0JewotCQlzdWNjZXNzID0gZmFsc2U7Ci0JCXRy
eSB7Ci0gICAgICAgICAgICBub2RlID0gbm9kZS5yZXBsYWNlV2hvbGVUZXh0KCJ5byIpOwotICAg
ICAgICB9Ci0JCWNhdGNoKGV4KSB7Ci0gICAgICBzdWNjZXNzID0gKHR5cGVvZihleC5jb2RlKSAh
PSAndW5kZWZpbmVkJyAmJiBleC5jb2RlID09IDcpOwotCQl9Ci0JCWFzc2VydFRydWUoInRocm93
X05PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsc3VjY2Vzcyk7Ci0JfQotCi19Ci0KLQotCi0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICB0ZXh0cmVwbGFjZXdob2xldGV4dDA4KCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvdGV4dHJlcGxhY2V3
aG9sZXRleHQwOC54aHRtbCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS90ZXh0
cmVwbGFjZXdob2xldGV4dDA4LnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
ZmFlOTk2OWFmOGM2ZDEwMjM0ZmEwMDM2MmQ3ODUzZTY5N2QwZDFhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDMvY29yZS90ZXh0cmVwbGFjZXdob2xldGV4dDA4LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgWwotPCFFTlRJVFkgZW50MSAnZm9vJz4KLTwhRU5U
SVRZIGVudDIgJ2Zvbzxici8+Jz4KLTwhRUxFTUVOVCBodG1sIChoZWFkLCBib2R5KT4KLTwhQVRU
TElTVCBodG1sIHhtbG5zIENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIGhlYWQgKHRpdGxlLHNj
cmlwdCopPgotPCFFTEVNRU5UIHNjcmlwdCAoI1BDREFUQSk+Ci08IUFUVExJU1Qgc2NyaXB0IAot
ICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKLSAgICAgdHlwZSBDREFUQSAjSU1QTElFRAotICAgICBj
aGFyc2V0IENEQVRBICNJTVBMSUVEPgotPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KLTwhRUxF
TUVOVCBib2R5IChwKT4KLTwhQVRUTElTVCBib2R5IG9ubG9hZCBDREFUQSAjSU1QTElFRD4KLTwh
RUxFTUVOVCBwICgjUENEQVRBfGJyKSo+Ci08IUVMRU1FTlQgYnIgRU1QVFk+Ci1dPgotPGh0bWwg
eG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnPgotPGhlYWQ+Ci08dGl0bGU+cmVw
bGFjZVdob2xlVGV4dCBzYW1wbGU8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnIHNyYz0nc2VsZnhodG1sLmpzJz48L3NjcmlwdD48c2NyaXB0IGNoYXJzZXQ9J1VURi04JyB0
eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0ndGV4dHJlcGxhY2V3aG9sZXRleHQwOC5qcyc+PC9z
Y3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmZ1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IH08L3NjcmlwdD48L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KLTxwPmJhcjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25seS1leGNlcHRpb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9yZWFkb25s
eS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MGFjM2Q5Y2JkZjcwMGU2OTZiNmEwNzQ4NTBjNjI2YzQzODYzNjc5Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRp
dHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyMyArMCwwIEBACi1UZXN0IHRvIG1ha2Ugc3VyZSBFbnRpdHlSZWZlcmVuY2Ugbm9k
ZXMgYXJlIGFsd2F5cyB0cmVhdGVkIHJlYWRvbmx5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIHhtbERvYzIuYWRvcHROb2RlKGVudGl0eVJlZmVyZW5jZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3
LgotUEFTUyBlbnRpdHlSZWZlcmVuY2Uub3duZXJEb2N1bWVudCBpcyB4bWxEb2MKLVBBU1MgZW50
aXR5UmVmZXJlbmNlLm5vZGVWYWx1ZSA9ICdmb28nIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9N
b2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVm
ZXJlbmNlLm5vZGVWYWx1ZSBpcyBudWxsCi1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAn
Zm9vJyB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5hbWVzcGFjZUVycm9yOiBET00gRXhjZXB0aW9u
IDE0LgotUEFTUyBlbnRpdHlSZWZlcmVuY2UucHJlZml4IGlzIG51bGwKLVBBU1MgZW50aXR5UmVm
ZXJlbmNlLnRleHRDb250ZW50ID0gJ2ZvbycgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3LgotRkFJTCBlbnRpdHlSZWZlcmVu
Y2UudGV4dENvbnRlbnQgc2hvdWxkIGJlID4uIFdhcyAuCi1GQUlMIGNoaWxkcmVuQmVmb3JlRmFp
bGVkQXBwZW5kIHNob3VsZCBiZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmFwcGVu
ZENoaWxkKHRleHQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3I6IERPTSBFeGNlcHRpb24gNy4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMu
bGVuZ3RoIGlzIGNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kCi1GQUlMIGNoaWxkcmVuQmVmb3Jl
RmFpbGVkQXBwZW5kIHNob3VsZCBiZSAxLiBXYXMgMC4KLVBBU1MgZW50aXR5UmVmZXJlbmNlLmlu
c2VydEJlZm9yZSh0ZXh0LCBlbnRpdHlSZWZlcmVuY2UuZmlyc3RDaGlsZCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA3Lgot
UEFTUyBlbnRpdHlSZWZlcmVuY2UuY2hpbGROb2Rlcy5sZW5ndGggaXMgY2hpbGRyZW5CZWZvcmVG
YWlsZWRBcHBlbmQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uv
cmVhZG9ubHktZXhjZXB0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVm
ZXJlbmNlL3JlYWRvbmx5LWV4Y2VwdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2ZiMTY0MWJlZDQ0NzMwNzBmYmMyZTlmMzQ5YzE5Y2I4MWQzZThmMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9FbnRpdHlSZWZlcmVuY2UvcmVhZG9ubHktZXhjZXB0aW9ucy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL3JlYWRvbmx5LWV4Y2VwdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50aXR5UmVmZXJl
bmNlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRW50
aXR5UmVmZXJlbmNlL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0YmVlZDkzYTVlMDZkODg0MTI4ZGYzYjM0ZGI1NDJkODUwNzFlMzVkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNj
cmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VudGl0eVJlZmVyZW5jZS9zY3Jp
cHQtdGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vu
dGl0eVJlZmVyZW5jZS9zY3JpcHQtdGVzdHMvcmVhZG9ubHktZXhjZXB0aW9ucy5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWYyNDY1N2Q4MmRiM2U4YTdmYmJlNDg3N2QzZDNkNjNi
MTA5ZDQ3Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9FbnRpdHlSZWZlcmVuY2Uvc2NyaXB0LXRlc3RzL3JlYWRvbmx5
LWV4Y2VwdGlvbnMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1kZXNjcmlwdGlv
bigiVGVzdCB0byBtYWtlIHN1cmUgRW50aXR5UmVmZXJlbmNlIG5vZGVzIGFyZSBhbHdheXMgdHJl
YXRlZCByZWFkb25seSIpCi0KLXZhciB4bWxEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5j
cmVhdGVEb2N1bWVudCgiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVs
bCk7Ci12YXIgeG1sRG9jMiA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50
KCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKLXZhciBlbnRp
dHlSZWZlcmVuY2UgPSB4bWxEb2MuY3JlYXRlRW50aXR5UmVmZXJlbmNlKCJndCIpOwotCi1zaG91
bGRUaHJvdygieG1sRG9jMi5hZG9wdE5vZGUoZW50aXR5UmVmZXJlbmNlKSIpOwotc2hvdWxkQmUo
ImVudGl0eVJlZmVyZW5jZS5vd25lckRvY3VtZW50IiwgInhtbERvYyIpCi0KLS8vIG5vZGVWYWx1
ZSBpcyBkZWZpbmVkIHRvIGJlIG51bGwgZm9yIEVudGl0eSBSZWZlcmVuY2Ugbm9kZXMsIGFuZCB0
aHVzIHNob3VsZCBzaWxlbnRseSBmYWlsIHRvIG1vZGlmeQotLy8gU3BlYyBpcyBhbWJpZ2lvdXMg
YXMgdG8gaWYgd2Ugc2hvdWxkIHRocm93IGhlcmUgb3Igbm90LiAgSSd2ZSByZXF1ZXN0ZWQgY2xh
cmlmaWNhdGlvbjoKLS8vIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1k
b20vMjAwOEphbk1hci8wMDA5Lmh0bWwKLXNob3VsZFRocm93KCJlbnRpdHlSZWZlcmVuY2Uubm9k
ZVZhbHVlID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwg
Im51bGwiKTsKLQotc2hvdWxkVGhyb3coImVudGl0eVJlZmVyZW5jZS5wcmVmaXggPSAnZm9vJyIp
Owotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5wcmVmaXgiLCAibnVsbCIpOwotCi1zaG91bGRU
aHJvdygiZW50aXR5UmVmZXJlbmNlLnRleHRDb250ZW50ID0gJ2ZvbyciKTsKLXNob3VsZEJlKCJl
bnRpdHlSZWZlcmVuY2UudGV4dENvbnRlbnQiLCAiJz4nIik7Ci0KLXZhciBjaGlsZHJlbkJlZm9y
ZUZhaWxlZEFwcGVuZCA9IGVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aDsKLXNob3Vs
ZEJlKCJjaGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCIsICIxIik7Ci12YXIgdGV4dCA9IGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJGQUlMIik7Ci1zaG91bGRUaHJvdygiZW50aXR5UmVmZXJlbmNl
LmFwcGVuZENoaWxkKHRleHQpIik7Ci1zaG91bGRCZSgiZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9k
ZXMubGVuZ3RoIiwgImNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIik7Ci0KLWNoaWxkcmVuQmVm
b3JlRmFpbGVkQXBwZW5kID0gZW50aXR5UmVmZXJlbmNlLmNoaWxkTm9kZXMubGVuZ3RoOwotc2hv
dWxkQmUoImNoaWxkcmVuQmVmb3JlRmFpbGVkQXBwZW5kIiwgIjEiKTsKLXNob3VsZFRocm93KCJl
bnRpdHlSZWZlcmVuY2UuaW5zZXJ0QmVmb3JlKHRleHQsIGVudGl0eVJlZmVyZW5jZS5maXJzdENo
aWxkKSIpOwotc2hvdWxkQmUoImVudGl0eVJlZmVyZW5jZS5jaGlsZE5vZGVzLmxlbmd0aCIsICJj
aGlsZHJlbkJlZm9yZUZhaWxlZEFwcGVuZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vTm9kZS9pbml0aWFsLXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9Ob2RlL2luaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dAppbmRleCAyNmYwZWMyYTNkZWJm
ZTdhN2VkZWIwOGUyZDEwMWE3NDE1ZGNkZmI1Li4xYzk4MWZiM2I1ZDg5MjdkNWE4NDMzOGYzNzEy
NDUzYTYwY2U4MWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2luaXRp
YWwtdmFsdWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2lu
aXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dApAQCAtMTEzLDEyICsxMTMsNiBAQCBQQVNTIGVsZW1l
bnQubmFtZXNwYWNlVVJJIGlzICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJwogUEFTUyBl
bGVtZW50LnByZWZpeCBpcyAnaHRtbCcKIFBBU1MgZWxlbWVudC5ub2RlVmFsdWUgaXMgbnVsbAog
UEFTUyBlbGVtZW50LmF0dHJpYnV0ZXMudG9TdHJpbmcoKSBpcyAnW29iamVjdCBOYW1lZE5vZGVN
YXBdJwotUEFTUyBkb2N1bWVudC5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoJ2d0JykgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBl
bnRpdHlSZWZlcmVuY2Uubm9kZU5hbWUgaXMgJ2d0JwotUEFTUyBlbnRpdHlSZWZlcmVuY2UubG9j
YWxOYW1lIGlzIG51bGwKLVBBU1MgZW50aXR5UmVmZXJlbmNlLm5hbWVzcGFjZVVSSSBpcyBudWxs
Ci1QQVNTIGVudGl0eVJlZmVyZW5jZS5wcmVmaXggaXMgbnVsbAotUEFTUyBlbnRpdHlSZWZlcmVu
Y2Uubm9kZVZhbHVlIGlzIG51bGwKIFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLm5vZGVOYW1l
IGlzICd4bWwtc3R5bGVzaGVldCcKIFBBU1MgcHJvY2Vzc2luZ0luc3RydWN0aW9uLmxvY2FsTmFt
ZSBpcyBudWxsCiBQQVNTIHByb2Nlc3NpbmdJbnN0cnVjdGlvbi5uYW1lc3BhY2VVUkkgaXMgbnVs
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9zY3JpcHQtdGVzdHMvaW5p
dGlhbC12YWx1ZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9p
bml0aWFsLXZhbHVlcy5qcwppbmRleCA3MzFhODA2MzkwODY5OGI0Njk1YjI4YzM2Yjc3M2E3ZGQx
YTMwMzU0Li45YjEyYTk3OTAxYzAzOTQzMjMzMmQzM2RmY2FkYzk4MjdmYjZhYWZhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFsLXZhbHVl
cy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL3NjcmlwdC10ZXN0cy9pbml0aWFs
LXZhbHVlcy5qcwpAQCAtMTU2LDE2ICsxNTYsNiBAQCBzaG91bGRCZSgiZWxlbWVudC5wcmVmaXgi
LCAiJ2h0bWwnIik7CiBzaG91bGRCZSgiZWxlbWVudC5ub2RlVmFsdWUiLCAibnVsbCIpOwogc2hv
dWxkQmUoImVsZW1lbnQuYXR0cmlidXRlcy50b1N0cmluZygpIiwgIidbb2JqZWN0IE5hbWVkTm9k
ZU1hcF0nIik7CiAKLS8vIE5vdCBwb3NzaWJsZSB0byBjcmVhdGUgRW50aXR5IG5vZGVzIHZpYSB0
aGUgRE9NLCBXZWJLaXQgZG9lc24ndCBjcmVhdGUgdGhlbSBmcm9tIHBhcnNpbmcKLQotc2hvdWxk
VGhyb3coImRvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgnZ3QnKSIpOwotdmFyIGVudGl0
eVJlZmVyZW5jZSA9IHhtbERvYy5jcmVhdGVFbnRpdHlSZWZlcmVuY2UoImd0Iik7Ci1zaG91bGRC
ZSgiZW50aXR5UmVmZXJlbmNlLm5vZGVOYW1lIiwgIidndCciKTsKLXNob3VsZEJlKCJlbnRpdHlS
ZWZlcmVuY2UubG9jYWxOYW1lIiwgIm51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uu
bmFtZXNwYWNlVVJJIiwgIm51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2UucHJlZml4
IiwgIm51bGwiKTsKLXNob3VsZEJlKCJlbnRpdHlSZWZlcmVuY2Uubm9kZVZhbHVlIiwgIm51bGwi
KTsKLQogLy8gTm90IHBvc3NpYmxlIHRvIGNyZWF0ZSBOb3RhdGlvbiBub2RlcyB2aWEgdGhlIERP
TSwgV2ViS2l0IGRvZXNuJ3QgY3JlYXRlIHRoZW0gZnJvbSBwYXJzaW5nCiAKIHZhciBwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24gPSBkb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3ht
bC1zdHlsZXNoZWV0JywgJ3R5cGU9XCJ0ZXh0L3hzbFwiIGhyZWY9XCJtaXNzaW5nLnhzbFwiJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDc3MTNmYzljZjQ4N2Y2OTc5ODE4NzQyMmUxMjcx
YWE4NjJiZTYyNTcuLjc0N2NkN2U2MjU5Y2RkY2EwYmUyNWNlZTRiNWNjMmEwMWY3MGNmMjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0zMyw4ICszMyw2IEBAIFBBU1M6IGNhbkdldCgnRG9j
dW1lbnRUeXBlJykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0RvY3Vt
ZW50VHlwZScpIHNob3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFbGVtZW50
Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5TZXQoJ0VsZW1lbnQnKSBzaG91
bGQgYmUgJ3RydWUnIGFuZCBpcy4KLVBBU1M6IGNhbkdldCgnRW50aXR5UmVmZXJlbmNlJykgc2hv
dWxkIGJlICd0cnVlJyBhbmQgaXMuCi1QQVNTOiBjYW5TZXQoJ0VudGl0eVJlZmVyZW5jZScpIHNo
b3VsZCBiZSAndHJ1ZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCdFdmFsRXJyb3InKSBzaG91bGQg
YmUgJ3RydWUnIGFuZCBpcy4KIFBBU1M6IGNhblNldCgnRXZhbEVycm9yJykgc2hvdWxkIGJlICd0
cnVlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ0V2ZW50Jykgc2hvdWxkIGJlICd0cnVlJyBhbmQg
aXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9w
ZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZ2V0LXNldC1wcm9wZXJ0
aWVzLmh0bWwKaW5kZXggZmZmNWM0YWQwODE0YWI5YzFjYzA0NmFmZWJiMThjOWQ3OGJjNjc0MC4u
NDQzMTZhYzc4ZjEzODc4MDQ5MGU0ZTU2MTJhYjJhZDhmYjdlMDllYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2dldC1zZXQtcHJvcGVydGllcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9nZXQtc2V0LXByb3BlcnRpZXMuaHRtbApAQCAtODQs
NyArODQsNiBAQCB2YXIgd2luZG93UmVhZFdyaXRlUHJvcGVydGllcyA9IFsKICAgICAiRG9jdW1l
bnRGcmFnbWVudCIsIAogICAgICJEb2N1bWVudFR5cGUiLCAKICAgICAiRWxlbWVudCIsIAotICAg
ICJFbnRpdHlSZWZlcmVuY2UiLCAKICAgICAiRXZhbEVycm9yIiwgCiAgICAgIkV2ZW50IiwgCiAg
ICAgIkhUTUxBbmNob3JFbGVtZW50IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy93aW5kb3ctcHJvcGVydGllcy5qcwppbmRleCBmOWM3MDky
OTI5Mjk4Yzc2Zjc5Y2U1ZjZhNmFlNTJmYzljZWMwZGY1Li45ZDQzMGVjZWIyZWFjN2E1NzE4YjM3
ZmQ2M2RlN2NlMjRhYmExYjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9yZXNvdXJjZXMvd2luZG93LXByb3BlcnRpZXMuanMKQEAgLTU2LDcgKzU2LDYg
QEAgdmFyIHByb3BlcnR5SW5mbyA9IFsKICAgICBbIkRvY3VtZW50RnJhZ21lbnQiLCAib2JqZWN0
Il0sCiAgICAgWyJEb2N1bWVudFR5cGUiLCAib2JqZWN0Il0sCiAgICAgWyJFbGVtZW50IiwgIm9i
amVjdCJdLAotICAgIFsiRW50aXR5UmVmZXJlbmNlIiwgIm9iamVjdCJdLAogICAgIFsiRXZlbnQi
LCAib2JqZWN0Il0sCiAgICAgWyJFdmVudEV4Y2VwdGlvbiIsICJvYmplY3QiXSwKICAgICBbIkhU
TUxBbmNob3JFbGVtZW50IiwgIm9iamVjdCJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVk
LnR4dAppbmRleCA2N2QzMDJjZWVkNTIwNTYzZGZlMWRiZjdmNzkwMGQyMGZkODQ4OGIwLi4xMTIy
MTRhNzdiZjUzZjBjMTJmZjNhYmEzZTcwN2VmMTMwN2U2YWI3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRl
bmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5
cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mg
d2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0n
IGlzIHRydWUKIFBBU1Mgd2luWydFbGVtZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVj
dG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29u
c3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmpl
Y3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5
UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0
cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMg
dHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10gPT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlz
IHRydWUKIFBBU1Mgd2luWydFdmVudEV4Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0
aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50
eHQKaW5kZXggMzAyYTA5Yjg2YTViZjJlNzk5ZDI0YzhlNjllMTMwN2UxYTRkMjZkMS4uYWJmNjdh
ZDJlOWFmNjE4Y2FmODU3NzcwYmEwOTExNDRhMTcyNDRhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93
aW5nLWV4cGVjdGVkLnR4dApAQCAtOTYsOCArOTYsNiBAQCBQQVNTOiBDb21tZW50IHN1Y2Nlc3Nm
dWxseSBzaGFkb3dlZAogUEFTUzogQ0RBVEFTZWN0aW9uIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAog
UEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogTm90YXRpb24g
c3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCi1QQVNTOiBFbnRpdHkgc3VjY2Vzc2Z1bGx5IHNoYWRvd2Vk
Ci1QQVNTOiBFbnRpdHlSZWZlcmVuY2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRG9jdW1l
bnQgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQQVNTOiBIVE1MRWxlbWVudCBzdWNjZXNzZnVsbHkg
c2hhZG93ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydHktc2hhZG93aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnR5LXNoYWRvd2luZy5odG1sCmluZGV4IDliNDZlYWNlMDEzNzBjNTUyNjJkMGVm
NjRkNjgxYWU1NmVhYmMwMmMuLmNiNzRmYjA0YTA3MjUyZjEwYjVkYzYzZjljNjA0YjE1MTkwYzVk
OWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dHktc2hhZG93aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0eS1zaGFkb3dpbmcuaHRtbApAQCAtMjE1LDEwICsyMTUsNiBAQAogICAgICAgICBs
b2coRG9jdW1lbnRUeXBlID09IDEgPyAiUEFTUzogRG9jdW1lbnRUeXBlIHN1Y2Nlc3NmdWxseSBz
aGFkb3dlZCIgOiAiRkFJTDogRG9jdW1lbnRUeXBlIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAg
ICAgdmFyIE5vdGF0aW9uID0gMTsKICAgICAgICAgbG9nKE5vdGF0aW9uID09IDEgPyAiUEFTUzog
Tm90YXRpb24gc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBOb3RhdGlvbiB3YXMgbm90
IHNoYWRvd2VkIik7Ci0gICAgICAgIHZhciBFbnRpdHkgPSAxOwotICAgICAgICBsb2coRW50aXR5
ID09IDEgPyAiUEFTUzogRW50aXR5IHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogRW50
aXR5IHdhcyBub3Qgc2hhZG93ZWQiKTsKLSAgICAgICAgdmFyIEVudGl0eVJlZmVyZW5jZSA9IDE7
Ci0gICAgICAgIGxvZyhFbnRpdHlSZWZlcmVuY2UgPT0gMSA/ICJQQVNTOiBFbnRpdHlSZWZlcmVu
Y2Ugc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJGQUlMOiBFbnRpdHlSZWZlcmVuY2Ugd2FzIG5v
dCBzaGFkb3dlZCIpOwogICAgICAgICB2YXIgUHJvY2Vzc2luZ0luc3RydWN0aW9uID0gMTsKICAg
ICAgICAgbG9nKFByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9PSAxID8gIlBBU1M6IFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiBzdWNjZXNzZnVsbHkgc2hhZG93ZWQiIDogIkZBSUw6IFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiB3YXMgbm90IHNoYWRvd2VkIik7CiAgICAgICAgIHZhciBIVE1MRG9jdW1lbnQgPSAx
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVk
LnR4dAppbmRleCA0YTE4YWRmN2JhZjY2OWM3NjFkNTE5N2IxMzRkYTBiZmVlODcyZTg2Li4zN2Mz
NTQxOTM4ZjExMDdkNjZjYzkzMTUwYzFiMTQzNjVmNWVhOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDYg
QEAgUEFTUyBUcnlBbGxvY2F0ZSgnQ2hhcmFjdGVyRGF0YScpIGlzICdleGNlcHRpb24nCiBQQVNT
IFRyeUFsbG9jYXRlKCdDREFUQVNlY3Rpb24nKSBpcyAnZXhjZXB0aW9uJwogUEFTUyBUcnlBbGxv
Y2F0ZSgnRG9jdW1lbnRUeXBlJykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0Vs
ZW1lbnQnKSBpcyAnZXhjZXB0aW9uJwotUEFTUyBUcnlBbGxvY2F0ZSgnRW50aXR5UmVmZXJlbmNl
JykgaXMgJ2V4Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0V2ZW50VGFyZ2V0JykgaXMgJ2V4
Y2VwdGlvbicKIFBBU1MgVHJ5QWxsb2NhdGUoJ0hUTUxEb2N1bWVudCcpIGlzICdleGNlcHRpb24n
CiBQQVNTIFRyeUFsbG9jYXRlKCdOb2RlJykgaXMgJ2V4Y2VwdGlvbicKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2RvbS1jb25zdHJ1Y3RvcnMuaHRtbAppbmRleCBmMjQ5OWRjMDQ2NTM3NzM3NmZhODg2
YjJjYmIzYmQwYTlkODZlNDIxLi43OTUzYjYxYTI1ZDIxMDczN2JiY2Y2YTQwODE2ZTFhZmM1MGNk
YmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tY29uc3RydWN0b3JzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tLWNvbnN0cnVjdG9ycy5odG1sCkBAIC0x
OCw3ICsxOCw2IEBAIHZhciBvYmplY3RzX2V4Y2VwdGlvbiA9IFsKICAgICAnQ0RBVEFTZWN0aW9u
JywKICAgICAnRG9jdW1lbnRUeXBlJywKICAgICAnRWxlbWVudCcsCi0gICAgJ0VudGl0eVJlZmVy
ZW5jZScsCiAgICAgJ0V2ZW50VGFyZ2V0JywKICAgICAnSFRNTERvY3VtZW50JywKICAgICAnTm9k
ZScsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVk
LnR4dAppbmRleCA3ODhjYWJlNWQwM2I1MWZmYmM0MGZmMzYzY2FkNmNhMDZhYjg1ZDQ5Li42OTJi
YTcwNWZlZDgzYjI5NWEyNzA4ZDVlNzM2MDZiMGU2YTAxYTAyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQKQEAgLTQ3LDkgKzQ3LDYg
QEAgUEFTUyBqc1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKS5j
b25zdHJ1Y3RvcikgaXMgJ0NEQVRBU2VjdGkKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpKSBpcyAnRWxlbWVudCcKIFBBU1MganNX
cmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCd4JywgJ3gnLCAneCcpLl9f
cHJvdG9fXykgaXMgJ0VsZW1lbnRQcm90b3R5cGUnCiBQQVNTIGpzV3JhcHBlckNsYXNzKHhtbERv
Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcsICd4JywgJ3gnKS5jb25zdHJ1Y3RvcikgaXMgJ0Vs
ZW1lbnRDb25zdHJ1Y3RvcicKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRl
RW50aXR5UmVmZXJlbmNlKCkpIGlzICdFbnRpdHlSZWZlcmVuY2UnCi1QQVNTIGpzV3JhcHBlckNs
YXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVyZW5jZSgpLl9fcHJvdG9fXykgaXMgJ0Vu
dGl0eVJlZmVyZW5jZVByb3RvdHlwZScKLVBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQu
Y3JlYXRlRW50aXR5UmVmZXJlbmNlKCkuY29uc3RydWN0b3IpIGlzICdFbnRpdHlSZWZlcmVuY2VD
b25zdHJ1Y3RvcicKIFBBU1MganNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vz
c2luZ0luc3RydWN0aW9uKCkpIGlzICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nCiBQQVNTIGpzV3Jh
cHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpLl9fcHJv
dG9fXykgaXMgJ1Byb2Nlc3NpbmdJbnN0cnVjdGlvblByb3RvdHlwZScKIFBBU1MganNXcmFwcGVy
Q2xhc3MoeG1sRG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkuY29uc3RydWN0
b3IpIGlzICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Db25zdHJ1Y3RvcicKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKaW5kZXggOGJlOGZlM2JmMGMyM2MwMzRhMDc3ODIz
NTUwZDY3M2RmZTEwZWRjNy4uZmY4MWQ4ZjkwNTA0NDBkYzFlMzFkMzA4MzM1NWM2NjMxMjljOTYz
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLmh0bWwKQEAgLTkwLDcg
KzkwLDYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgdGVzdCgieG1sRG9jdW1lbnQiLCAiRG9j
dW1lbnQiKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVDREFUQVNlY3Rpb24oKSIsICJD
REFUQVNlY3Rpb24iKTsKICAgICB0ZXN0KCJ4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gn
LCAneCcsICd4JykiLCAiRWxlbWVudCIpOwotICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVu
dGl0eVJlZmVyZW5jZSgpIiwgIkVudGl0eVJlZmVyZW5jZSIpOwogICAgIHRlc3QoInhtbERvY3Vt
ZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpIiwgIlByb2Nlc3NpbmdJbnN0cnVjdGlv
biIpOwogCiAgICAgZGVidWcoJycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50
eHQKaW5kZXggNjNlMjQyYTJmYmUzMmI5ZDZiODNkNThjZWFkNTY0OWI0OTY3NDFiYi4uZDU5M2E1
ZWFiYThhOGUwOGUwMWMwOWMyMjQzMThkZTkwODYwY2Q4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXQtZXhwZWN0ZWQudHh0CkBAIC0xODcsNyArMTg3LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDU1OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnIKIENPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9j
b2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA1NTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
IGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBUaGlzIHRlc3Qg
Y2hlY2tzIGNyb3NzLWZyYW1lIGFjY2VzcyBzZWN1cml0eSAocmRhcjovL3Byb2JsZW0vNTI1MTMw
OSkuCiAKIApAQCAtMjM1LDcgKzIzNCw2IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LkRv
Y3VtZW50RnJhZ21lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQo
J3RhcmdldFdpbmRvdy5Eb2N1bWVudFR5cGUnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQ
QVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRvdy5FbGVtZW50Jykgc2hvdWxkIGJlICdmYWxzZScgYW5k
IGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRW50aXR5Jykgc2hvdWxkIGJlICdmYWxz
ZScgYW5kIGlzLgotUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRW50aXR5UmVmZXJlbmNlJykg
c2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuRXZh
bEVycm9yJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRX
aW5kb3cuRXZlbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3Rh
cmdldFdpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWdldC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtZ2V0Lmh0bWwKaW5kZXggMzgwMGEwYjVlODEyNGI5NDVkODEwMzkwYzNlOWI1
ZjkwZTU3ODM4ZC4uY2NlNWY3YTNmMjM0MWNhYjdmZjA5Y2JlNzViM2IyZTY5ZGVhNmNmOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nl
c3MtZ2V0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtZ2V0Lmh0bWwKQEAgLTIwLDcgKzIwLDYgQEAKICAgICAgICAgICAgICJEb2N1
bWVudFR5cGUiLCAKICAgICAgICAgICAgICJFbGVtZW50IiwgCiAgICAgICAgICAgICAiRW50aXR5
IiwgCi0gICAgICAgICAgICAiRW50aXR5UmVmZXJlbmNlIiwgCiAgICAgICAgICAgICAiRXZhbEVy
cm9yIiwgCiAgICAgICAgICAgICAiRXZlbnQiLCAKICAgICAgICAgICAgICJIVE1MQW5jaG9yRWxl
bWVudCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldE93blBy
b3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQKaW5kZXggZTQ1ODVhYmQ1MTYwNWMxZTJkOWU4
YjlmMmNkODhhYmNkNWNhZDJlMC4uMWVhNWJkYzZkOTQ5NzQ2ZTFlOWMyNTM1NjY0NjVjNDBiMzli
ODVjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CkBAIC03OCw3ICs3OCw2IEBAIFBBU1M6IGNh
bkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRG9jdW1lbnQnKSBzaG91bGQgYmUgJ2ZhbHNl
JyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0RvY3VtZW50
RnJhZ21lbnQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlw
dG9yKHRhcmdldFdpbmRvdywgJ0RvY3VtZW50VHlwZScpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBp
cy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnRWxlbWVudCcpIHNob3Vs
ZCBiZSAnZmFsc2UnIGFuZCBpcy4KLVBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93
LCAnRW50aXR5UmVmZXJlbmNlJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2Fu
R2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdFdmFsRXJyb3InKSBzaG91bGQgYmUgJ2ZhbHNl
JyBhbmQgaXMuCiBQQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ0V2ZW50Jykg
c2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRX
aW5kb3csICdIVE1MQW5jaG9yRWxlbWVudCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0
bWwKaW5kZXggZGVhMDE3ZDY3OGExNWZkZDEzYzc3YTkyYWU1MTVjNzA4ZTdiZDNhYy4uMzA2NmIz
YTJhZmNiNWQ1ZDIzOTFmY2Y0OTlkMWUzNDk0NjUxNTQxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmh0bWwKQEAgLTE5LDcgKzE5
LDYgQEAKICAgICAgICAgICAgICJEb2N1bWVudEZyYWdtZW50IiwgCiAgICAgICAgICAgICAiRG9j
dW1lbnRUeXBlIiwgCiAgICAgICAgICAgICAiRWxlbWVudCIsIAotICAgICAgICAgICAgIkVudGl0
eVJlZmVyZW5jZSIsIAogICAgICAgICAgICAgIkV2YWxFcnJvciIsIAogICAgICAgICAgICAgIkV2
ZW50IiwgCiAgICAgICAgICAgICAiSFRNTEFuY2hvckVsZW1lbnQiLCAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1wdXQtZXhwZWN0ZWQudHh0CmluZGV4IDQ3ZmQ1NDM5ZDM3ZDc2ZDEwNjU0OWE3MTliYjVh
YzkyMjkyM2NiZWMuLjg1YjBhYmExYjE1YjQ2ZWFlYmEwNjBmYmQ1NWUyOTI5ZjQxMjUyZDYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLXB1dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxNTQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1MjogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCiBBTEVSVDogUEFTUzogd2luZG93LkF0dHIgc2hvdWxkIGJlICdb
b2JqZWN0IEF0dHJDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQ0RB
VEFTZWN0aW9uIHNob3VsZCBiZSAnW29iamVjdCBDREFUQVNlY3Rpb25Db25zdHJ1Y3Rvcl0nIGFu
ZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuQ2hhcmFjdGVyRGF0YSBzaG91bGQgYmUgJ1tvYmpl
Y3QgQ2hhcmFjdGVyRGF0YUNvbnN0cnVjdG9yXScgYW5kIGlzLgpAQCAtMTQsOCArMTQsNiBAQCBB
TEVSVDogUEFTUzogd2luZG93LkRPTUV4Y2VwdGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgRE9NRXhj
ZXB0aW9uQ29uc3RydWN0b3JdJyBhbgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5ET01JbXBsZW1lbnRh
dGlvbiBzaG91bGQgYmUgJ1tvYmplY3QgRE9NSW1wbGVtZW50YXRpb25Db25zdHJ1Y3Rvcl0nIGFu
ZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRE9NUGFyc2VyIHNob3VsZCBiZSAnW29iamVjdCBE
T01QYXJzZXJDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRWxlbWVu
dCBzaG91bGQgYmUgJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgYW5kIGlzLgotQUxFUlQ6
IFBBU1M6IHdpbmRvdy5FbnRpdHkgc2hvdWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KLUFMRVJU
OiBQQVNTOiB3aW5kb3cuRW50aXR5UmVmZXJlbmNlIHNob3VsZCBiZSAnW29iamVjdCBFbnRpdHlS
ZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuRXZhbEVy
cm9yIHNob3VsZCBiZSAnZnVuY3Rpb24gRXZhbEVycm9yKCkgeyAgICBbbmF0aXZlIGNvZGVdfScg
YW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5FdmVudCBzaG91bGQgYmUgJ1tvYmplY3QgRXZl
bnRDb25zdHJ1Y3Rvcl0nIGFuZCBpcy4KIEFMRVJUOiBQQVNTOiB3aW5kb3cuSFRNTEFuY2hvckVs
ZW1lbnQgc2hvdWxkIGJlICdbb2JqZWN0IEhUTUxBbmNob3JFbGVtZW50Q29uc3RydWN0b3JdJyBh
bmQgaXMuCkBAIC0yNzQsMTUgKzI3MiwxNSBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIwOiBC
bG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZgogQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEyMTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3Qg
bWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTIyOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRo
IG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQg
cG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMjM6IEJsb2NrZWQgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyNDog
QmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20g
YWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFBy
b3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTMzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAxMzU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzMjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBv
cmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM0OiBCbG9ja2VkIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21h
aW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzY6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90
b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDEzNzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTM4OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMzk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3Jp
Z2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0
cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0MDogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJh
bWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlu
cywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQxOiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9j
b2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNDI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE0MzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ0OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNDU6IEJsb2NrZWQgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0NjogQmxvY2tl
ZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNz
aW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29s
cywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0zMjEsNyArMzE5LDcgQEAgQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE3ODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNzk6IEJsb2NrZWQg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2lu
ZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMs
IGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4
MDogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTgxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxODI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4NDogQmxvY2tlZCBhIGZyYW1lIHdpdGgg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg1OiBCbG9ja2VkIGEg
ZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Npbmcg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBk
b21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODY6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE4NzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCkBAIC0z
MzcsNyArMzM1LDcgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5NjogQmxvY2tlZCBhIGZyYW1l
IHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYKIENPTlNPTEUgTUVTU0FHRTog
bGluZSAxOTc6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE5ODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0
Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk5OiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9y
aWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMDA6IEJsb2NrZWQgYSBmcmFt
ZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFp
bnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwMjogQmxv
Y2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNj
ZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3Rv
Y29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjAzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNPTEUg
TUVTU0FHRTogbGluZSAyMDQ6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwNTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmln
aW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCkBAIC0zNzAsNyArMzY4LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIz
MTogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGYK
IENPTlNPTEUgTUVTU0FHRTogbGluZSAyMzI6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzMzogQmxvY2tlZCBhIGZyYW1lIHdp
dGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUg
d2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjM0OiBCbG9ja2Vk
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3Np
bmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xz
LCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAy
MzU6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
LiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogVGhpcyB0ZXN0IGNo
ZWNrcyBjcm9zcy1mcmFtZSBhY2Nlc3Mgc2VjdXJpdHkgb2Ygd2luZG93IGF0dHJpYnV0ZSBzZXR0
ZXJzIChyZGFyOi8vcHJvYmxlbS81MzI2NzkxKS4KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCmlu
ZGV4IGFjMDI0Zjg1NWFhODY2ZTY3MTdiOTdmZmIxYjc0OTU2YjNjNWQ3M2MuLmEyYjZiODcwYTE4
YzczOTI1NDhjMWVhOWQ4NTkyMjc4MjljYjZlMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCkBA
IC01MCw3ICs1MCw2IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVy
dHkodGFyZ2V0V2luZG93LCAiRE9NSW1wbGVtZW50YXRpb24iKTsKICAgICBzZXRGb3JiaWRkZW5Q
cm9wZXJ0eSh0YXJnZXRXaW5kb3csICJET01QYXJzZXIiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9w
ZXJ0eSh0YXJnZXRXaW5kb3csICJFbGVtZW50Iik7Ci0gICAgc2V0Rm9yYmlkZGVuUHJvcGVydHko
dGFyZ2V0V2luZG93LCAiRW50aXR5UmVmZXJlbmNlIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVy
dHkodGFyZ2V0V2luZG93LCAiRXZhbEVycm9yIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHko
dGFyZ2V0V2luZG93LCAiRXZlbnQiKTsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0eSh0YXJnZXRX
aW5kb3csICJIVE1MQW5jaG9yRWxlbWVudCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVz
dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mt
ZnJhbWUtaWZyYW1lLWZvci1wdXQtdGVzdC5odG1sCmluZGV4IDM2ZjgyNmJkOTA1ZjA1Nzc4MGI4
YjYzODY5NmY3OTM3ZTVjNGM4OGYuLmI2N2RmYzM5ZmIwMjNiMGM5NzdlZWM4M2M5NjY2MWI4YzE5
OGUwZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3Vy
Y2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLXB1
dC10ZXN0Lmh0bWwKQEAgLTU4LDggKzU4LDYgQEAKICAgICAgICAgdmFyIERPTUltcGxlbWVudGF0
aW9uT2xkID0gd2luZG93LkRPTUltcGxlbWVudGF0aW9uOwogICAgICAgICB2YXIgRE9NUGFyc2Vy
T2xkID0gd2luZG93LkRPTVBhcnNlcjsKICAgICAgICAgdmFyIEVsZW1lbnRPbGQgPSB3aW5kb3cu
RWxlbWVudDsKLSAgICAgICAgdmFyIEVudGl0eU9sZCA9IHdpbmRvdy5FbnRpdHk7Ci0gICAgICAg
IHZhciBFbnRpdHlSZWZlcmVuY2VPbGQgPSB3aW5kb3cuRW50aXR5UmVmZXJlbmNlOwogICAgICAg
ICB2YXIgRXZhbEVycm9yT2xkID0gd2luZG93LkV2YWxFcnJvcjsKICAgICAgICAgdmFyIEV2ZW50
T2xkID0gd2luZG93LkV2ZW50OwogICAgICAgICB2YXIgSFRNTEFuY2hvckVsZW1lbnRPbGQgPSB3
aW5kb3cuSFRNTEFuY2hvckVsZW1lbnQ7CkBAIC0yNjEsOCArMjU5LDYgQEAKICAgICAgICAgICAg
IHNob3VsZEJlKCJ3aW5kb3cuRE9NSW1wbGVtZW50YXRpb24iLCAiRE9NSW1wbGVtZW50YXRpb25P
bGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRE9NUGFyc2VyIiwgIkRPTVBhcnNl
ck9sZCIpOwogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbGVtZW50IiwgIkVsZW1lbnRP
bGQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRW50aXR5IiwgIkVudGl0eU9sZCIp
OwotICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5FbnRpdHlSZWZlcmVuY2UiLCAiRW50aXR5
UmVmZXJlbmNlT2xkIik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LkV2YWxFcnJvciIs
ICJFdmFsRXJyb3JPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuRXZlbnQiLCAi
RXZlbnRPbGQiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuSFRNTEFuY2hvckVsZW1l
bnQiLCAiSFRNTEFuY2hvckVsZW1lbnRPbGQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9y
aWNhbC1leHBlY3RlZC50eHQKaW5kZXggOWJlYTJhM2Q2NjY2ZDBkOTM2YzEwY2ZiMTE2OTFhMTk2
YjRhZGI4My4uOWJhYzg3NmI0MDlhNDc4ZGRlZmViYjA5NWY2NjQwZDQ0MmRjMDNiNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaGlz
dG9yaWNhbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKQEAgLTksNyArOSw3IEBA
IFBBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBET01Mb2NhdG9y
CiBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogRE9NT2JqZWN0
IAogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IERPTVVzZXJE
YXRhIAogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IEVudGl0
eSAKLUZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlS
ZWZlcmVuY2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9y
XSIKK1BBU1MgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiBFbnRpdHlS
ZWZlcmVuY2UgCiBGQUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDog
RXZlbnRFeGNlcHRpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3Ry
dWN0b3JdIgogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5h
bWVMaXN0IAogUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJlcyBtdXN0IGJlIHJlbW92ZWQ6IE5v
dGF0aW9uIApAQCAtMTksOSArMTksNyBAQCBQQVNTIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11
c3QgYmUgcmVtb3ZlZDogUmFuZ2VFeGNlcHRpb24KIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVy
ZXMgbXVzdCBiZSByZW1vdmVkOiBjcmVhdGVDREFUQVNlY3Rpb24gYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gY3JlYXRlQ0RBVEFTZWN0aW9uKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iCi1G
QUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogY3JlYXRlRW50aXR5
UmVmZXJlbmNlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBi
dXQgZ290IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIGNyZWF0ZUVudGl0eVJlZmVyZW5j
ZSgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IgorUEFTUyBIaXN0b3JpY2FsIERPTSBmZWF0dXJl
cyBtdXN0IGJlIHJlbW92ZWQ6IGNyZWF0ZUVudGl0eVJlZmVyZW5jZSAKIEZBSUwgSGlzdG9yaWNh
bCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1vdmVkOiB4bWxFbmNvZGluZyBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBudWxsCiBG
QUlMIEhpc3RvcmljYWwgRE9NIGZlYXR1cmVzIG11c3QgYmUgcmVtb3ZlZDogeG1sU3RhbmRhbG9u
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAo
Ym9vbGVhbikgZmFsc2UKIEZBSUwgSGlzdG9yaWNhbCBET00gZmVhdHVyZXMgbXVzdCBiZSByZW1v
dmVkOiB4bWxWZXJzaW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVm
aW5lZCBidXQgZ290IChvYmplY3QpIG51bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5k
ZXggMmQ4ZGM4ZTE5ODU5NzQ1OGM5MzE0ZGVkYmVlMjdjZjM2MWQ2ZTM4ZC4uNzk4OTU4MmFiM2Vi
OGFjMDUwYTNkOGE3NWRhZWM0MjY4YmRlZDdmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQKQEAgLTMxMywxMSArMzEzLDYgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlz
IHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRp
dHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRpdHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9w
ZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlS
ZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRy
dWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2
ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2
ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYmFhYjQ5ODIwZjRkYTlmMzM5
MzBiMmI3OTk0MmU5MzMxMDVlOGY3MC4uNDU3ZTk5MDE0ZDQzODkzMmNhNDYzMjc4NGM5YjZjYTU3
ODlkMmUyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dApAQCAtMzEzLDExICszMTMsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFi
bGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VudGl0eVJlZmVyZW5jZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093
blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vu
dGl0eVJlZmVyZW5jZScpLmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUg
aXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vy
cm9yRXZlbnQnKS52YWx1ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vy
cm9yRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAppbmRleCBlZGI3NTUw
NzYyOWM3YzBkYzYyMDdiZjA0OTQ2MGE0ZDU3ODk0YTgyLi44MmIwMjRhODY2YTQwZDMyOTFjNjVj
NzNhZmNmOWJjMjQzYTk3NDVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3Vw
LXByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CkBAIC0xMTQsOCArMTE0LDYgQEAgUEFTUyB3aW5bJ0Rv
Y3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0cnVjdG9yXScgaXMgdHJ1
ZQogUEFTUyB3aW5bJ0RvY3VtZW50VHlwZSddID09ICdbb2JqZWN0IERvY3VtZW50VHlwZUNvbnN0
cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50
Q29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRWxlbWVudCddID09ICdbb2JqZWN0IEVs
ZW1lbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2luWydFbnRpdHlSZWZlcmVuY2UnXSA9
PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKLVBBU1Mgd2lu
WydFbnRpdHlSZWZlcmVuY2UnXSA9PSAnW29iamVjdCBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3Rv
cl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudCddID09ICdbb2JqZWN0IEV2ZW50Q29uc3RydWN0
b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9PSAnW29iamVjdCBFdmVudENvbnN0cnVj
dG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50RXhjZXB0aW9uJ10gPT0gJ1tvYmplY3QgRXZl
bnRFeGNlcHRpb25Db25zdHJ1Y3Rvcl0nIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBhMGM2ZmY0Zjg3OWM1OTljNjAwN2U2
N2U2OTViMjFhNTYyZTI2OTlmLi5lNjgxYTQ2YTRmOGU2ZWQ1ZTI0Yjc3YTE3OTMwYWM1MTVlOGU2
NGQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0CkBAIC0zMTgsMTEgKzMxOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blBy
b3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBp
cyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50
aXR5UmVmZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0
cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JF
dmVudCcpLnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JF
dmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlj
a3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5k
ZXggYzE1YjY2NWEwZmZhYjY3NmMwZmU4ZDk3NWY4MzhiNzdkODk4OWJjOC4uZTE4NDI5NWMwZWMx
M2M4MDNkM2JmNTk1MDQxNzhhY2Y1M2NhNmVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zMDgs
MTEgKzMwOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdzZXQn
KSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCi1QQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNl
JykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcp
IGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
RW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1QQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJyku
ZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLnZhbHVl
IGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAwZmJjNGIwMjhk
OTJlNmFkZmE2NjM3NmU4ZWUyYmY2N2VjNGZjZjMuLjk0ZDc4MTI2MjkwZDBiM2YwMzdhNDk2NWZh
NWRmN2RhM2RjMjg3NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3Nl
bWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTMwOCwxMSArMzA4LDYgQEAgUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmVudW1l
cmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdFbGVtZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKLVBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS52YWx1ZSBpcyBFbnRp
dHlSZWZlcmVuY2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbnRpdHlSZWZlcmVuY2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2Un
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5lbnVtZXJhYmxlIGlzIGZh
bHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5
UmVmZXJlbmNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykudmFsdWUgaXMgRXJyb3JFdmVudAog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQn
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1l
eHBlY3RlZC50eHQKaW5kZXggOTNkYWRjMDMxZjYyZjM2NjNhODk2NjAzYTNkYWIxOGVlMjY0MzJh
NC4uMTYyZjQ4ZmM1NmI5ODc5YjNhOWIxMzZiOGI3MWIyZWY5YTg3YTJlZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9va3VwLXBy
ZWNlZGVuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMTE0
LDggKzExNCw2IEBAIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAnW29iamVjdCBEb2N1bWVu
dFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydEb2N1bWVudFR5cGUnXSA9PSAn
W29iamVjdCBEb2N1bWVudFR5cGVDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFbGVt
ZW50J10gPT0gJ1tvYmplY3QgRWxlbWVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5b
J0VsZW1lbnQnXSA9PSAnW29iamVjdCBFbGVtZW50Q29uc3RydWN0b3JdJyBpcyB0cnVlCi1QQVNT
IHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3QgRW50aXR5UmVmZXJlbmNlQ29uc3Ry
dWN0b3JdJyBpcyB0cnVlCi1QQVNTIHdpblsnRW50aXR5UmVmZXJlbmNlJ10gPT0gJ1tvYmplY3Qg
RW50aXR5UmVmZXJlbmNlQ29uc3RydWN0b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnRXZlbnQnXSA9
PSAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ0V2ZW50J10g
PT0gJ1tvYmplY3QgRXZlbnRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2luWydFdmVudEV4
Y2VwdGlvbiddID09ICdbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3RydWN0b3JdJyBpcyB0cnVl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1j
bGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
ZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dAppbmRleCBjMmNmZmUxNGJkM2Uy
MGNhZTUzM2ZjOTBjZDdhNzVkZGVmNTRhYjE3Li43YzJiMTczMTE0NDVmM2M3ZDQzNzBlODRjMDc2
ODFmZDM5MmYyY2YyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9k
b20vd3JhcHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKQEAg
LTIxLDcgKzIxLDYgQEAgWE1MCiBQQVNTIG9iakNXcmFwcGVyQ2xhc3MoeG1sRG9jdW1lbnQpIGlz
ICdET01Eb2N1bWVudCcKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFzcyh4bWxEb2N1bWVudC5jcmVhdGVD
REFUQVNlY3Rpb24oKSkgaXMgJ0RPTUNEQVRBU2VjdGlvbicKIFBBU1Mgb2JqQ1dyYXBwZXJDbGFz
cyh4bWxEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ3gnLCAneCcsICd4JykpIGlzICdET01FbGVt
ZW50JwotUEFTUyBvYmpDV3JhcHBlckNsYXNzKHhtbERvY3VtZW50LmNyZWF0ZUVudGl0eVJlZmVy
ZW5jZSgpKSBpcyAnRE9NRW50aXR5UmVmZXJlbmNlJwogUEFTUyBvYmpDV3JhcHBlckNsYXNzKHht
bERvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpKSBpcyAnRE9NUHJvY2Vzc2lu
Z0luc3RydWN0aW9uJwogCiBFdmVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKaW5kZXggMGJiYjQ0
NWFjZjc1YTgwOTkyNGJiYzIyODk2ODIyODQ2YzNhM2MxYi4uZjM1OWQ5NDNkMDhkMGMwMDljY2I2
N2FiNzIyZTg2OGJkNjFiYWUzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKQEAgLTEwMyw3ICsx
MDMsNiBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB0ZXN0KCJ4bWxEb2N1bWVudCIsICJEb2N1
bWVudCIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUNEQVRBU2VjdGlvbigpIiwgIkNE
QVRBU2VjdGlvbiIpOwogICAgIHRlc3QoInhtbERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygneCcs
ICd4JywgJ3gnKSIsICJFbGVtZW50Iik7Ci0gICAgdGVzdCgieG1sRG9jdW1lbnQuY3JlYXRlRW50
aXR5UmVmZXJlbmNlKCkiLCAiRW50aXR5UmVmZXJlbmNlIik7CiAgICAgdGVzdCgieG1sRG9jdW1l
bnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkiLCAiUHJvY2Vzc2luZ0luc3RydWN0aW9u
Iik7CiAKICAgICBkZWJ1ZygnJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKaW5kZXggMDQ0ZjE0ZjBlNTI5NmU2NzVkOGI0M2M4YjQzZDgwMmQy
Njk3NzExOC4uYzFhNDIyZjBhMTU1NzcxOGMxYTdlZDlmMTA0Zjg4Y2Q5NTBhNTYxNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMzA4
LDExICszMDgsNiBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdFbGVtZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VsZW1lbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQotUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5j
ZScpLnZhbHVlIGlzIEVudGl0eVJlZmVyZW5jZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdnZXQn
KSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J0VudGl0eVJlZmVyZW5jZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScp
LmVudW1lcmFibGUgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFbnRpdHlSZWZlcmVuY2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS52YWx1
ZSBpcyBFcnJvckV2ZW50CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRXJyb3JFdmVudCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0Vycm9yRXZlbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwODNhMDcxZjZjZTZlYjVlZDIxY2QwNDYwMWEz
YWJlNzYxOTMxZmJmLi42ZWJhYWFmNmNjY2EwMTBhOTJmZjcwN2YxOTI0MWRjODU1N2NlZjhhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBA
IC0yMzgsMTEgKzIzOCw2IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdFbGVtZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ0VsZW1lbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRWxlbWVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVm
ZXJlbmNlJykudmFsdWUgaXMgRW50aXR5UmVmZXJlbmNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHko
J2dldCcpIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnRW50aXR5UmVmZXJlbmNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRW50aXR5UmVmZXJl
bmNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ0VudGl0eVJlZmVyZW5jZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
LnZhbHVlIGlzIEVycm9yRXZlbnQKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdFcnJvckV2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnRXJyb3JFdmVudCcp
Lmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>